1. 程式人生 > >Amazon Kinesis Data Streams 常見問題

Amazon Kinesis Data Streams 常見問題

問:什麼是 Amazon Kinesis 應用程式?

問:什麼是 Amazon Kinesis Client Library (KCL)?

適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL) 是一個預構建庫,可幫助您輕鬆構建 Amazon Kinesis 應用程式,用以讀取和處理來自 Amazon Kinesis 資料流的資料。

KCL 可以處理各種複雜的問題,如適應資料流的數量變化、均衡流資料負載、協調分散式服務以及以容錯方式處理資料。KCL 可讓您在構建應用程式時專注於業務邏輯。KCL 2.x 支援 HTTP/1 GetRecords 和 HTTP/2 SubscribeToShard API 配合增強型扇出功能使用,以從流中檢索資料。KCL 1.x 不支援 SubscribeToShard API,也不支援增強型扇出功能。

問:如何從 KCL 1.x 升級到 2.x 以使用 SubscribeToShard 和增強型扇出功能?

請訪問 Kinesis Data Streams 使用者文件,以瞭解如何從 KCL 1.x 升級到 KCL 2.x。

問:什麼是 SubscribeToShard API?

SubscribeToShard API 是一種高效能的流式處理 API,它通過持久連線將資料從分割槽推送到使用者,不存在客戶端發出請求的週期。SubscribeToShard API 使用 HTTP/2 協議在新資料送達分割槽時向已註冊的使用者交付資料(通常在 70 分鐘內),與 GetRecords API 相比,交付速度提高約 65%。即使有多個已註冊的使用者從相同的分割槽中讀取資料,使用者也能實現快速的資料交付。

問:我可以在不使用增強型扇出功能的情況下使用 SubscribeToShard嗎?

不可以,SubscribeToShard 需要使用增強型扇出功能,這意味著您也需要在使用 SubscribeToShard 之前向 Kinesis Data Streams 服務註冊您的使用者。

問:SubscribeToShard 持久連線會持續多長時間?

持久連線最長可持續 5 分鐘。

問:Kinesis Client Library (KCL) 是否支援 SubscribeToShard?

是,KCL 2.x 版本使用 SubscribeToShard 和增強型扇出功能來從 Kinesis 資料流中高效能檢索資料。

問:使用 SubscribeToShard 會產生相關費用嗎?

不會,沒有與 SubscribeToShard 相關的額外費用,但您必須將 SubscribeToShard 與增強型扇出功能配合使用,而增強型扇出功能要根據每個使用者分割槽組合與增強型扇出功能交付的每 GB 資料額外收取每小時費用。

問:如果我想使用 SubscribeToShard,是否需要使用增強型扇出功能?

是的,要使用 SubscribeToShard,您需要註冊您的使用者,註冊後方可啟用增強型扇出功能。預設情況下,通過 SubscribeToShard 檢索資料時,您的使用者會自動使用增強型扇出功能。

問:什麼是 Amazon Kinesis 聯結器庫?

Amazon Kinesis 聯結器庫是一個預構建庫,可幫助您輕鬆完成 Amazon Kinesis Data Streams 與其他 AWS 服務和第三方工具的整合。使用 Amazon Kinesis 聯結器庫需要適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL)。該庫的最新版本為 Amazon DynamoDB、Amazon Redshift 和 Amazon S3 和 Elasticsearch 提供了聯結器。該庫還包括各種型別的示例聯結器,並有 Apache Ant 來構建執行示例的檔案。

問:什麼是 Amazon Kinesis Storm Spout?

Amazon Kinesis Storm Spout 是一個預建庫,可幫助您輕鬆將 Amazon Kinesis Data Streams 與 Apache Storm 整合。最新版本的 Amazon Kinesis Storm Spout 從 Amazon Kinesis 資料流獲取資料,再作為元組發出。您將此 spout 新增到 Storm 拓撲中,以將 Amazon Kinesis Data Streams 作為一種可靠、可擴充套件、流捕獲、儲存以及重播服務來使用。

問:Amazon Kinesis 客戶端庫 (KCL)、Amazon Kinesis 連線件庫和 Amazon Kinesis Storm Spout 可用於什麼程式語言?

Amazon Kinesis 客戶端庫 (KCL) 當前提供 Java、Python、Ruby、Node.js 和 .NET 等版本。Amazon Kinesis 聯結器庫和 Amazon Kinesis Storm Spout 當前在 Java 中可用。我們期待新增對其他程式語言的支援。

問:我是否必須為我的 Amazon Kinesis 應用程式使用 Amazon Kinesis 客戶端庫 (KCL)?

