Ce este AWS Kinesis? Model de design, cazuri de utilizare și comparație

Publicat: 2022-07-01

Trăim în era integrărilor între aplicații, notificărilor instantanee și actualizărilor instantanee de date. Într-un astfel de scenariu, devine mai importantă crearea, întreținerea și modificarea sistemelor în timp real.

De-a lungul anilor, au fost dezvoltate diverse instrumente utile pentru a ajuta la construirea și întreținerea unor astfel de sisteme multiplatforme. RabbitMQ, Kafka și AWS Kinesis sunt trei astfel de instrumente care au ajutat dezvoltatorii și inginerii să lucreze fără probleme cu date în timp real. Toate aceste sisteme au fost create și întreținute, ținând cont de scopuri diferite. Prin urmare, ele vin cu beneficiile și limitările lor distincte în funcție de locul de muncă la îndemână.

Acest articol va vorbi în detaliu despre AWS Kinesis și despre cum funcționează.

Kinesis este un serviciu de streaming construit pe AWS. Poate fi folosit pentru a procesa tot felul de date – de la jurnale, date IoT, date video, practic orice format de date. Acest lucru vă permite să rulați diferite modele și procese de învățare automată pe date în timp real, pe măsură ce acestea circulă prin sistemul dvs. Prin urmare, reduce problemele de a parcurge bazele de date tradiționale în timp ce crește eficiența generală.

Cuprins

Explorați cursurile noastre populare de MBA

Master în Administrarea Afacerilor de la Universitatea Golden Gate Master of Business Administration (MBA) Liverpool Business School MBA de la Deakin Business School
MBA în marketing digital de la Universitatea Dekin Executive MBA de la SSBM Vezi toate cursurile de MBA

Modelul de design Pub/Sub

Înainte de a ne aprofunda în mod exact cum poate fi utilizat Kinesis, este esențial să știm puțin mai multe despre modelul de design pe care îl folosește. În acest caz, vorbim despre designul editorului și al abonaților, care este adesea denumit model de design pub/sub. Acest model de design a fost dezvoltat pentru a avea editorul – expeditorul mesajului, să împingă evenimentele în Kinesis – un autobuz de evenimente. Apoi, această magistrală de evenimente distribuie cu succes datele de intrare tuturor abonaților.

Un element cheie de reținut aici este că editorii nu au idee că există abonați. Toate mesajele și transportul mesajelor sunt gestionate în întregime de AWS Kinesis.

Cu alte cuvinte, modelul de design pub/sub este utilizat pentru comunicarea eficientă a mesajelor fără a crea un design mult cuplat. În schimb, Kinesis se concentrează pe utilizarea componentelor independente și pe construirea unui flux de lucru general distribuit din asta.

În esență, AWS Kinesis este un instrument de streaming puternic care oferă avantaje distincte, în special în comparație cu alte instrumente de streaming în timp real. Un astfel de avantaj este că este un serviciu gestionat, astfel încât dezvoltatorii nu trebuie să se ocupe de administrarea sistemului. Acest lucru permite dezvoltatorilor să se concentreze mai mult pe codul și sistemele lor și mai puțin pe sarcinile administrative.

Acum, să ne uităm la câteva cazuri de utilizare ale Kinesis.

Cazul de utilizare al AWS Kinesis – Streaming de date

AWS Kinesis este util pentru companiile mari și mici care doresc să-și gestioneze și să-și integreze datele în diferite platforme. Kinesis este benefic în scenarii la scară mare și mică pentru organizațiile care doresc să-și gestioneze și să-și integreze datele pe platforme.

Să ne uităm la două cazuri mari de utilizare în care companiile au folosit AWS Kinesis pentru a gestiona fără probleme cantități mari de date în timp real.

Netflix

Netflix folosește AWS Kinesis pentru a procesa mai mulți TB de date de jurnal în fiecare zi. Netflix are nevoie de o aplicație centralizată care să înregistreze toate datele în timp real. Folosind Kinesis, Netflix a dezvoltat Dredge, care îmbogățește conținutul cu metadate în timp real. În acest fel, datele sunt procesate instantaneu pe măsură ce trec prin Kinesis. Acest lucru elimină un pas obositor de încărcare a datelor într-o bază de date pentru procesarea viitoare.

Veritone

Veriton oferă servicii de inteligență artificială și de învățare automată. Utilizează fluxuri video AWS Kinesis pentru procesarea datelor clienților. Veriton aplică, de asemenea, modele ML și AI conținutului în timp real pentru a-l îmbunătăți cu valori și metadate. Folosind aceste informații suplimentare, Veritone facilitează căutarea fluxurilor video Kinesis, uitându-se la sunet, recunoașterea feței, datele etichetate etc.

Acestea sunt doar două dintre numeroasele exemple ale modului în care companiile de astăzi folosesc AWS Kinesis pentru a lucra cu date de streaming în timp real mai eficient.

Să trecem la aspectele tehnice și la componentele esențiale ale fluxului AWS Kinesis.

Învață cursuri AI și ML de la cele mai bune universități din lume. Câștigă programe de master, Executive PGP sau Advanced Certificate pentru a-ți accelera cariera.

Streams vs Firehose

AWS Kinesis oferă dezvoltatorilor două produse principale – Kinetic Streams și Kinesis Firehose.

Pentru a lucra cu Kinesis Stream, va trebui să utilizați Biblioteca Kinesis Producer. Vă va permite să introduceți toate datele în timp real în fluxul dvs. În plus, puteți conecta această bibliotecă la aproape orice aplicație sau proces. Cu toate acestea, Kinesis Streams nu este un serviciu 100% gestionat. Deci, echipa de dezvoltatori va trebui să-l scaleze manual atunci când este necesar. În plus, datele introduse în flux vor rămâne acolo timp de șapte zile.

