AWS - Kinesis


簡介

在資料處理方面,我們有時候要處理一些資料串流的情境,如遊戲數據即時分析或是一些媒體相關的分析等等,AWS 提供了一項 Data Streaming 的服務叫做 Kinesis

主要提供以下功能

  • 及時處理大規模串流資料服務
  • 可以持續捕捉,處理與分析即時資料
  • 包含多個子服務,各自針對不同場景使用

子服務


Kinesis Data Firehose

  • 用於資料傳輸的全代管服務
  • 自動將串流資料載入到目標位置
  • 支援近乎即時的資料傳輸

image


Kinesis Data Streams

  • 相較於 Firehose,Streams 更專注在流程與效能的控制
  • 用於即時數據串流處理
  • 可擴展的串流資料服務
  • 支援多個應用程式同時讀取相同數據流
  • 可以選擇 On-demand mode 與 Provisioned mode
    • On-demand
      • 根據 Streaming 吞吐量控制 AWS Scaling
    • Provisioned
      • 由顧客自行控制 Scaling

image


Kinesis Data Analytics

  • 用 SQL 或 Apache Flink 分析串流資料
  • 即時處理和分析資料
  • 自動擴展來適應容量與資料吞吐量

Apache Flink 是一個開源框架是批次資料處理與串流的引擎,Flink App 是 Java/Scala App 用 Flink 框架開發出來的。軟體工程師可以建造本地的 Flink App 主要用 DataStream API(Read Data Stream) 或是 Flink Table API(Create table for observe data)

image

Kinesis Data Analytics Studio Applications

Studio notebooks for Kinesis Data Analytics,使用者可以即時交互查詢的資料串流

  • Studio notebooks 基於網頁的開發環境
  • 提供簡單的互動開發體驗與進階的功由 Apache Flink 提供。
  • Studio notebooks 用 Apache Zeppelin notebooks 與 Apache Flink 當作串流引擎。
  • Apache Zeppelin 提供 Studio notebooks 且有完整全套的分析工具包含
    • 資料視覺話
    • 資料轉換
    • 資料消化與輸出
  • 在 Apache Zeppelin notebooks 建立 Query 用 Apache Flink Table API 與 SQL 在 SQL Python Scala 或使用 Scala DataStream API

image

Kinesis Data Analytics SQL Applications

對於較新的專案,AWS 推薦使用 Studio notebooks for Kinesis Data Analytics 而不是 Kinesis Data Analytics for SQL Application 原因是以下功能只在 Studio 可用 SQL Application 不可用

  • Joining 串流資料在多個 Kinesis data streams 與 Amazon MSK Topic
  • 即時視覺化轉換過的資料流資料

SQL application in Kinesis Data Analytics 支援兩種 inputs

  • 串流資料來源: 動態資料 Kinesis Data Streams/Kinesis Data Firehose
  • 參照資料來源: 靜態資料 S3/SQL

image


Kinesis Video Streams

  • 專門處理視訊串流資料
  • 適用於視訊分析和處理

Kinesis Video Streams 通常用在大量的直播影片資料,我們稱之 Video Producer,他們可以是智慧型手機,安全相機,車內網路攝影機,無人機。也可以傳送非影片序列資料像是音頻資料,熱像圖,深度資料和雷達資料等

直播影片串流到 Kinesis Video Streams,應用程式可以存取 Frame by Frame 的資料,即時且低延遲處理。還能處理不同串流協定像是 GStreamer Lib 或是 RTSP

Kinesis Video Stream 可持久儲存媒體資料,保留期限為指定期限。Video Streams 會自動儲存這些資料並靜態加密。此外 Video Streams 會根據 Producer Timestamp 提取時間戳記儲存的資料進行時間索引。Application Consumer 可以定期批次處理 Video Data 也可以間歇的存取影片資料。

直播與點播方面,Kinesis Video Streams 提供全代管 HLS 與 DASH 功能。Kinesis Video Streams 還支援用 WebRTC 進行超低延遲雙向媒體串流傳輸。

更新於