Was ist AWS Kinesis? Entwurfsmuster, Anwendungsfälle und Vergleich
Veröffentlicht: 2022-07-01Wir leben im Zeitalter anwendungsübergreifender Integrationen, sofortiger Benachrichtigungen und sofortiger Datenaktualisierungen. In einem solchen Szenario wird es wichtiger, Echtzeitsysteme zu erstellen, zu warten und zu modifizieren.
Im Laufe der Jahre wurden verschiedene nützliche Tools entwickelt, die beim Aufbau und der Wartung solcher plattformübergreifenden Systeme helfen. RabbitMQ, Kafka und AWS Kinesis sind drei solcher Tools, die Entwicklern und Ingenieuren dabei geholfen haben, nahtlos mit Echtzeitdaten zu arbeiten. Diese Systeme wurden alle unter Berücksichtigung unterschiedlicher Ziele erstellt und gepflegt. Daher kommen sie mit ihren unterschiedlichen Vorteilen und Einschränkungen, basierend auf der jeweiligen Aufgabe.
In diesem Artikel wird ausführlich über AWS Kinesis und seine Funktionsweise gesprochen.
Kinesis ist ein Streaming-Service, der auf AWS aufbaut. Es kann verwendet werden, um alle Arten von Daten zu verarbeiten – von Protokollen, IoT-Daten, Videodaten, im Grunde jedes Datenformat. Auf diese Weise können Sie verschiedene Machine-Learning-Modelle und -Prozesse in Echtzeit auf den Daten ausführen, während sie durch Ihr System fließen. Daher reduziert es den Aufwand beim Durchsuchen herkömmlicher Datenbanken und erhöht gleichzeitig die Gesamteffizienz.
Entdecken Sie unsere beliebten MBA-Kurse
Master of Business Administration von der Golden Gate University | Master of Business Administration (MBA) der Liverpool Business School | MBA der Deakin Business School |
MBA in Digital Marketing von der Dekin University | Executive MBA von SSBM | Alle MBA-Kurse anzeigen |
Das Pub/Sub-Entwurfsmuster
Bevor wir uns eingehender mit der genauen Verwendung von Kinesis befassen, ist es wichtig, etwas mehr über das verwendete Designmodell zu wissen. In diesem Fall sprechen wir vom Publisher- und Subscriber-Design, das oft als Pub/Sub-Designmuster bezeichnet wird. Dieses Entwurfsmuster wurde entwickelt, damit der Herausgeber – der Absender der Nachricht – Ereignisse in Kinesis – einen Ereignisbus – überträgt. Anschließend verteilt dieser Ereignisbus die Eingabedaten erfolgreich an alle Abonnenten.
Ein wichtiges Element, das hier zu beachten ist, ist, dass die Herausgeber im Grunde keine Ahnung haben, dass Abonnenten existieren. Das gesamte Messaging und der Messaging-Transport werden vollständig von AWS Kinesis verwaltet.
Anders ausgedrückt, das Pub/Sub-Entwurfsmuster wird für eine effiziente Kommunikation von Nachrichten verwendet, ohne ein stark gekoppeltes Design zu erstellen. Stattdessen konzentriert sich Kinesis darauf, unabhängige Komponenten zu verwenden und daraus einen verteilten Gesamtworkflow aufzubauen.
Im Wesentlichen ist AWS Kinesis ein leistungsstarkes Streaming-Tool, das deutliche Vorteile bietet, insbesondere im Vergleich zu anderen Echtzeit-Streaming-Tools. Einer dieser Vorteile besteht darin, dass es sich um einen Managed Service handelt, sodass sich Entwickler nicht um die Systemadministration kümmern müssen. Dadurch können sich Entwickler mehr auf ihren Code und ihre Systeme konzentrieren und weniger auf administrative Aufgaben.
Sehen wir uns nun einige Anwendungsfälle von Kinesis an.
Anwendungsfall von AWS Kinesis – Streaming von Daten
AWS Kinesis ist nützlich für große und kleine Unternehmen, die ihre Daten auf verschiedenen Plattformen verwalten und integrieren möchten. Kinesis ist in großen und kleinen Szenarien für Unternehmen von Vorteil, die ihre Daten plattformübergreifend verwalten und integrieren möchten.
Sehen wir uns zwei große Anwendungsfälle an, in denen Unternehmen AWS Kinesis für die nahtlose Verwaltung großer Mengen von Echtzeitdaten eingesetzt haben.
Netflix
Netflix verwendet AWS Kinesis, um täglich mehrere TB an Protokolldaten zu verarbeiten. Netflix benötigt eine zentralisierte Anwendung, die alle Daten in Echtzeit protokolliert. Mithilfe von Kinesis hat Netflix Dredge entwickelt, das Inhalte in Echtzeit mit Metadaten anreichert. Auf diese Weise werden die Daten sofort verarbeitet, wenn sie Kinesis durchlaufen. Dadurch entfällt ein langwieriger Schritt des Ladens von Daten in eine Datenbank zur späteren Verarbeitung.
Veritone
Veriton bietet KI- und maschinelle Lerndienste an. Es verwendet AWS Kinesis-Videostreams zur Verarbeitung von Kundendaten. Veriton wendet auch ML-Modelle und KI in Echtzeit auf die Inhalte an, um sie mit Metriken und Metadaten zu verbessern. Mithilfe dieser zusätzlichen Informationen erleichtert Veritone das Durchsuchen von Kinesis-Videostreams, indem es sich Audio, Gesichtserkennung, markierte Daten usw. ansieht.
Dies sind nur zwei der zahlreichen Beispiele dafür, wie Unternehmen heute AWS Kinesis nutzen, um effizienter mit Echtzeit-Streaming-Daten zu arbeiten.
Kommen wir zu den technischen Einzelheiten und wesentlichen Komponenten des AWS Kinesis-Streams.
Lernen Sie KI- und ML-Kurse von den besten Universitäten der Welt. Erwerben Sie Master-, Executive PGP- oder Advanced Certificate-Programme, um Ihre Karriere zu beschleunigen.
Streams gegen Firehose
AWS Kinesis bietet Entwicklern zwei Hauptprodukte – Kinetic Streams und Kinesis Firehose.
Um mit Kinesis Stream zu arbeiten, müssen Sie die Kinesis Producer Library verwenden. Damit können Sie alle Echtzeitdaten in Ihren Stream einfügen. Darüber hinaus können Sie diese Bibliothek mit fast jeder Anwendung oder jedem Prozess verbinden. Kinesis Streams ist jedoch kein zu 100 % verwalteter Dienst. Das Entwicklerteam muss es also bei Bedarf manuell skalieren. Außerdem bleiben die in den Stream eingespeisten Daten sieben Tage lang dort.
Kinesis Firehose ist etwas einfacher zu implementieren. Die in Kinesis Firehose eingespeisten Daten werden an Amazon Redshift, Amazon S3 und sogar Elasticsearch gesendet – alle mit der AWS Kinesis-Engine. Danach können Sie es gemäß Ihren Anforderungen verarbeiten. Wenn die Daten in Amazon S3 oder einem anderen AWS-Speichersystem gespeichert sind, können Sie sie dort so lange belassen, wie Sie möchten.
Einrichten eines Streams auf Kinesis
Bevor Sie mit dem Zugriff auf Kinesis beginnen, müssen Sie einen Stream einrichten, indem Sie auf die AWS CLI zugreifen. Geben Sie in der Befehlsshell den folgenden Befehl ein, um einen Stream namens DataProcessingStream zu erstellen
–stream-name DataProcessingStream \
–Shard-Anzahl 1 \
–region eu-west-1
Erstellen einer Streaming-Pipeline mit Python
Nachdem Sie einen Stream auf Kinesis eingerichtet haben, müssen Sie mit dem Erstellen des Producers und Consumers beginnen. Die Kernkomponenten von Kinesis unterstützen Sie beim Erstellen einer Zugriffsebene zur Integration anderer Systeme, Software und Anwendungen.
In diesem Tutorial arbeiten wir mit der Python-Bibliothek boto3, um eine Verbindung zu Kinesis herzustellen.
Erstellen des Produzenten
Verwenden Sie den unten genannten Code, um den Producer mit der Programmiersprache Python zu erstellen:
boto3 importieren
json importieren
Protokollierung importieren
Logging.basicConfig(Level = Logging.INFO)
session = boto3.Session(region_name='eu-west-1′)
client = session.client('kinesis')
test_data = {'data_tag': 'DataOne', 'score': '10', 'char': 'Database Warrior'}
Antwort = client.put_record(
StreamName='DataProcessingStream',
Data=json.dumps({
„Datentag“: test_data['Datentag'],
„Ergebnis“: test_data['Ergebnis'],
„Zeichen“: test_data['Zeichen']
}),
PartitionKey='a01'
)
Logging.info(“Neue Datenpunktzahl eingeben: %s”, test_data)
Um die Daten abzurufen, benötigen Sie ein weiteres Skript zum Abhören der Daten, die den Produzenten zugeführt werden. Dazu können Sie ShardIterator verwenden, um Zugriff auf alle Daten zu erhalten, die in Kinesis eingespeist werden. Auf diese Weise können Sie auf die Echtzeit- und zukünftigen Aufzeichnungen in Kinesis zugreifen.
Erstellen des Verbrauchers
Verwenden Sie den unten aufgeführten Code, um einen Python-Consumer zu erstellen:
boto3 importieren
json importieren
System importieren
Protokollierung importieren
Logging.basicConfig(Level = Logging.INFO)
session = 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']
während wahr:
Versuchen:
aws_kinesis_response = client.get_records (ShardIterator=Iterator, Limit=5)
iterator = aws_kinesis_response['NextShardIterator']
für Datensatz in aws_kinesis_response['Datensätze']:
if 'Data' in record and len(record['Data']) > 0:
Logging.info(“Neuen Datenstand erhalten: %s”, json.loads(record['Data']))
außer KeyboardInterrupt:
sys.exit()
Im obigen Beispiel drucken wir nur die Daten aus.
Probleme mit Kinesis-Pipelines
Kinesis ist wirklich nützlich, aber es kommt nicht ohne Herausforderungen und Mängel. Eine der größten Herausforderungen, denen Sie bei der Arbeit mit Kinesis gegenüberstehen, kann als „Beobachtbarkeit“ bezeichnet werden.
Wenn Sie mit mehreren AWS-Komponenten arbeiten, wird das von Ihnen erstellte System immer komplexer. Wenn Sie beispielsweise die Lambda-Funktionen als Producer und Consumer verwenden und diese mit verschiedenen AWS-Speichersystemen verbinden, wird es sehr schwierig, Abhängigkeiten und Fehler zu verwalten und nachzuverfolgen.
Lesen Sie unsere beliebten Artikel zum Thema MBA
Gehalt für Finanzanalysten – Frischlinge und Erfahrene | Top Interview Fragen und Antworten für HR | MBA Marketing Karrieremöglichkeiten in den USA |
Beste Karrieremöglichkeiten in den USA nach MBA im Personalwesen | Top 7 Karrieremöglichkeiten im Vertrieb | Bestbezahlte Finanzjobs in den USA: Durchschnittlich bis am höchsten |
Top 7 Karrieremöglichkeiten im Finanzwesen in den USA: Must Read | Top 5 Marketing-Trends im Jahr 2022 | MBA-Gehalt in den USA im Jahr 2022 [Alle Spezialisierungen] |
Abschließend
Es besteht kein Zweifel, dass das Streamen von Daten und das Arbeiten mit Echtzeitdaten das Gebot der Stunde ist und noch zunehmen wird, da unsere Welt immer mehr Daten produziert. Wenn Sie also daran interessiert sind, die Tricks von Kinesis zu beherrschen, könnte ein professioneller Kurs hilfreich sein.
Der Master of Science in Machine Learning and AI von upGrad, der in Zusammenarbeit mit IIIT-B und LJMU angeboten wird, ist ein 18-monatiger umfassender Kurs, der Ihnen helfen soll, mit den Grundlagen der Datenexploration zu beginnen und alle kritischen Konzepte von NLP, Deep, zu erreichen Lernen, Verstärkungslernen und mehr. Darüber hinaus können Sie an Branchenprojekten, 360-Grad-Karriereunterstützung, personalisierter Mentorenschaft, Möglichkeiten zum Peer-Networking und vielem mehr arbeiten, um maschinelles Lernen und KI zu meistern.
1. Kann AWS Kinesis Daten abrufen?
Amazon Kinesis ist eine skalierbare und dauerhafte Echtzeit-Daten-Streaming-Lösung, die kontinuierlich GBs an Daten in Echtzeit aus Tausenden von Quellen erfasst.
2. Kann ein Kinesis-Stream mehrere Verbraucher haben?
Ja, mit Shard-Iteratoren können Sie mehrere Verbraucher in einem Kinesis-Stream bereitstellen.
3. Mit welcher Art von Warteschlange arbeitet AWS Kinesis?
AWS Kinesis ist FIFO – First In First Out – in seinen Betriebs- und Datenprozessen.