Co to jest Kinesis AWS? Wzorzec projektowy, przypadki użycia i porównanie

Opublikowany: 2022-07-01

Żyjemy w epoce integracji między aplikacjami, natychmiastowych powiadomień i natychmiastowych aktualizacji danych. W takim scenariuszu ważniejsze staje się tworzenie, utrzymywanie i modyfikowanie systemów czasu rzeczywistego.

Przez lata opracowano różne przydatne narzędzia, które pomagają w budowaniu i utrzymywaniu takich systemów międzyplatformowych. RabbitMQ, Kafka i AWS Kinesis to trzy takie narzędzia, które pomogły programistom i inżynierom bezproblemowo pracować z danymi w czasie rzeczywistym. Wszystkie te systemy zostały stworzone i utrzymywane z myślą o różnych celach. Dlatego mają swoje wyraźne zalety i ograniczenia w zależności od wykonywanej pracy.

W tym artykule szczegółowo omówimy AWS Kinesis i jak to działa.

Kinesis to usługa przesyłania strumieniowego zbudowana na bazie AWS. Może być używany do przetwarzania wszelkiego rodzaju danych – od logów, danych IoT, danych wideo, w zasadzie dowolnego formatu danych. Umożliwia to uruchamianie różnych modeli i procesów uczenia maszynowego na danych w czasie rzeczywistym, gdy przepływają one przez system. W związku z tym zmniejsza kłopoty z przechodzeniem przez tradycyjne bazy danych, jednocześnie zwiększając ogólną wydajność.

Spis treści

Poznaj nasze popularne kursy MBA

Master of Business Administration z Golden Gate University Master of Business Administration (MBA) Liverpool Business School MBA z Deakin Business School
MBA w marketingu cyfrowym na Uniwersytecie Dekin Executive MBA z SSBM Zobacz wszystkie kursy MBA

Wzorzec projektowy Pub/Sub

Zanim zagłębimy się w to, w jaki sposób można używać Kinesis, konieczne jest, aby dowiedzieć się nieco więcej o używanym modelu projektowym. W tym przypadku mówimy o projekcie wydawcy i subskrybenta, który jest często określany jako wzorzec projektu pub/sub. Ten wzorzec projektowy został opracowany, aby Wydawca — nadawca wiadomości — wypychał zdarzenia do Kinesis — szyny zdarzeń. Następnie ta magistrala zdarzeń pomyślnie rozsyła dane wejściowe do wszystkich abonentów.

Jednym z kluczowych elementów, o których należy pamiętać, jest to, że wydawcy zasadniczo nie mają pojęcia o istnieniu subskrybentów. Całość przesyłania i przesyłania wiadomości jest w całości zarządzana przez AWS Kinesis.

Innymi słowy, wzorzec projektowy pub/sub służy do wydajnej komunikacji wiadomości bez tworzenia bardzo powiązanego projektu. Zamiast tego Kinesis koncentruje się na wykorzystaniu niezależnych komponentów i budowaniu z tego ogólnego rozproszonego przepływu pracy.

Zasadniczo AWS Kinesis to potężne narzędzie do przesyłania strumieniowego, które oferuje wyraźne zalety, zwłaszcza w porównaniu z innymi narzędziami do przesyłania strumieniowego w czasie rzeczywistym. Jedną z takich korzyści jest to, że jest to usługa zarządzana, więc programiści nie muszą zajmować się administrowaniem systemem. Dzięki temu programiści mogą bardziej skupić się na kodzie i systemach, a mniej na obowiązkach administracyjnych.

Przyjrzyjmy się teraz niektórym przypadkom użycia Kinesis.

Przykład użycia AWS Kinesis — przesyłanie strumieniowe danych

AWS Kinesis jest przydatny dla dużych i małych firm, które chcą zarządzać i integrować swoje dane na różnych platformach. Kinesis jest przydatny w dużych i małych scenariuszach dla organizacji, które chcą zarządzać swoimi danymi i integrować je na różnych platformach.

Przyjrzyjmy się dwóm dużym przypadkom użycia, w których firmy używały AWS Kinesis do bezproblemowego zarządzania dużymi ilościami danych w czasie rzeczywistym.

Netflix

