Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

ステップ 4: cqlsh COPY FROM を設定する

フォーカスモード
ステップ 4: cqlsh COPY FROM を設定する - Amazon Keyspaces (Apache Cassandra 向け)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

このセクションでは、cqlsh COPY FROM のパラメータ値を決定する方法について説明します。cqlsh COPY FROM コマンドは、前の手順で準備した CSV ファイルを読み取り、CQL を使用して Amazon Keyspaces にデータを挿入します。このコマンドにより、行の分割と一連のワーカー間での INSERT オペレーションの配分が行われます。各ワーカーは Amazon Keyspaces との接続を確立し、このチャンネルに沿って INSERT リクエストを送信します。

cqlsh COPY コマンドには、ワーカー間でワークを均等に分配するための内部ロジックがありません。ただし、ワークが均等に分配されるように手動で設定することはできます。まず、次の主要な cqlsh パラメータを確認します。

  • DELIMITER — カンマ以外の区切り文字を使用した場合はこのパラメータを設定できます。デフォルトはカンマです。

  • INGESTRATEcqlsh COPY FROM により処理が試行される 1 秒あたりのターゲット行数。設定しない場合のデフォルト値は 100,000 です。

  • NUMPROCESSESCOPY FROM タスクに対して cqlsh により作成される子ワーカープロセスの数。この設定の最大値は 16 で、デフォルトは num_cores - 1 です。num_cores は cqlsh が実行されているホストの処理コア数です。

  • MAXBATCHSIZE - バッチサイズにより、1 つのバッチで挿入先テーブルに挿入される最大行数が決まります。設定されていない場合、cqlsh により挿入行数が 20 行のバッチが使用されます。

  • CHUNKSIZE — 子ワーカーに渡すワーク単位のサイズ。デフォルトでは、5,000 に設定されます。

  • MAXATTEMPTS — 失敗したワーカーチャンクの再試行の最高回数。最高試行回数に達すると、失敗したレコードが新しい CSV ファイルに書き込まれ、後ほど、失敗を調査した上で再実行できます。

ターゲット送信先テーブルにプロビジョニングした WCU の数に基づいて INGESTRATE を設定します。cqlsh COPY FROM コマンドの INGESTRATE は制限ではなくターゲット平均です。これは、設定した数を大きく上回る可能性がある (多くの場合そうなる) ことを意味します。このような超過を許可し、データロードリクエストを処理できるだけの十分なキャパシティを確保するには、INGESTRATE をテーブルの書き込みキャパシティの 90% に設定します。

INGESTRATE = WCUs * .90

次に、NUMPROCESSES パラメータを、システムのコア数より 1 少ない値に設定します。システムのコア数を調べるには、次のコードを実行します。

python -c "import multiprocessing; print(multiprocessing.cpu_count())"

このチュートリアルでは、以下の値を使用します。

NUMPROCESSES = 4

各プロセスでワーカーが作成され、各ワーカーで Amazon Keyspaces への接続が確立されます。Amazon Keyspaces は、接続ごとに 1 秒あたり最大で 3,000 件の CQL リクエストに対応できます。つまり、各ワーカーの 1 秒あたりのリクエスト処理数が 3,000 件未満であるか確認する必要があるということです。

INGESTRATE と同様に、ワーカーは設定した数値を大幅に上回ることが多く、クロックの秒数に制限されません。したがって、大幅な超過を考慮しておくために、各ワーカーの 1 秒あたりの目標リクエスト処理数が 2,500 件になるように cqlsh パラメータを設定します。ワーカーに分配されるワーク量を計算するには、次のガイドラインを使用します。

  • INGESTRATENUMPROCESSES で割ります。

  • INGESTRATE / NUMPROCESSES > 2,500 になった場合は、この式が真になるように INGESTRATE を下げます。

INGESTRATE / NUMPROCESSES <= 2,500

サンプルデータのアップロードを最適化するための設定を行う前に、cqlsh のデフォルト設定を再確認し、その使用がデータのアップロードプロセスにどのように影響するのか見てみましょう。cqlsh COPY FROM では CHUNKSIZE を使用して膨大なワークが作成されて (INSERT ステートメント) ワーカーに分配されるので、ワークは自動的には均等に分配されません。INGESTRATE 設定によっては、アイドル状態になるワーカーもあります。

ワーカー間でワークを均等に分配し、各ワーカーに対して 1 秒あたりの最適なリクエスト数を 2,500 件で維持するには、入力パラメータを変更して CHUNKSIZEMAXBATCHSIZEINGESTRATE に設定する必要があります。データロード中のネットワークトラフィックの使用率を最適化するには、MAXBATCHSIZE の値として最大値の 30 に近い値を選択します。CHUNKSIZE を 100 に、MAXBATCHSIZE を 25 に変更すると、10,000 行が 4 つのワーカーに均等に分配されます (10,000 / 2500 = 4)、

次のコード例はこのことを示しています。

INGESTRATE = 10,000 NUMPROCESSES = 4 CHUNKSIZE = 100 MAXBATCHSIZE. = 25 Work Distribution: Connection 1 / Worker 1 : 2,500 Requests per second Connection 2 / Worker 2 : 2,500 Requests per second Connection 3 / Worker 3 : 2,500 Requests per second Connection 4 / Worker 4 : 2,500 Requests per second

要約するために、cqlsh COPY FROM パラメータの設定時に次の数式を使用します。

  • INGESTRATE = write_capacity_units * .90

  • NUMPROCESSES = num_cores -1 (デフォルト)

  • INGESTRATE / NUMPROCESSES = 2,500 (これは true ステートメントでなければなりません。)

  • MAXBATCHSIZE = 30 (デフォルトは 20。Amazon Keyspaces では最大で 30 のバッチが受け入れられます。)

  • CHUNKSIZE = (INGESTRATE / NUMPROCESSES) / MAXBATCHSIZE

これで NUMPROCESSESINGESTRATECHUNKSIZE の計算が完了し、データをロードする準備が整いました。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.