@aws/dynamodb-batch-iterator

中文文档
0.7.1发布于 2018/07/21Apache-2.0TypeScriptCommonJS近 30 天下载 9万

DynamoDB批次的摘要读取和写取处理批次分拆和部分倒置的回放

中文使用文档
文档目录3 节
  1. 开始
  2. 阅读批次
  3. 写入批次的项目

Amazon DynamODB 批量迭代

Apache 2 License

该图书馆为自动提交任意大小的 使用整齐图案向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 循环将是一个单一的写入请求 这已经成功。 一旦处理完毕每项请求,或 已经遇到错误 .

版本与发布记录

@aws/dynamodb-batch-iterator 共发布 9 个版本,首次发布于 2017/12/22;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.7.1latest2018/07/218 年前
0.7.02018/07/118 年前
0.6.12018/06/298 年前
0.6.02018/06/178 年前
0.5.02018/05/178 年前
0.4.12018/04/258 年前

关于 @aws/dynamodb-batch-iterator 的常见问题

@aws/dynamodb-batch-iterator 是什么?

DynamoDB批次的摘要读取和写取处理批次分拆和部分倒置的回放

如何安装 @aws/dynamodb-batch-iterator?

在项目目录运行 npm install @aws/dynamodb-batch-iterator,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:aws-sdk(^2.7.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws/dynamodb-batch-iterator 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws/dynamodb-batch-iterator 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws/dynamodb-batch-iterator 可以商用吗?

@aws/dynamodb-batch-iterator 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws/dynamodb-batch-iterator 的下载量有多少?

根据 npm 官方下载统计,@aws/dynamodb-batch-iterator 在 2026/10/08 – 2026/11/06 这 30 天内被下载 90,016 次,日均约 3,001 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws/dynamodb-batch-iterator 还在维护吗?

最新版本 0.7.1 发布于 2018/07/21(8 年前);至今共发布 9 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/12/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。