

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 4：設定將資料從 CSV 檔案上傳至目標資料表`DSBulk`的設定
<a name="dsbulk-upload-config"></a>

本節概述設定 DSBulk 以將資料上傳至 Amazon Keyspaces 所需的步驟。您可以使用組態檔案來設定 DSBulk。您直接從命令列指定組態檔案。

1. 建立 DSBulk 組態檔案以遷移至 Amazon Keyspaces，在此範例中，我們使用檔案名稱 `dsbulk_keyspaces.conf`。在 DSBulk 組態檔案中指定下列設定。

   1. *`PlainTextAuthProvider`* – 使用 `PlainTextAuthProvider`類別建立身分驗證提供者。 `ServiceUserName`和 `ServicePassword`應符合您在產生服務特定登入資料時，依照 中的步驟取得的使用者名稱和密碼[建立 Amazon Keyspaces 的程式設計存取憑證](programmatic.credentials.md)。

   1. *`local-datacenter`* – 將 的值`local-datacenter`設定為您要連線 AWS 區域 的 。例如，如果應用程式正在連線至 `cassandra.us-east-1.amazonaws.com`，請將本機資料中心設定為 `us-east-1`。如需所有可用的 AWS 區域，請參閱 [Amazon Keyspaces 的服務端點](programmatic.endpoints.md)。若要避免複本，請將 `slow-replica-avoidance`設定為 `false`。

   1. *`SSLEngineFactory`* – 若要設定 SSL/TLS，`SSLEngineFactory`請在組態檔案中新增區段以使用 指定類別的單行來初始化 `class = DefaultSslEngineFactory`。提供 的路徑`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 停用此設定。

      `executor.maxPerSecond` 根據您佈建至目標目的地資料表的 WCUs 數目來設定 。`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 分鐘」。您可以視需要調整此值。