Erste Schritte mit HAQM Kinesis Data Streams

Erste Schritte

HAQM Kinesis Data Streams ist ein extrem skalierbarer, äußerst robuster Datenerfassungs- und -verarbeitungsservice, der für Datenstreaming optimiert ist. Sie können Hunderttausende von Datenproduzenten so konfigurieren, dass sie kontinuierlich Daten in Ihren HAQM Kinesis-Daten-Stream einleiten. Daten stehen Ihren HAQM-Kinesis-Anwendungen innerhalb von Millisekunden zur Verfügung. Die Anwendungen erhalten die Datensätze in der Reihenfolge, in der sie generiert wurden.

HAQM Kinesis Data Streams ist in eine Reihe von AWS-Services integriert, darunter HAQM Kinesis Data Firehose zur Umwandlung von Streaming-Daten in nahezu Echtzeit und zur Bereitstellung von Streaming-Daten in einem AWS Data Lake wie HAQM S3, HAQM Managed Service für Apache Flink für verwaltete Stream-Verarbeitung, AWS Lambda zur Ereignis- oder Datensatzverarbeitung, AWS PrivateLink für eine private Konnektivität, HAQM Cloudwatch zur Verarbeitung von Metriken und Protokollen und AWS KMS zur serverseitigen Verschlüsselung.

HAQM Kinesis Data Streams wird als Gateway für eine Big-Data-Lösung verwendet. Daten aus verschiedenen Quellen werden in einen HAQM Kinesis-Stream eingeleitet und anschließend werden die Daten von verschiedenen HAQM Kinesis-Anwendungen aus dem Stream konsumiert. In diesem Beispiel führt eine Anwendung (gelb) ein Echtzeit-Dashboard mit den Streaming-Daten aus. Eine weitere Anwendung (rot) führt eine einfache Aggregation aus und übermittelt verarbeitete Daten an HAQM S3. Die Daten in S3 werden weiterverarbeitet und für komplexe Analysen in HAQM Redshift gespeichert. Die dritte Anwendung (grün) gibt Rohdaten in HAQM S3 aus, die dann zur kostengünstigeren Langzeitspeicherung in HAQM Glacier archiviert werden. Beachten Sie, dass diese drei Datenverarbeitungswege gleichzeitig und parallel ausgeführt werden.

Erste Schritte mit HAQM Kinesis Data Streams

Neuigkeiten bei HAQM Kinesis Data Streams

Fordern Sie Unterstützung für Ihre Machbarkeitsstudie und Bewertung an

Videos

Verwenden von Kinesis Data Streams

Nachdem Sie sich bei HAQM Web Services angemeldet haben, können Sie HAQM Kinesis Data Streams wie folgt verwenden:

  • Indem Sie einen HAQM Kinesis-Daten-Stream entweder über die HAQM Kinesis Management Console oder über die HAQM Kinesis-API CreateStream erstellen.
  • Indem Sie Ihre Datenproduzenten so konfigurieren, dass sie kontinuierlich Daten in Ihren HAQM Kinesis-Daten-Stream einleiten.
  • Indem Sie Ihre HAQM Kinesis-Anwendungen so aufbauen, dass sie Daten aus Ihrem HAQM Kinesis-Daten-Stream lesen und verarbeiten.

Wichtige Konzepte

Open all

Ein Datenproduzent ist eine Anwendung, die generierte Datensätze in der Regel in einen Kinesis-Daten-Stream ausgibt. Datenproduzenten weisen Datensätze Partitionsschlüssel zu. Partitionsschlüssel entscheiden letztlich, welcher Shard den Datensatz für einen Daten-Stream aufnimmt.

Ein Datenkonsument ist eine verteilte Kinesis-Anwendung oder ein AWS-Service, die bzw. der Daten aus allen Shards in einem Daten-Stream abruft, wenn dieser generiert wird. Die meisten Datenkonsumenten rufen die neuesten Daten in einem Shard ab und ermöglichen so eine Analyse oder eine Verarbeitung der Daten in Echtzeit.

