Amazon DynamODB 批量迭代
该图书馆为自动提交任意大小的
使用整齐图案向DynamomDB发送批次读取和写作 BatchGetItem 财务报告和审定财务报表
BatchWriteItem 业务。 部分成功(即:,
BatchGetItem 返回一些响应和一些未处理的密钥的操作
或者说 BatchWriteItem 返回一些未处理项目的操作)将重试
未处理的项目自动使用指数回放.
开始
阅读批次
创建一个 BatchGet 对象,从
用于 JavaScript 的 AWS SDK 和您想要取取的可移动密钥 。 这个
可同步(例如数组)或同步(例如
被包裹的对象流 同步- 点流是因为
wrap 页:1.
import { BatchGet } from '@aws/dynamodb-batch-iterator';
import DynamoDB = require('aws-sdk/clients/dynamodb');
const dynamoDb = new DynamoDB({region: 'us-west-2'});
const keys = [
['tableName', {keyProperty: {N: '0'}}],
['tableName', {keyProperty: {N: '1'}}],
['tableName', {keyProperty: {N: '2'}}],
// etc., continuing to count up to
['tableName', {keyProperty: {N: '1001'}}],
];
for await (const item of new BatchGet(dynamoDb, keys)) {
console.log(item);
}
上述代码片段将自动将所提供的密钥分割为
BatchGetItem 100个或更少的密钥的请求,任何未处理的密钥都将是
自动重审,直到处理完毕。 上述代码将在
至少11个 BatchGetItem 操作,依赖返回多少项
没有处理,因为没有提供足够的阅读能力.
每一项目均载于 for...await...of 循环将是一个单 DynamoDB
记录。 一旦找到每个密钥或错误, 重复将会停止
已经遇到.
写入批次的项目
创建一个 BatchWrite 对象,从
JavaScript 的 AWS SDK 和您想要的可重复的写请求
执行。 可执行的可以是同步的(如数组),也可以是同步的
(例如包裹在 同步- 点流是因为
wrap 页:1.
每项书面请求应包含 DeleteRequest 键或 a PutRequest
密钥如上所述 amazon DynamomDB API 参考文献。 。 。 .
import { BatchWrite } from '@aws/dynamodb-batch-iterator';
import DynamoDB = require('aws-sdk/clients/dynamodb');
const dynamoDb = new DynamoDB({region: 'us-west-2'});
const keys = [
['tableName', {DeleteRequest: {Key: {keyProperty: {N: '0'}}}}],
['tableName', {PutRequest: {Item: {keyProperty: {N: '1'}, otherProperty: {BOOL: false}}}}],
['tableName', {DeleteRequest: {Key: {keyProperty: {N: '2'}}}}],
['tableName', {PutRequest: {Item: {keyProperty: {N: '3'}, otherProperty: {BOOL: false}}}}],
['tableName', {N: '2'}],
// etc., continuing to count up to
['tableName', {DeleteRequest: {Key: {keyProperty: {N: '102'}}}}],
];
for await (const item of new BatchGet(dynamoDb, keys)) {
console.log(item);
}
上述代码片段将自动将所提供的密钥分割为
BatchWriteItem 25个或更少写请求对象的请求,以及任何
未处理的请求对象将自动重试,直至完成
处理。 上述代码将至少执行 5 BatchWriteItem 业务,
取决于有多少项由于
提供书写能力不足.
每一项目均载于 for...await...of 循环将是一个单一的写入请求
这已经成功。 一旦处理完毕每项请求,或
已经遇到错误 .