Netflix używa AWS Kinesis do przetwarzania wielu TB danych dziennika każdego dnia. Netflix potrzebuje scentralizowanej aplikacji, która rejestruje wszystkie dane w czasie rzeczywistym. Korzystając z Kinesis, Netflix opracował Dredge, który wzbogaca zawartość o metadane w czasie rzeczywistym. W ten sposób dane są przetwarzane natychmiast po przejściu przez Kinesis. Eliminuje to jeden żmudny etap ładowania danych do bazy danych w celu przyszłego przetwarzania.

Veritone

Veriton zapewnia usługi AI i uczenia maszynowego. Wykorzystuje strumienie wideo AWS Kinesis do przetwarzania danych klientów. Veriton stosuje również modele ML i sztuczną inteligencję do treści w czasie rzeczywistym, aby ulepszyć ją za pomocą metryk i metadanych. Korzystając z tych dodatkowych informacji, Veritone ułatwia wyszukiwanie strumieni wideo Kinesis, patrząc na dźwięk, rozpoznawanie twarzy, oznakowane dane itp.

To tylko dwa z wielu przykładów tego, w jaki sposób firmy wykorzystują AWS Kinesis do wydajniejszej pracy z danymi strumieniowymi w czasie rzeczywistym.

Przejdźmy do szczegółów technicznych i podstawowych elementów strumienia AWS Kinesis.

Ucz się kursów AI i ML z najlepszych światowych uniwersytetów. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.

Strumienie a wąż strażacki

AWS Kinesis oferuje programistom dwa podstawowe produkty – Kinetic Streams i Kinesis Firehose.

Aby pracować z Kinesis Stream, musisz użyć Biblioteki producenta Kinesis. Umożliwi to umieszczenie w strumieniu wszystkich danych w czasie rzeczywistym. Co więcej, możesz podłączyć tę bibliotekę do prawie każdej aplikacji lub procesu. Kinesis Streams nie jest jednak usługą zarządzaną w 100%. Dlatego zespół programistów będzie musiał w razie potrzeby skalować go ręcznie. Ponadto dane wprowadzone do strumienia pozostaną tam przez siedem dni.

Kinesis Firehose jest nieco prostszy w implementacji. Dane przesyłane do Kinesis Firehose są wysyłane do Amazon Redshift, Amazon S3, a nawet Elasticsearch – wszystko za pomocą silnika AWS Kinesis. Następnie możesz go przetworzyć zgodnie ze swoimi wymaganiami. Jeśli dane są przechowywane w Amazon S3 lub innym systemie pamięci masowej AWS, możesz je tam pozostawić tak długo, jak chcesz.

Konfigurowanie strumienia w Kinesis

Zanim zaczniesz uzyskiwać dostęp do Kinesis, musisz skonfigurować strumień, uzyskując dostęp do AWS CLI. W powłoce poleceń wprowadź następujące polecenie, aby utworzyć strumień o nazwie DataProcessingStream

–nazwa-strumienia DataProcessingStream \

–liczba odłamków 1 \

–region ue-zachód-1

Tworzenie potoku strumieniowego za pomocą Pythona

Po skonfigurowaniu strumienia na Kinesis musisz zacząć budować producenta i konsumenta. Podstawowe komponenty Kinesis pomagają stworzyć warstwę dostępu do integracji innych systemów, oprogramowania i aplikacji.

W tym samouczku będziemy pracować z biblioteką boto3 Python, aby połączyć się z Kinesis.

Tworzenie Producenta

Użyj poniższego kodu, aby stworzyć producenta przy użyciu języka programowania Python:

importuj boto3

importuj json

importuj logowanie

logging.basicConfig(poziom = logging.INFO)