Ein Daten-Stream ist eine logische Gruppierung von Shards. Es gibt keine Grenzen in Bezug auf die Anzahl der Shards innerhalb eines Daten-Streams (fordern Sie eine Limiterhöhung an, wenn Sie mehr benötigen). Ein Daten-Stream bewahrt Daten standardmäßig für 24 Stunden oder optional bis zu 365 Tage auf.

Ein Shard ist die Basiseinheit für den Durchsatz eines HAQM Kinesis-Daten-Stream.

  • Ein Shard ist ein "Append-only"-Protokoll und eine Einheit für die Streaming-Fähigkeit. Ein Shard enthält eine Folge von Datensätzen, die nach der Ankunftszeit geordnet sind.
  • Ein Shard kann bis zu 1 000 Datensätze pro Sekunde oder 1 MB/s aufnehmen. Fügen Sie weitere Shards hinzu, um die Aufnahmefähigkeit zu erhöhen.
  • Mit der AWS-Konsole, der UpdateShardCount API, durch Auslösen einer automatischen Skalierung über AWS Lambda oder mit einem Auto-Scaling-Dienstprogramm können Sie Shards dynamisch zu Ihrem Stream hinzufügen oder daraus entfernen, während sich der Datendurchsatz ändert.
  • Wenn Konsumenten ein erweitertes Fanout verwenden, stellt ein Shard für jeden Datenkonsumenten, der für ein erweitertes Fanout registriert ist, 1 MB/s für die Dateneingabe und 2 MB/s für die Datenausgabe bereit.
  • Wenn Konsumenten das erweiterte Fanout nicht nutzen, stellt ein Shard 1 MB/s für die Dateneingabe und 2 MB/s für die Datenausgabe bereit. Die Ausgabe wird von allen Konsumenten gemeinsam genutzt, die kein erweitertes Fanout verwenden.
  • Die Anzahl der erforderlichen Shards wird beim Erstellen eines Streams angegeben; die Menge lässt sich jederzeit ändern. Beispielsweise können Sie einen Stream mit zwei Shards einrichten. Wenn Sie 5 Datenkonsumenten haben, die das erweiterte Fanout nutzen, kann dieser Stream insgesamt bis zu 20 MB/s für die Datenausgabe bereitstellen (2 Shards x 2 MB/s x 5 Datenkonsumenten). Wenn die Datenkonsumenten das erweiterte Fanout nicht nutzen, hat dieser Stream einen Durchsatz von 2 MB/s für die Dateneingabe und 4 MB/s für die Datenausgabe. In jedem Fall erlaubt dieser Stream bis zu 2000 PUT-Datensätze pro Sekunde bzw. 2 MB/s für die Eingabe, je nachdem, welches Limit zuerst erreicht wird.
  • In HAQM Kinesis Data Streams können Sie Metriken auf Shard-Ebene überwachen.

Ein Datensatz ist die Dateneinheit, die in einem HAQM Kinesis-Stream gespeichert ist. Ein Datensatz besteht aus einer Sequenznummer, einem Partitionsschlüssel und einem Daten-Blob. Ein Daten-Blob sind die Daten von Interesse, die Ihr Datenproduzent einem Stream hinzufügt. Die maximale Größe eines Daten-Blobs (Nutzdaten nach der Base64-Decodierung) beträgt 1 MB.

