

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

# ステップ 4: CSV ファイルからターゲットテーブルにデータをアップロードするように `DSBulk` を設定する
<a name="dsbulk-upload-config"></a>

このセクションでは、データが Amazon Keyspaces にアップロードされるように DSBulk を設定する場合に必要なステップについて説明します。DSBulk を設定するには、設定ファイルを使用します。設定ファイルは、コマンドラインから直接指定します。

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

   1. *`PlainTextAuthProvider`* — `PlainTextAuthProvider` クラスを使用して認証プロバイダーを作成します。`ServiceUserName` と `ServicePassword` は、[Amazon Keyspaces にプログラムによってアクセスするための認証情報を作成する](programmatic.credentials.md) の手順に従ってサービス固有の認証情報を生成したときに取得したユーザー名とパスワードと一致している必要があります。

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

   1. *`SSLEngineFactory`* — SSL/TLS を設定するには、`class = DefaultSslEngineFactory` を使用してクラスを指定する設定ファイル (1 行が含まれている) に、セクションを追加して、`SSLEngineFactory` を初期化します。`cassandra_truststore.jks` へのパスと、作成しておいたパスワードを提供します。

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

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

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

   ```
   datastax-java-driver {
   basic.contact-points = [ "cassandra.us-east-1.amazonaws.com:9142"]
   advanced.auth-provider {
       class = PlainTextAuthProvider
       username = "ServiceUserName"
       password = "ServicePassword"
   }
   
   basic.load-balancing-policy {
       local-datacenter = "us-east-1"
       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
   }
   ```

1. DSBulk `load` コマンドのパラメータを確認します。

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

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

      ```
      executor.maxPerSecond = WCUs * .90
      ```

      このチュートリアルでは、`executor.maxPerSecond` を 5 に設定します。
**注記**  
DSBulk 1.6.0 以上を使用している場合は、代わりに `dsbulk.engine.maxConcurrentQueries` を使用できます。

   1. DSBulk `load` コマンドのためにこれらの追加パラメータを設定します。
      + *`batch-mode`* — このパラメータは、パーティションキー別にオペレーションをグループ化するようにシステムに指示を出します。バッチモードは無効にすることを推奨します。バッチモードは、ホットキーシナリオを引き起こし、`WriteThrottleEvents` の原因となる可能性があるためです。
      + *`driver.advanced.retry-policy-max-retries`* — これにより、失敗したクエリが再試行される回数が決まります。設定しない場合のデフォルトは 10 になります。この値は必要に応じて調整できます。
      + *`driver.basic.request.timeout`* — クエリが返されるまでのシステムの待機時間 (分)。設定しない場合のデフォルトは「5 分」です。この値は必要に応じて調整できます。