# @aws/dynamodb-batch-iterator 中文文档

规范地址：https://npmcn.com/package/%40aws/dynamodb-batch-iterator/

版本：0\.7\.1
npm 元数据更新时间：2026-10-15T22:06:40.260Z
中文译文更新时间：2026-11-07T12:25:20.401Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aws/dynamodb-batch-iterator
原文对照：https://npmcn.com/package/%40aws/dynamodb-batch-iterator/?lang=original
项目主页：https://awslabs.github.io/dynamodb-data-mapper-js/packages/dynamodb-batch-iterator/
源码仓库：https://github.com/awslabs/dynamodb-data-mapper-js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：63.3 kB，25 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：aws-sdk ^2\.7\.0
- 首次发布：2017-12-22T01:37:03.535Z
- 最新版本发布：2018-07-21T00:24:32.072Z
- 近 30 天下载量：90016（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @aws/dynamodb-batch-iterator
```

也可以使用：`pnpm add @aws/dynamodb-batch-iterator`、`yarn add @aws/dynamodb-batch-iterator`、`bun add @aws/dynamodb-batch-iterator`

## README

# Amazon DynamODB 批量迭代

[![Apache 2 License](https://img.shields.io/github/license/awslabs/dynamodb-data-mapper-js.svg?style=flat)](http://aws.amazon.com/apache-2-0/)

该图书馆为自动提交任意大小的 使用整齐图案向DynamomDB发送批次读取和写作 `BatchGetItem` 财务报告和审定财务报表 `BatchWriteItem` 业务。 部分成功(即:, `BatchGetItem` 返回一些响应和一些未处理的密钥的操作 或者说 `BatchWriteItem` 返回一些未处理项目的操作)将重试 未处理的项目自动使用指数回放.

## 开始

### 阅读批次

创建一个 `BatchGet` 对象,从 用于 JavaScript 的 AWS SDK 和您想要取取的可移动密钥 。 这个 可同步(例如数组)或同步(例如 被包裹的对象流 [同步- 点流](https://github.com/calvinmetcalf/async-iter-stream)是因为 `wrap` 页:1.

```typescript
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 和您想要的可重复的写请求 执行。 可执行的可以是同步的(如数组),也可以是同步的 (例如包裹在 [同步- 点流](https://github.com/calvinmetcalf/async-iter-stream)是因为 `wrap` 页:1.

每项书面请求应包含 `DeleteRequest` 键或 a `PutRequest` 密钥如上所述 [amazon DynamomDB API 参考文献](http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_WriteRequest.html#DDB-Type-WriteRequest-DeleteRequest)。 。 。 .

```typescript
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 是什么？

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 和提交记录判断。