Ein Partitionsschlüssel ist in der Regel eine aussagekräftige Kennung, wie z. B. eine Benutzer-ID oder ein Zeitstempel. Er wird von Ihrem Datenproduzenten festgelegt, während Daten in einen HAQM Kinesis-Daten-Stream eingeleitet werden. Er ist für Konsumenten nützlich, weil sie mit dem Partitionsschlüssel einen mit dem Partitionsschlüssel verbundenen Verlauf wiedergeben oder erstellen können. Der Partitionsschlüssel wird auch benutzt, um Datensätze zu trennen und an verschiedene Shards eines Streams zu routen. Angenommen, Sie haben einen HAQM Kinesis-Daten-Stream mit zwei Shards (Shard 1 und Shard 2). Nun können Sie Ihren Datenproduzenten so konfigurieren, dass er zwei Partitionsschlüssel verwendet (Schlüssel A und Schlüssel B), sodass alle Datensätze mit dem Schlüssel A zu Shard 1 und alle Datensätze mit Schlüssel B zu Shard 2 hinzugefügt werden.

Eine Sequenznummer ist eine eindeutige Kennung für jeden einzelnen Datensatz. Sequenznummern werden von HAQM Kinesis Data Streams zugewiesen, wenn ein Datenproduzent den API-Befehl PutRecord oder PutRecords aufruft, um einem HAQM Kinesis-Daten-Stream Daten hinzuzufügen. Sequenznummern für denselben Partitionsschlüssel steigen im Allgemeinen mit der Zeit. Je länger der Zeitraum zwischen PutRecord- oder PutRecords-Anforderungen, desto größer die Sequenznummer.

Daten in Streams einleiten

Open all

Datenproduzenten können Daten über HAQM Kinesis Data Streams-APIs, HAQM Kinesis Producer Library (KPL) oder HAQM Kinesis Agent in HAQM Kinesis-Daten-Streams einlesen.

Leiten Sie Beispieldaten in einen Kinesis-Daten-Stream oder ein Kinesis Data Firehose mit dem HAQM Kinesis Data Generator ein.

HAQM Kinesis Data Streams stellt zwei APIs bereit, um Daten in einen HAQM Kinesis-Daten-Stream einzulesen: PutRecord und PutRecords. Mit PutRecord ist ein einzelner Datensatz in einem API-Aufruf möglich. PutRecords lässt mehrere Datensätze in einem API-Aufruf zu.

Bei der HAQM Kinesis Producer Library (KPL) handelt es sich um eine bedienfreundliche und hochkonfigurierbare Bibliothek, mit der Sie Daten in den HAQM Kinesis-Datenstrom einleiten können. Die HAQM Kinesis Producer Library (KPL) ist eine einfache, asynchrone und verlässliche Oberfläche, mit der Sie unter Einsatz minimaler Client-Ressourcen schnell einen höheren Produzentendurchsatz erzielen.

HAQM Kinesis Agent ist eine fertige Java-Anwendung, die eine einfache Methode zur Erfassung von Daten und deren Einspielen in Ihren HAQM Kinesis-Stream ermöglicht. Sie können den Agenten in Serverumgebungen auf Linux-Basis, auf Protokollservern und Datenbankservern installieren. Der Agent überwacht bestimmte Dateien und sendet fortlaufend Daten in Ihren Datenstrom.

Anwendungen ausführen oder erstellen

Open all

Vollständig verwaltete Stream-Verarbeitungsanwendungen mit AWS-Services ausführen oder eigene Stream-Verarbeitungsanwendungen erstellen

HAQM Kinesis Data Firehose bietet die einfachste Methode zum zuverlässigen Umwandeln und Laden von Streaming-Daten in Datenspeicher und Analyse-Tools. Sie können einen Kinesis-Daten-Stream als Quelle für ein Kinesis Data Firehose nutzen.

Mit HAQM Managed Service für Apache Flink können Sie ganz einfach Streaming-Daten abfragen oder Streaming-Anwendungen mit Apache Flink erstellen, sodass Sie umsetzbare Erkenntnisse gewinnen und umgehend auf Ihre Geschäfts- und Kundenanforderungen reagieren können. Sie können einen Kinesis-Datenstream als Quelle und Ziel für eine Anwendung von HAQM Managed Service für Apache Flink verwenden.

