步驟 4:配DSBulk置設置以將數據從文CSV件上傳到目標表 - Amazon Keyspaces (適用於 Apache Cassandra)

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

步驟 4:配DSBulk置設置以將數據從文CSV件上傳到目標表

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

  1. 創建一個用於遷移到 Amazon Keyspaces 的DSBulk配置文件,在此示例中我們使用文件名dsbulk_keyspaces.conf。在DSBulk組態檔案中指定下列設定。

    1. PlainTextAuthProvider— 使用PlainTextAuthProvider類別建立驗證提供者。 ServiceUserNameServicePassword應該符合您在建立以程式設計方式存取 Amazon Keyspaces 的登入資料 產生服務特定認證時所取得的使用者名稱和密碼,方法是遵循中的步驟。

    2. local-datacenter— 將值設local-datacenter定為 AWS 區域 您正在連線到的。例如,如果應用程式正在連線到cassandra.us-east-2.amazonaws.com,則將本機資料中心設定為us-east-2。對於所有可用 AWS 區域,請參閱Amazon Keyspaces 的服務端點。若要避免複本,請slow-replica-avoidance將設定為false

    3. SSLEngineFactory— 要配置SSL/TLS,請在SSLEngineFactory配置文件中添加一個部分以指定類的單行來初始化class = DefaultSslEngineFactory。提供您先前建立的路徑cassandra_truststore.jks和密碼。

    4. consistency— 將一致性層級設定為LOCAL QUORUM。不支援其他寫入一致性層級,如需詳細資訊,請參閱支持 Apache 卡桑德拉讀寫一致性級別和相關成本

    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. 檢閱指DSBulkload令的參數。

    1. executor.maxPerSecond— load 命令每秒嘗試同時處理的最大列數。如果未設定,則停用此設定時為 -1。

      executor.maxPerSecond根據您佈建至目標目WCUs的地表格的數目來設定。load命令executor.maxPerSecond的不是限制,而是目標平均值。這意味著它可以(並且通常會)超出您設置的數字。若要允許突發並確定有足夠的容量來處理資料載入要求,請設定executor.maxPerSecond為表格寫入容量的 90%。

      executor.maxPerSecond = WCUs * .90

      在本自學課程中,我們設executor.maxPerSecond定為 5。

      注意

      如果您使用的是 DSBulk 1.6.0 或更高版本,則可以dsbulk.engine.maxConcurrentQueries改用。

    2. 設定DSBulkload命令的這些其他參數。

      • batch-mode— 此參數告訴系統按分區鍵對操作進行分組。我們建議禁用批處理模式,因為它可能導致熱鍵情況和原因WriteThrottleEvents

      • driver.advanced.retry-policy-max-retries— 這會決定重試失敗查詢的次數。如果未設定,預設值為 10。您可以根據需要調整此值。

      • driver.basic.request.timeout— 系統等待查詢傳回的時間 (以分鐘為單位)。如果未設定,預設值為「5 分鐘」。您可以根據需要調整此值。