【问题标题】:how to retrieve data using Dynamodb parallel scans using nodejs如何使用 nodejs 使用 Dynamodb 并行扫描检索数据
【发布时间】:2018-02-10 22:28:19
【问题描述】:
我正在使用 nodejs 将发电机表导入 S3。我的一切工作正常,但整个副本非常慢,因为我有数百万条记录,并且顺序扫描限制为 1MB,所以我正在寻找使用节点对 dynamo dB 进行并行扫描。
但要做到这一点,我需要创建多个线程并将并行工作分配给节点中的这些线程。我想知道是否有推荐的方法,或者您是否建议使用 Data Pipeline 导入数据?你觉得我应该怎么做?
【问题讨论】:
标签:
node.js
multithreading
amazon-dynamodb
amazon
【解决方案1】:
您可以使用Scan API 中提供的内置并行扫描功能。整体会被分成多个段,对各个段进行扫描。
Parallel scan
Segment: 0,
TotalSegments: 5
Segment:对于并行扫描请求,Segment 标识一个个体
由应用程序工作人员扫描的段。
段 ID 从零开始,因此第一个段始终为 0。对于
例如,如果您想使用四个应用程序线程来扫描一个表
或索引,则第一个线程指定一个 Segment 值为 0,则
第二个线程指定 1,依此类推。
Segment 的值必须大于等于 0 且小于
比为 TotalSegments 提供的值。
如果您提供 Segment,则还必须提供 TotalSegments。
TotalSegments:- 对于并行扫描请求,TotalSegments 表示
扫描操作将进入的段的总数
分为。 TotalSegments 的值对应于
将执行并行扫描的应用程序工作人员。例如,
如果您想使用四个应用程序线程来扫描一个表或一个
索引,指定 TotalSegments 值为 4。