Sie können Lambda-Funktionen abonnieren, um automatisch Datensätze aus Ihrem Kinesis-Daten-Stream zu lesen. AWS Lambda wird im Allgemeinen für die datensatzweise Stream-Verarbeitung (auch als ereignisbasierte Stream-Verarbeitung bezeichnet) genutzt.

Die HAQM Kinesis Client Library (KCL) ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie bequem HAQM Kinesis-Anwendungen zum Lesen und Verarbeiten von Daten aus einem HAQM Kinesis-Daten-Stream aufbauen können. Die KCL übernimmt automatisch komplexe Aufgaben wie die Anpassung an Änderungen beim Stream-Volumen, den Lastausgleich für Streaming-Daten, die Koordination verteilter Services und fehlertolerante Datenverarbeitung. Dank KCL können Sie sich beim Entwickeln von HAQM Kinesis-Anwendungen auf die Geschäftslogik konzentrieren. Ab KCL 2.0 können Sie eine HTTP/2-Streaming-API mit geringer Latenz und erweitertem Fanout nutzen, um Daten aus einem Stream abzurufen.

Die HAQM Kinesis Connector Library ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie HAQM Kinesis bequem in andere AWS-Services und Tools anderer Hersteller integrieren können. Die HAQM Kinesis Client Library (KCL) ist erforderlich, um die HAQM Kinesis Connector Library zu verwenden. Die aktuelle Version dieser Bibliothek bietet Konnektoren für HAQM DynamoDB, HAQM Redshift, HAQM S3 und HAQM Elasticsearch Service. Die Bibliothek umfasst auch Muster-Konnektoren für jeden Typ sowie Apache Ant-Build-Dateien zum Ausführen der Muster.

HAQM Kinesis Storm Spout ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie HAQM Kinesis Data Streams bequem in Apache Stormintegrieren können. Die aktuelle Version von HAQM Kinesis Storm Spout ruft Daten aus dem Kinesis-Daten-Stream ab und gibt diese als Tupel aus. Sie fügen Spout Ihrer Storm-Topologie hinzu, um HAQM Kinesis Data Streams als zuverlässigen, skalierbaren, Stream-Erfassungs-, Speicher- und Wiedergabeservice zu nutzen.

Streams verwalten

Open all

Sie können privat über Ihre HAQM Virtual Private Cloud (VPC) auf die Kinesis Data Streams-APIs zugreifen, indem Sie VPC-Endpunkte erstellen. Mit VPC-Endpunkten wird das Routing zwischen der VPC und Kinesis Data Streams durch das AWS-Netzwerk gesteuert, ohne dass ein Internet-Gateway, ein NAT-Gateway oder eine VPN-Verbindung erforderlich ist. Die neueste Generation der von Kinesis Data Streams verwendeten VPC-Endpunkte wird von AWS PrivateLink unterstützt. Diese Technologie ermöglicht die private Konnektivität zwischen AWS-Services, indem Elastic Network-Schnittstelle (ENI) mit privaten IP-Adressen in Ihren VPCs genutzt werden. Weitere Informationen zu PrivatLink erhalten Sie in der Dokumentation zu AWS PrivateLink.

Ein erweitertes Fan-out bietet Kunden die Möglichkeit, die Anzahl der Konsumenten zu skalieren, die parallel aus einem Stream lesen, während die Leistung erhalten bleibt. Sie können mit dem erweiterten Fanout und einer HTTP/2-Datenabruf-API Daten in der Regel innerhalb von 70 Millisekunden des Eintreffens auf mehrere Anwendungen auffächern.

Sie können die Daten, die Sie mit Kinesis Data Streams nutzen, auf dem Server oder auf dem Client verschlüsseln. Sie können serverseitige Verschlüsselung verwenden; dabei handelt es sich um eine voll-verwaltete Funktion, die Daten automatisch ver- und entschlüsselt, während Sie diese in den Daten-Stream einleiten oder herausholen. Alternativ können Sie Ihre Daten auf dem Client verschlüsseln, bevor Sie sie in den Daten-Stream einleiten. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der häufig gestellten Fragen zu Kinesis-Datenströmen.