否,您還可以使用 Amazon Kinesis API 構建 Amazon Kinesis 應用程式。然而,我們建議使用適用於 Java | Python | Ruby | Node.js | .NET的 Amazon Kinesis 客戶端庫 (KCL)(如果適用),因為它會執行與分散式流處理關聯的繁重任務,可幫助您更加高效地開發 Amazon Kinesis 應用程式。

問:Amazon Kinesis 客戶端庫 (KCL) 如何與 Amazon Kinesis 應用程式互動?

適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL) 是 Amazon Kinesis Data Streams 和 Amazon Kinesis 應用程式之間的中間程式。KCL 使用 IRecordProcessor 介面來與應用程式通訊。您的應用程式實施此介面,同時 KCL 使用此介面中的方法呼叫您的應用程式程式碼。

問:什麼是 Amazon Kinesis 客戶端庫 (KCL) 生成的工作程式和記錄處理器?

Amazon Kinesis 應用程式可以有多個應用程式例項,同時程序是對映到每個應用程式例項的處理單元。記錄處理器是處理來自 Amazon Kinesis 資料流分割槽資料的處理單元。一個程序對映到一個或多個記錄處理器。一個記錄處理器對映到一個分割槽,並從該分割槽處理記錄。

啟動時,應用程式呼叫適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL) 以例項化工作程式。這一呼叫將為應用程式提供帶配置資訊的 KCL,如資料流名稱和 AWS 憑證。這一呼叫還會傳輸對 IRecordProcessorFactory 實現的引用。KCL 使用此工廠來按需建立新的記錄處理器,以處理來自資料流的資料。KCL 使用 IRecordProcessor 介面與這些記錄處理器通訊。

問:Amazon Kinesis 客戶端庫 (KCL) 如何保持跟蹤 Amazon Kinesis 應用程式處理的資料記錄?

適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL) 自動為每個 Amazon Kinesis 應用程式建立一個 Amazon DynamoDB 表,從而跟蹤和維護狀態資訊,如重新分割槽事件和序列號檢查點。DynamoDB 表與應用程式共享同一名稱,因此您需要確保應用程式名稱不與同一地區的任何現有 DynamoDB 表衝突。

假定所有與同一應用程式名稱關聯的工作程式在同一 Amazon Kinesis 資料流上配合工作。如果您運行同一應用程式程式碼的其他例項,但使用不同的應用程式名稱,則 KCL 會將第二個例項視為在同一資料流執行的完全獨立的應用程式。

請注意,除了與 Amazon Kinesis Data Streams 關聯的成本之外,還將對賬戶收取與 Amazon DynamoDB 表關聯的費用。

有關 KCL 如何跟蹤 Amazon Kinesis 應用程式狀態的更多資訊,請參閱跟蹤 Amazon Kinesis 應用程式狀態

問:我如何使用 Amazon Kinesis 客戶端庫 (KCL) 自動擴充套件 Amazon Kinesis 應用程式的處理容量?

您可為 Amazon Kinesis 應用程式建立多個例項,並讓這些應用程式例項執行在作為 Auto Scaling 組一部分的一組 Amazon EC2 例項。儘管處理需求增長,但是執行您應用程式例項的 Amazon EC2 例項將自動例項化。適用於 Java | Python | Ruby | Node.js | .NET 的 Amazon Kinesis 客戶端庫 (KCL) 將為此新例項生成程序,並從超載的現有例項自動移動記錄處理器到此新例項。

問:當 Amazon Kinesis 資料流中存在資料時,GetRecords 呼叫為何返回空結果?

一個可能的原因是,當前分割槽迭代器指定的位置沒有任何記錄。即使您使用 TRIM_HORIZON 作為分割槽迭代器型別也可能出現這種情況。Amazon Kinesis 資料流代表著持續的資料流。您應在一個迴圈中呼叫 GetRecords 操作,相關記錄將在分割槽迭代器資料記錄儲存到位時返回。

問:GetRecords 操作中返回的 ApproximateArrivalTimestamp 是什麼?

每條記錄都包含一個稱作 ApproximateArrivalTimestamp 的值。Amazon Kinesis 在成功收到並存儲記錄後設置該值。該時間戳精確到毫秒,但不保證時間戳準確。例如,分割槽中或跨資料流的記錄的時間戳可能是亂序的。

問:如果 Amazon Kinesis 應用程式從資料流讀取資料時超出 Amazon Kinesis 資料流的容量限制該怎麼辦?

Amazon Kinesis 資料流的容量限制由流內的分割槽數量來定義。資料吞吐量或讀取資料呼叫的數量會超出限制。超出容量限制時,讀取資料呼叫將被拒絕,並引發 ProvisionedThroughputExceeded 異常。如果這由臨時的資料流輸出資料速率增加導致,則 Amazon Kinesis 應用程式將重試並最終完成請求。如果這由持續的資料流輸出資料速率增加導致,則應增加資料流內的分割槽數量,從而為讀取資料呼叫提供持續成功所需的足夠容量。在這兩種情況下,Amazon CloudWatch 指標都可讓您瞭解資料流輸出資料速率的變化,以及 ProvisionedThroughputExceeded 異常的出現。

