什麼是串流?為何重要?

使用 AWS Kinesis 與 Lambda 的串流資料

Maksim Pecherskiy

Data Engineer

批次 vs 串流

第 1 章插圖

使用 AWS Kinesis 與 Lambda 的串流資料

批次 vs 串流

批次

  • 「比較好」
  • 較大資料集
  • 較複雜分析
  • 資料流動較慢
  • 例:每日銷售報表
  • 例:預測下月銷售
  • 例:流失預測

串流

  • 「比較酷」
  • 較簡單分析:彙總/過濾
  • 個別紀錄/微批次
  • 資料移動很快
  • 例:詐騙偵測
  • 例:風力發電機監控
  • 例:即時警示
使用 AWS Kinesis 與 Lambda 的串流資料

Cody 與車隊

Cody

Cody 與她的腳踏車

車隊

多種車輛拼貼

使用 AWS Kinesis 與 Lambda 的串流資料

車聯網串流

感測器與裝置圖示

資料上傳圖示

即時處理圖示

使用 AWS Kinesis 與 Lambda 的串流資料

AWS Kinesis

使用 AWS Kinesis 與 Lambda 的串流資料

Data Firehose

第 1 章插圖

使用 AWS Kinesis 與 Lambda 的串流資料

傳送串流(Delivery streams)

第 1 章插圖

使用 AWS Kinesis 與 Lambda 的串流資料

傳送串流(Delivery streams)

第 1 章插圖

使用 AWS Kinesis 與 Lambda 的串流資料

傳送串流(Delivery streams)

第 1 章插圖

使用 AWS Kinesis 與 Lambda 的串流資料

建立 Firehose 用戶端

import boto3

firehose = boto3.client('firehose',
aws_access_key_id=AWS_KEY_ID, aws_secret_access_key=AWS_SECRET,
region_name='us-east-1')
使用 AWS Kinesis 與 Lambda 的串流資料

操作傳送串流

# Show created delivery streams
response = firehose.list_delivery_streams()

print(response['DeliveryStreamNames'])
['old-delivery-stream1', 'a-test-stream']
使用 AWS Kinesis 與 Lambda 的串流資料

刪除串流

# Show created delivery streams
response = firehose.list_delivery_streams()

# Delete them all! for stream_name in response['DeliveryStreamNames']:
firehose.delete_delivery_stream(DeliveryStreamName=stream_name)
使用 AWS Kinesis 與 Lambda 的串流資料

複習

  • 批次 vs 串流
  • Cody 與車聯資料蒐集
  • AWS Kinesis
  • Kinesis Firehose 傳送串流
  • AWS Kinesis Data Firehose
  • 列出並刪除 Firehose 傳送串流
  • Producer → 資料產生器
  • Destination → 資料目的地
使用 AWS Kinesis 與 Lambda 的串流資料

一起來練習吧!

使用 AWS Kinesis 與 Lambda 的串流資料

Preparing Video For Download...