本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 4:配置DSBulk
设置以将数据从CSV文件上传到目标表
本节概述了配置DSBulk将数据上传到 Amazon Keyspaces 所需的步骤。您可以使用配置文件DSBulk进行配置。您可以直接从命令行指定配置文件。
-
创建用于迁移到 Amazon Keyspaces 的DSBulk配置文件,在本示例中,我们使用文件名。
dsbulk_keyspaces.conf
在DSBulk配置文件中指定以下设置。-
PlainTextAuthProvider
:使用PlainTextAuthProvider
类创建身份验证提供者。ServiceUserName
和ServicePassword
应该与您按照创建以编程方式访问 Amazon Keyspaces 的证书 中的步骤生成特定于服务的凭证时获得的用户名和密码相匹配。 -
local-datacenter
— 将的值设置local-datacenter
为 AWS 区域 你正在连接的。例如,如果应用程序要连接到cassandra.us-east-2.amazonaws.com
,则将本地数据中心设置为us-east-2
。全部可用 AWS 区域,请参阅 Amazon Keyspaces 的服务端点。为了避免复制,请将slow-replica-avoidance
设置为false
。 -
SSLEngineFactory
— 要配置SSL/TLS,请SSLEngineFactory
通过在配置文件中添加一个用于指定类的单行来初始化class = DefaultSslEngineFactory
。提供指向cassandra_truststore.jks
的路径和您之前创建的密码。 consistency
:将一致性级别设置为LOCAL QUORUM
。不支持其他写入一致性级别,有关更多信息,请参阅 支持的 Apache Cassandra 读写一致性级别和相关成本。可以在 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 } -
-
查看DSBulk
load
命令的参数。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
。为该DSBulk
load
命令配置这些其他参数。batch-mode
:此参数告诉系统按分区键对操作进行分组。我们建议禁用批处理模式,因为它可能会导致热键场景和原因WriteThrottleEvents
。driver.advanced.retry-policy-max-retries
:这决定了重试失败查询的次数。如果未设置,则默认值为 10。您可以根据需要调整此值。driver.basic.request.timeout
:系统等待查询返回的时间(以分钟为单位)。如果未设置,则默认值为“5 分钟”。您可以根据需要调整此值。