Verwenden Sie einen Datenstrom als Quelle für ein Kinesis Data Firehose, um Ihre Daten umzuwandeln, während sie auf S3, Redshift, Elasticsearch und Splunk bereitgestellt werden. Schließen Sie eine Anwendung von HAQM Managed Service für Apache Flink an, um Streaming-Daten in Echtzeit mit Standard-SQL zu verarbeiten, ohne neue Programmiersprachen oder Verarbeitungs-Frameworks lernen zu müssen.

HAQM Kinesis Data Streams ist in HAQM CloudWatch integriert, sodass Sie CloudWatch-Metriken für Ihre HAQM Kinesis-Daten-Streams und die darin enthaltenen Shards problemlos sammeln, anzeigen und analysieren können. Weitere Informationen über HAQM Kinesis Data Streams-Metriken finden Sie unter Überwachen von HAQM Kinesis mit HAQM CloudWatch.

HAQM Kinesis Data Streams ist mit AWS Identity and Access Management (IAM) kombiniert, einem Service, mit dessen Hilfe Sie den Zugriff auf Ihre AWS-Services und Ressourcen für Ihre Benutzer sicher steuern können. Sie können zum Beispiel eine Richtlinie einrichten, der zufolge nur ein bestimmter Benutzer bzw. eine Gruppe Daten in den HAQM Kinesis-Daten-Stream einleiten kann. Weitere Informationen über Zugriffsverwaltung und -steuerung für Ihren HAQM Kinesis-Daten-Stream finden Sie unter Steuerung des Zugriffs auf HAQM Kinesis-Ressourcen mithilfe von IAM.

HAQM Kinesis Data Streams ist in AWS CloudTrail integriert. Dieser Service zeichnet Aufrufe von AWS-APIs für Ihr Konto auf und übermittelt Protokolldateien an Sie. Weitere Informationen über die Protokollierung von API-Aufrufen sowie eine Auflistung der unterstützten HAQM Kinesis-APIs finden Sie unter Protokollieren von HAQM Kinesis-API-Aufrufen mithilfe von AWS CloudTrail.

Sie können Ihre HAQM Kinesis-Daten-Streams mit Tags versehen, wodurch die Ressourcen- und Kostenverwaltung vereinfacht wird. Ein Tag ist ein benutzerdefiniertes Label in Form eines Schlüssel-Wert-Paares, mit dessen Hilfe Sie AWS-Ressourcen organisieren können. Sie können Ihre HAQM Kinesis-Daten-Streams zum Beispiel nach Kostenstellen mit Kategorien versehen, anhand derer Sie Ihre HAQM Kinesis Data Streams-Kosten kategorisieren und nachverfolgen können. Weitere Informationen finden Sie unter Verwenden von Tags für Ihre HAQM Kinesis-Daten-Streams.

Tutorials

Open all

In diesem Tutorial erfahren Sie, wie Sie einen HAQM Kinesis-Daten-Stream erstellen, simulierte Wertpapierdaten in den Daten-Stream senden und eine Anwendung zur Verarbeitung der Daten aus dem Daten-Stream schreiben.  

Vorgestellte Präsentationen

Open all

Vorgestellte Lösungen

Die AWS-Streaming-Daten-Lösung für HAQM Kinesis bietet AWS-CloudFormation-Vorlagen, in denen Daten durch Produzenten, Streaming-Speicher, Konsumenten und Ziele fließen. Um mehrere Anwendungsfälle und Geschäftsanforderungen zu unterstützen, bietet diese Lösung vier AWS-CloudFormation-Vorlagen. Die Vorlagen sind so konfiguriert, dass Best Practices zur Überwachung der Funktionalität mithilfe von Dashboards und Alarmen sowie zur Sicherung der Daten angewendet werden.