sesja = boto3.Session(region_name='eu-west-1′)

klient = sesja.klient('kineza')

test_data = {'data_tag': 'DataOne', 'score': '10', 'char': 'Database Warrior'}

odpowiedź = klient.put_record (

StreamName='Strumień Przetwarzania Danych',

Data=json.dumps({

„data_tag”: test_data['data_tag'],

„score”: test_data['score'],

„char”: test_data['char']

}),

PartitionKey='a01′

)

logging.info(„Wprowadź nowy wynik danych: %s”, test_data)

Aby pobrać dane, potrzebujesz innego skryptu do słuchania danych przekazywanych producentom. W tym celu możesz użyć ShardIterator, aby uzyskać dostęp do wszystkich danych wprowadzanych do Kinesis. W ten sposób możesz uzyskać dostęp do rekordów czasu rzeczywistego i przyszłych w Kinesis.

Tworzenie Konsumenta

Użyj poniższego kodu, aby utworzyć konsumenta Pythona:

importuj boto3

importuj json

system importu

importuj logowanie

logging.basicConfig(poziom = logging.INFO)

sesja = boto3.Session(region_name='eu-west-1′)

klient = sesja.klient('kineza')

aws_kinesis_stream = client.describe_stream(StreamName='DataProcessingStream)

shard_id = aws_kinesis_stream['StreamDescription']['Shards'][0]['ShardId']

stream_response = client.get_shard_iterator(

StreamName='Strumień Przetwarzania Danych',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

iterator = stream_response ['ShardIterator']

podczas gdy prawda:

próbować:

aws_kinesis_response = client.get_records(ShardIterator=iterator, Limit=5)

iterator = aws_kinesis_response['NextShardIterator']

do zapisu w aws_kinesis_response['Records']:

if 'Dane' in record i len(record['Data']) > 0:

logging.info("Otrzymany nowy wynik danych: %s", json.loads(record['Dane']))

z wyjątkiem KeyboardInterrupt:

sys.exit()

W powyższym przykładzie drukujemy tylko dane.

Problemy z potokami Kinesis

Kinesis jest naprawdę korzystna, ale nie jest pozbawiona wyzwań i niedociągnięć. Jedno z istotnych wyzwań, z jakimi przyjdzie Ci się zmierzyć podczas pracy z Kinesis, można nazwać „obserwowalnością”.

Gdy pracujesz z kilkoma komponentami AWS, tworzony system staje się coraz bardziej złożony. Na przykład, jeśli użyjesz funkcji Lambda jako producenta i konsumenta i połączysz ją z różnymi systemami pamięci masowej AWS, bardzo trudno będzie zarządzać i śledzić zależności i błędy.

Przeczytaj nasze popularne artykuły związane z MBA

Wynagrodzenie analityka finansowego – świeżo upieczeni i doświadczeni Najpopularniejsze pytania i odpowiedzi podczas rozmowy kwalifikacyjnej dla HR Opcje kariery w marketingu MBA w USA
Najlepsze opcje kariery w USA po MBA w zasobach ludzkich 7 najlepszych opcji kariery w sprzedaży Najwyżej płatne prace finansowe w USA: od średniej do najwyższej
Top 7 opcji kariery w finansach w USA: trzeba przeczytać 5 najważniejszych trendów marketingowych w 2022 r. Wynagrodzenie MBA w USA w 2022 roku [Wszystkie Specjalizacje]

Na zakończenie

Nie ma wątpliwości, że przesyłanie strumieniowe danych i praca z danymi w czasie rzeczywistym jest potrzebą chwili i będzie się zwiększać, ponieważ nasz świat będzie wytwarzał coraz więcej danych. Jeśli więc jesteś zainteresowany opanowaniem sztuczek Kinesis, profesjonalny kurs może pomóc.

UpGrad's Master of Science in Machine Learning and AI , oferowany we współpracy IIIT-B i LJMU, to 18-miesięczny kompleksowy kurs zaprojektowany, aby pomóc Ci zacząć od podstaw eksploracji danych i dotrzeć do wszystkich krytycznych koncepcji NLP, Deep Nauka, nauka wzmacniania i nie tylko. Co więcej – możesz pracować nad projektami branżowymi, wsparciem kariery 360 stopni, spersonalizowanym mentoringiem, możliwościami nawiązywania kontaktów i wiele więcej, aby pomóc Ci opanować uczenie maszynowe i sztuczną inteligencję.

1. Czy AWS Kinesis może pobierać dane?

Amazon Kinesis to skalowalne i trwałe rozwiązanie do strumieniowego przesyłania danych w czasie rzeczywistym, które działa poprzez ciągłe przechwytywanie GB danych w czasie rzeczywistym z tysięcy źródeł.

2. Czy jeden strumień Kinesis może mieć wielu odbiorców?

Tak, używając iteratorów fragmentów, możesz zapewnić wielu odbiorców w jednym strumieniu Kinesis.

3. Z jakim rodzajem kolejki współpracuje AWS Kinesis?

AWS Kinesis to FIFO - First In First Out - w swoich operacjach i przetwarzaniu danych.