相關推薦

Amazon Kinesis Data Streams 常見問題

問:什麼是 Amazon Kinesis 應用程式? 問:什麼是 Amazon Kinesis Client Library (KCL)? 適用於 Java | Python | Ruby | Node.js | .NET 的 Ama

Amazon Kinesis Data Streams Resources

This is a pre-built library that helps you easily integrate Amazon Kinesis Data Streams with other AWS services and third-party tools. Amazon Ki

Amazon Kinesis Data Streams getting started

Reducing the time to get actionable insights from data is important to all businesses and customers who employ batch data analytics tools are exp

Amazon Kinesis Data Streams FAQs

Q: What is an Amazon Kinesis Application? An Amazon Kinesis Application is a data consumer that reads and processes data from an Amazon

Building a Data Processing Pipeline with Amazon Kinesis Data Streams and Kubeless

If you’re already running Kubernetes, FaaS (Functions as a Service) platforms on Kubernetes can help you leverage your existing investment in EC2

Amazon Kinesis Data Streams News

Two years ago we introduced Amazon Kinesis, which we now call Amazon Kinesis Streams, to allow customers to build applications that collect,

Amazon Kinesis Data Streams Pricing

Let’s assume that our data producers put 100 records per second in aggregate, and each record is 35KB. In this case, the total data input rate is

Amazon Kinesis Data Streams:AWS

Amazon Kinesis Data Streams (KDS) は、大規模にスケーラブルで持続的なリアルタイムのデータストリーミングサービスです。KDS はウエブサイトクリックストリームやデータべースイベントストリームや金融取引、ソーシャルメディアフィード、ITロゴ、ロケーション追跡イベ

Questions fréquentes (FAQ) sur Amazon Kinesis Data Streams

Q : Qu'est-ce qu'une application Amazon Kinesis ? Une application Amazon Kinesis est un consommateur de données qui lit et traite des do

Вопросы и ответы по Amazon Kinesis Data Streams

Вопрос: Что такое приложение Amazon Kinesis? Приложение Amazon Kinesis – это потребитель данных, который считывает и обрабатывает данные

Цены на Amazon Kinesis Data Streams

Предположим, что всего от источников данных поступает 100 записей в секунду, каждая запись размером 35 КБ. В этом случае общая скорость передачи в

Amazon Kinesis Data Streams 定價

讓我們假定我們的資料生產者平均每秒輸入 100 個記錄,每個記錄大小為 35KB。在這種情況下,總資料總輸入速率為 3.4MB/秒(100 個記錄/秒*35KB/記錄)。為方便起見,我們假設每次交易的吞吐量和記錄大小全天都是穩定不變的。請注意,我們可以隨時動態調整 Amazon Kinesi

Amazon Kinesis Data Firehose blog posts

Stream data into an Aurora PostgreSQL Database using AWS DMS and Amazon Kinesis Data Firehose In this blog post, we explore a solution to

Streaming CloudWatch Logs to Kinesis Data Streams

Amazon Web Services is Hiring. Amazon Web Services (AWS) is a dynamic, growing business unit within Amazon.com. We are currently hiring So

Amazon Kinesis Data Firehose Features

You can configure Amazon Kinesis Data Firehose to prepare your streaming data before it is loaded to data stores. Simply select an AWS Lambda fun

Amazon Kinesis Data Firehose Pricing

If you send 5,000 records of streaming data per second, each record 7KB in size, to Amazon Kinesis Data Firehose in US-East to be loaded into Amaz

Amazon Kinesis Data Firehose Resources

Reducing the time to get actionable insights from data is important to all businesses and customers who employ batch data analytics tools are ex

Amazon Kinesis Data Analytics_流資料處理分析服務

Amazon Kinesis Data Analytics 是實時處理流資料的一種最簡單的方法,採用的是標準 SQL 且無需瞭解新的程式語言或處理框架。通過 Amazon Kinesis Data Analytics,您能夠使用 SQL 查詢流資料或構建整個流式處理應用程式,以便獲取可行的

Amazon Kinesis Data Firehose_流資料捕獲載入服務

Amazon Kinesis Data Firehose 是將流資料可靠地載入到資料儲存和分析工具的最簡單方式。它可以捕獲、轉換流資料並將其載入到 Amazon S3、Amazon Redshift、Amazon Elasticsearch Service 和 Splunk,讓您可以藉助正在