步骤 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 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. 查看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 分钟”。您可以根据需要调整此值。