Kinesis Firehose este puțin mai simplu de implementat. Datele furnizate către Kinesis Firehose sunt trimise către Amazon Redshift, Amazon S3 și chiar Elasticsearch – toate folosind motorul AWS Kinesis. După aceasta, îl puteți procesa conform cerințelor dvs. Dacă datele sunt stocate în Amazon S3 sau în orice alt sistem de stocare AWS, le puteți lăsa acolo atâta timp cât doriți.

Configurarea unui flux pe Kinesis

Înainte de a începe să accesați Kinesis, trebuie să configurați un flux accesând AWS CLI. În shell-ul de comandă, introduceți următoarea comandă pentru a crea un flux numit DataProcessingStream

–nume-flux DataProcessingStream\

–număr de cioburi 1 \

–regiunea eu-vest-1

Crearea unei conducte de streaming cu Python

Odată ce ați configurat un flux pe Kinesis, trebuie să începeți să construiți producătorul și consumatorul. Componentele de bază ale Kinesis vă ajută să creați un nivel de acces pentru a integra alte sisteme, software și aplicații.

În acest tutorial, vom lucra cu biblioteca boto3 Python pentru a vă conecta la Kinesis.

Crearea Producătorului

Utilizați codul menționat mai jos pentru a crea producătorul folosind limbajul de programare Python:

import boto3

import json

jurnal de import

logging.basicConfig(level = logging.INFO)

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

client = session.client('kinesis')

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

răspuns = client.put_record(

StreamName='DataProcessingStream',

Data=json.dumps({

„data_tag”: test_data['data_tag'],

„scor”: test_data['scor'],

„char”: test_data['char']

}),

PartitionKey='a01′

)

logging.info(„Introduceți scorul de date noi: %s”, test_data)

Pentru a extrage datele, aveți nevoie de un alt script pentru a asculta datele furnizate producătorilor. Pentru aceasta, puteți folosi ShardIterator pentru a obține acces la toate datele introduse în Kinesis. În acest fel, puteți accesa înregistrările în timp real și viitoare în Kinesis.

Crearea Consumatorului

Utilizați codul menționat mai jos pentru a crea un consumator Python:

import boto3

import json

import sys

jurnal de import

logging.basicConfig(level = logging.INFO)

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

client = session.client('kinesis')

aws_kinesis_stream = client.describe_stream(StreamName='DataProcessingStream)

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

stream_response = client.get_shard_iterator(

StreamName='DataProcessingStream',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

iterator = stream_response['ShardIterator']

în timp ce este adevărat:

încerca:

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

iterator = aws_kinesis_response['NextShardIterator']

pentru înregistrare în aws_kinesis_response['Records']:

dacă „Date” în înregistrare și len(record[„Date”]) > 0:

logging.info(„Scor de date noi primite: %s”, json.loads(record['Date']))

cu excepția KeyboardInterrupt:

sys.exit()

În exemplul de mai sus, imprimăm doar datele.

Probleme cu conductele Kinesis

Kinesis este cu adevărat benefic, dar nu vine fără provocări și neajunsuri. Una dintre provocările semnificative cu care te vei confrunta în timp ce lucrezi cu Kinesis poate fi numită „observabilitate”.

Pe măsură ce lucrați cu mai multe componente AWS, sistemul pe care îl creați va deveni din ce în ce mai complex. De exemplu, dacă utilizați funcțiile Lambda ca producător și consumator și le conectați la diferite sisteme de stocare AWS, va deveni foarte dificil să gestionați și să urmăriți dependențele și erorile.

Citiți articolele noastre populare legate de MBA

Salariu analist financiar – proaspăt și cu experiență Cele mai bune întrebări și răspunsuri la interviu pentru HR MBA Marketing Opțiuni de carieră în SUA
Cele mai bune opțiuni de carieră în SUA după MBA în resurse umane Top 7 opțiuni de carieră în vânzări Cele mai bine plătite locuri de muncă în finanțe din SUA: din medie până la cea mai mare
Top 7 Opțiuni de carieră în finanțe în SUA: Trebuie citit Top 5 tendințe de marketing în 2022 Salariu MBA în SUA în 2022 [Toate specializările]

In concluzie

Fără îndoială că transmiterea în flux a datelor și lucrul cu date în timp real este nevoia momentului și va crește doar pe măsură ce lumea noastră produce din ce în ce mai multe date. Deci, dacă sunteți interesat să stăpâniți trucurile Kinesis, un curs profesionist ar putea ajuta.

Masterul upGrad în învățare automată și inteligență artificială , oferit în colaborare cu IIIT-B și LJMU, este un curs cuprinzător de 18 luni conceput pentru a vă ajuta să începeți cu elementele de bază ale explorării datelor și să atingeți toate conceptele critice ale NLP, Deep. Învățare, învățare prin întărire și multe altele. În plus – poți să lucrezi la proiecte din industrie, asistență în carieră la 360 de grade, mentorat personalizat, oportunități de rețea între egali și multe altele pentru a te ajuta să stăpânești Machine Learning și AI.

1. Poate AWS Kinesis să extragă date?

Amazon Kinesis este o soluție de streaming de date scalabilă și durabilă în timp real, care funcționează prin captarea continuă de GB de date în timp real din mii de surse.

2. Un flux Kinesis poate avea mai mulți consumatori?

Da, folosind iteratoare de fragmente, puteți oferi mai mulți consumatori într-un singur flux Kinesis.

3. Cu ce ​​fel de coadă funcționează AWS Kinesis?

AWS Kinesis este FIFO - First In First Out - în operațiunile și procesele sale de date.