Czym jest streaming i dlaczego ma znaczenie?

Strumieniowanie danych z AWS Kinesis i Lambda

Maksim Pecherskiy

Data Engineer

Przetwarzanie wsadowe a strumieniowe

chapter1_take_ms_dahkX.png

Strumieniowanie danych z AWS Kinesis i Lambda

Przetwarzanie wsadowe a strumieniowe

Wsadowe

  • „Lepsze"
  • Większe zbiory danych
  • Bardziej złożona analiza
  • Wolniej zmieniające się dane
  • Np. Dzienny raport sprzedaży
  • Np. Prognozowanie sprzedaży na kolejny miesiąc
  • Np. Przewidywanie odejścia klientów

Strumieniowe

  • „Modniejsze"
  • Prostsza analiza: agregacja / filtrowanie
  • Pojedyncze rekordy / mikro-porcje
  • Dane płyną SZYBKO
  • Np. Wykrywanie oszustw
  • Np. Monitorowanie turbin wiatrowych
  • Np. Alerty w czasie rzeczywistym
Strumieniowanie danych z AWS Kinesis i Lambda

Cody i flota

Cody

Cody obok swojego roweru

Flota

kolaż pojazdów

Strumieniowanie danych z AWS Kinesis i Lambda

Strumieniowanie telematyczne

chapter1_take_ms_IfvAm.png

chapter1_take_ms_tNX4d.png

chapter1_take_ms_frlCB.png

Strumieniowanie danych z AWS Kinesis i Lambda

AWS Kinesis

Strumieniowanie danych z AWS Kinesis i Lambda

Data Firehose

chapter1_take_ms_UPYak.png

Strumieniowanie danych z AWS Kinesis i Lambda

Strumienie dostarczania

chapter1_take_ms_MDHnC.png

Strumieniowanie danych z AWS Kinesis i Lambda

Strumienie dostarczania

chapter1_take_ms_ytekB.png

Strumieniowanie danych z AWS Kinesis i Lambda

Strumienie dostarczania

chapter1_take_ms_gx6D1.png

Strumieniowanie danych z AWS Kinesis i Lambda

Tworzenie klienta 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')
Strumieniowanie danych z AWS Kinesis i Lambda

Praca ze strumieniami dostarczania

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

print(response['DeliveryStreamNames'])
['old-delivery-stream1', 'a-test-stream']
Strumieniowanie danych z AWS Kinesis i Lambda

Usuwanie strumieni

# 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)
Strumieniowanie danych z AWS Kinesis i Lambda

Podsumowanie

  • Przetwarzanie wsadowe a strumieniowe
  • Cody i zbieranie danych telematycznych
  • AWS Kinesis
  • Strumienie dostarczania Kinesis Firehose
  • AWS Kinesis Data Firehose
  • Listowanie i usuwanie strumieni dostarczania Firehose
  • Producent -> generator danych
  • Miejsce docelowe -> cel przesyłania danych
Strumieniowanie danych z AWS Kinesis i Lambda

Czas na ćwiczenia!

Strumieniowanie danych z AWS Kinesis i Lambda

Preparing Video For Download...