ステップ 4: CSV ファイルからターゲットテーブルにデータをアップロードするDSBulk設定を構成する - Amazon Keyspaces (Apache Cassandra 向け)

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

ステップ 4: CSV ファイルからターゲットテーブルにデータをアップロードするDSBulk設定を構成する

このセクションでは、Amazon Keyspaces へのデータアップロードDSBulkの設定に必要な手順の概要を説明します。設定ファイルDSBulkを使用して を設定します。設定ファイルは、コマンドラインから直接指定します。

  1. Amazon Keyspaces への移行用のDSBulk設定ファイルを作成します。この例では、ファイル名 を使用しますdsbulk_keyspaces.conf。設定ファイルで次のDSBulk設定を指定します。

    1. PlainTextAuthProviderPlainTextAuthProvider クラスを使用して認証プロバイダーを作成します。ServiceUserNameServicePassword は、Amazon Keyspaces へのプログラムによるアクセス用の認証情報を作成する の手順に従ってサービス固有の認証情報を生成したときに取得したユーザー名とパスワードと一致している必要があります。

    2. local-datacenter – の値を local-datacenter に設定します。 AWS リージョン 接続先の 。例えば、アプリケーションを cassandra.us-east-2.amazonaws.com に接続する場合は、ローカルデータセンターを us-east-2 に設定します。使用可能なすべての の場合 AWS リージョン「Amazon Keyspaces のサービスエンドポイント」を参照してください。レプリカを避けるには、slow-replica-avoidancefalse に設定します。

    3. SSLEngineFactory – SSL/ を設定するにはTLS、 で クラスを指定する 1 行で設定ファイルに セクションSSLEngineFactoryを追加して、 を初期化しますclass = DefaultSslEngineFactorycassandra_truststore.jks へのパスと、作成しておいたパスワードを提供します。

    4. consistency — 整合性レベルを LOCAL QUORUM に設定します。他の書き込み整合性レベルはサポートされません。詳細については「サポートされている Apache Cassandra の読み取りおよび書き込みの整合性レベルと関連するコスト」を参照してください。

    5. プールごとの接続数は Java ドライバーで設定できます。この例では、advanced.connection.pool.local.size を 3 に設定します。

    次に、完全なサンプル設定ファイルを示します。

    datastax-java-driver { basic.contact-points = [ "cassandra.us-east-2.amazonaws.com:9142"] advanced.auth-provider { class = PlainTextAuthProvider username = "ServiceUserName" password = "ServicePassword" } basic.load-balancing-policy { local-datacenter = "us-east-2" slow-replica-avoidance = false } basic.request { consistency = LOCAL_QUORUM default-idempotence = true } advanced.ssl-engine-factory { class = DefaultSslEngineFactory truststore-path = "./cassandra_truststore.jks" truststore-password = "my_password" hostname-validation = false } advanced.connection.pool.local.size = 3 }
  2. DSBulk load コマンドのパラメータを確認します。

    1. executor.maxPerSecond — ロードコマンドにより処理が試行される 1 秒あたりの最大行数。設定しない場合、この設定は -1 となり無効になります。

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

      executor.maxPerSecond = WCUs * .90

      このチュートリアルでは、executor.maxPerSecond を 5 に設定します。

      注記

      1.6.0 DSBulk 以降を使用している場合は、dsbulk.engine.maxConcurrentQueries代わりに を使用できます。

    2. DSBulk load コマンドにこれらの追加パラメータを設定します。

      • batch-mode — このパラメータは、パーティションキー別にオペレーションをグループ化するようにシステムに指示を出します。ホットキーシナリオが発生し、 が発生する可能性があるため、バッチモードを無効にすることをお勧めしますWriteThrottleEvents

      • driver.advanced.retry-policy-max-retries — これにより、失敗したクエリが再試行される回数が決まります。設定しない場合のデフォルトは 10 になります。この値は必要に応じて調整できます。

      • driver.basic.request.timeout — クエリが返されるまでのシステムの待機時間 (分)。設定しない場合のデフォルトは「5 分」です。この値は必要に応じて調整できます。