如何使用 nodejs 使用 Dynamodb 并行扫描检索数据
Posted
技术标签:
【中文标题】如何使用 nodejs 使用 Dynamodb 并行扫描检索数据【英文标题】:how to retrieve data using Dynamodb parallel scans using nodejs 【发布时间】:2018-02-10 22:28:19 【问题描述】:我正在使用 nodejs 将发电机表导入 S3。我的一切工作正常,但整个副本非常慢,因为我有数百万条记录,并且顺序扫描限制为 1MB,所以我正在寻找使用节点对 dynamo dB 进行并行扫描。
但要做到这一点,我需要创建多个线程并将并行工作分配给节点中的这些线程。我想知道是否有推荐的方法,或者您是否建议使用 Data Pipeline 导入数据?你觉得我应该怎么做?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于如何使用 nodejs 使用 Dynamodb 并行扫描检索数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 NodeJS 将新对象附加到 DynamoDB 中的 JSON 数组
使用保留关键字作为 FilterExpression NodeJS 扫描 DynamoDB 中的函数
亚马逊 dynamodb(通过 aws sdk)是不是有一个很好的对象映射器,可以在 nodejs 中使用?