

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon DynamoDB 變更資料擷取
<a name="streamsmain"></a>

當存放在 DynamoDB 資料表中的項目發生變更時，擷取這類變更的功能可為許多應用程式提供好處。下列是一些範例使用案例：
+ 熱門行動應用程式以每秒數千筆更新的速率修改 DynamoDB 資料表中的資料。另一個應用程式擷取及存放這些更新的相關資料，為行動應用程式提供近乎即時的用量指標。
+ 財務應用程式會修改 DynamoDB 資料表中的股票市場資料。平行執行的不同應用程式會即時追蹤這些變更，計算風險價值，並根據股票價格變動自動重新平衡投資組合。
+ 運輸車輛和工業設備中的感應器會將資料傳送至 DynamoDB 資料表。不同的應用程式會監控效能並在偵測到問題時傳送簡訊提醒，透過應用機器學習演算法預測任何潛在缺陷，以及將資料壓縮和封存到 Amazon Simple Storage Service (Amazon S3)。
+ 應用程式在某位朋友上傳新圖片時，立即自動傳送通知給群組中所有朋友的行動裝置。
+ 新客戶將資料新增至 DynamoDB 資料表。此事件調用另一個應用程式，該應用程式會將歡迎電子郵件傳送給新客戶。

DynamoDB 支援近乎即時的項目層級變更資料擷取紀錄串流。您可以建立使用這些串流並根據內容採取動作的應用程式。

**注意**  
新增標籤至 DynamoDB Streams 與透過 DynamoDB Streams 使用[屬性型存取控制 (ABAC)](access-control-resource-based.md)，目前未提供支援。

以下影片將為您介紹變更資料擷取概念。

[![AWS Videos](http://img.youtube.com/vi/VVv_-mZ5Ge8/0.jpg)](http://www.youtube.com/watch?v=VVv_-mZ5Ge8)


**Topics**
+ [變更資料擷取的串流選項](#streamsmain.choose)
+ [使用 Kinesis Data Streams 來擷取 DynamoDB 的變更](kds.md)
+ [DynamoDB Streams 的變更資料擷取](Streams.md)

## 變更資料擷取的串流選項
<a name="streamsmain.choose"></a>

DynamoDB 提供兩種用於變更資料擷取的串流模型：DynamoDB 專用 Kinesis Data Streams 和 DynamoDB Streams。

為了協助您為應用程式選擇合適的解決方案，下表摘要說明每種串流模型的特色。


| Properties | DynamoDB 專用 Kinesis Data Streams | DynamoDB Streams | 
| --- | --- | --- | 
| 資料保留 |  最多 [1 年](https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html)。 | 24 小時。 | 
| Kinesis Client Library (KCL) 支援 | 支援 [KCL 1.X、2.X 版和 3.X 版](https://docs.aws.amazon.com/streams/latest/dev/custom-kcl-consumers.html)。 | 支援 [KCL 1.X 版和 2.X 版](https://docs.aws.amazon.com/streams/latest/dev/custom-kcl-consumers.html)。 | 
| 取用者數量 | 每個碎片最多 [5 個同時](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html)取用者，每個具有[強化廣發功能](https://docs.aws.amazon.com/streams/latest/dev/enhanced-consumers.html)的碎片最多 20 個同時取用者。 | 每個碎片最多 [2 個同時](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-dynamodb-streams)取用者。 | 
| 輸送量配額 | 無限制。 | 受限於 DynamoDB 資料表和 AWS 區域的輸送量[配額](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-dynamodb-streams)。 | 
| 記錄交付模式 | 使用 [GetRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html) 和[強化廣發功能](https://docs.aws.amazon.com/streams/latest/dev/enhanced-consumers.html)透過 HTTP 提取模型，Kinesis Data Streams 使用 [SubscribeToShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html) 透過 HTTP/2 推送紀錄。 | 使用 [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html) 透過 HTTP 提取模型。 | 
| 記錄排序 | 每個串流紀錄上的時間戳記屬性可用來識別 DynamoDB 資料表中發生變更的實際順序。 | 對於 DynamoDB 資料表中的每個修改項目，串流紀錄的出現順序與項目的實際修改順序相同。 | 
| 複製記錄 | 串流中偶爾會出現重複紀錄。 | 串流中沒有出現重複紀錄。 | 
| 串流處理選項 | 使用 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html)、[Amazon Managed Service for Apache Flink](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/what-is.html)、[Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 或 [AWS Glue Streaming ETL](https://docs.aws.amazon.com/glue/latest/dg/add-job-streaming.html) 來處理串流記錄。 | 使用 [AWS Lambda](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html) 或 [DynamoDB Streams Kinesis 轉接器](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.KCLAdapter.html)處理串流記錄。 | 
| 耐久性等級 | [可用區域](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/disaster-recovery-resiliency.html)會提供自動不中斷的容錯移轉。 | [可用區域](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/disaster-recovery-resiliency.html)會提供自動不中斷的容錯移轉。 | 

您可以在同一個 DynamoDB 資料表上啟用這兩種串流模型。

下面這段影片將進一步說明這兩個選項之間的差異。

[![AWS Videos](http://img.youtube.com/vi/UgG17Wh2y0g/0.jpg)](http://www.youtube.com/watch?v=UgG17Wh2y0g)
