Allgemeines
Die interaktive Analyse ermöglicht die Untersuchung von Streaming-Daten in Echtzeit. Mit Ad-hoc-Abfragen oder -Programmen können Sie Streams von Amazon MSK oder Amazon Kinesis Data Streams untersuchen und visualisieren, wie die Daten innerhalb dieser Streams aussehen. Sie können z. B. anzeigen, wie sich eine Echtzeitmetrik verhält, die den Durchschnitt über ein Zeitfenster berechnet, und die aggregierten Daten an ein Ziel Ihrer Wahl senden. Die interaktive Analyse hilft auch bei der iterativen Entwicklung von Stream-Processing-Anwendungen. Die Abfragen, die Sie erstellen, werden kontinuierlich aktualisiert, wenn neue Daten eintreffen. Mit Kinesis Data Analytics Studio können Sie diese Abfragen zur kontinuierlichen Ausführung mit aktivierter Autoskalierung und dauerhaften Zustandssicherungen bereitstellen.
Die Verwendung von Apache Beam zur Erstellung Ihrer Kinesis Data Analytics Anwendung ist dem Einstieg mit Apache Flink sehr ähnlich. Bitte folgen Sie den Anweisungen in der obigen Frage und stellen Sie sicher, dass Sie alle Komponenten, die für die Ausführung von Anwendungen auf Apache Beam erforderlich sind, gemäß den Anweisungen im Entwicklerhandbuch installieren. Beachten Sie, dass Kinesis Data Analytics Java SDKs nur unterstützt, wenn sie auf Apache Beam laufen.
Sie können in der Amazon-Kinesis-Data-Analytics-Konsole beginnen und ein neues Studio-Notebook erstellen. Sobald Sie das Notebook gestartet haben, können Sie es in Apache Zeppelin öffnen, um sofort Code in SQL, Python oder Scala zu schreiben. Sie können über die Notebook-Schnittstelle interaktiv Anwendungen für Amazon Kinesis Data Streams, Amazon MSK und Amazon S3 mit eingebauten Integrationen sowie verschiedene andere Quellen mit benutzerdefinierten Konnektoren entwickeln. Sie können alle Operatoren verwenden, die Apache Flink in Flink SQL und der Tabellen-API unterstützt, um Ad-hoc-Abfragen von Datenströmen durchzuführen und Ihre Stream-Verarbeitungsanwendung zu entwickeln. Sobald Sie bereit sind, können Sie Ihren Code mit ein paar Klicks zu einer kontinuierlich laufenden Stream-Verarbeitungsanwendung mit Autoskalierung und dauerhaftem Zustand befördern.
Ja, unter Verwendung von Apache Flink DataStream Konnektoren kann Amazon Kinesis Data Analytics für Apache Flink Anwendungen AWS Glue Schema Registry, eine serverlose Funktion von AWS Glue, verwenden. Sie können Apache Kafka/Amazon MSK und Amazon Kinesis Data Streams als Senke oder Quelle in Ihre Amazon Kinesis Data Analytics für Apache Flink Workloads integrieren. Besuchen Sie die Benutzerdokumentation von Schema Registry für die ersten Schritte und weitere Informationen.
Wichtige Konzepte
Verwalten von Anwendungen
- Überwachen von Kinesis Data Analytics im Amazon-Kinesis-Data-Analytics-for-Apache-Flink-Entwicklerhandbuch.
- Überwachen von Kinesis Data Analytics im Amazon-Kinesis-Data-Analytics-for-Studio-Entwicklerhandbuch.
- Überwachen von Kinesis Data Analytics im Amazon-Kinesis-Data-Analytics-for-SQL-Entwicklerhandbuch.
- Erteilung von Berechtigungen im Amazon-Kinesis-Data-Analytics-for-Apache-Flink-Entwicklerhandbuch.
- Erteilung von Berechtigungen im Amazon-Kinesis-Data-Analytics-Studio-Entwicklerhandbuch.
- Erteilung von Berechtigungen im Amazon-Kinesis-Data-Analytics-for-SQL-Entwicklerhandbuch.
Preise und Abrechnung
Sie zahlen einen Stundenpreis auf der Basis der Anzahl von Amazon Kinesis Processing Units (oder KPUs), die zum Ausführen Ihrer Streaming-Anwendungen genutzt werden. Eine einzelne KPU ist eine Einheit für die Stream-Verarbeitungskapazität, die aus 1 vCPU für Datenverarbeitung und 4 GB Speicher besteht. Amazon Kinesis Data Analytics skaliert die Anzahl der von Ihrer Streamverarbeitungsanwendung geforderten KPUs automatisch, wenn sich die Speicher- und Verarbeitungsanforderungen als Reaktion auf die Verarbeitungskomplexität und den Streaming-Datendurchsatz ändern.
Für Apache Flink und Apache Beam Anwendungen wird Ihnen für die Orchestrierung der Anwendung eine einzige zusätzliche KPU pro Anwendung berechnet. Apache Flink und Apache Beam Anwendungen werden auch für das Ausführen von Anwendungsspeicher und dauerhafte Anwendungs-Backups berechnet. Die Ausführung von Anwendungsspeicher wird für zustandsbehaftete Verarbeitungskapazitäten in Amazon Kinesis Data Analytics verwendet und pro GB-Monat abgerechnet. Dauerhafte Anwendungssicherungen sind optional, werden pro GB und Monat berechnet und bieten eine zeitpunktbezogene Wiederherstellung für Anwendungen.
Für Amazon Kinesis Data Analytics Studio, im Entwicklungs- oder interaktiven Modus, wird Ihnen eine zusätzliche KPU für die Anwendungsorchestrierung und eine für die interaktive Entwicklung berechnet. Die Kosten für den laufenden Anwendungsspeicher werden Ihnen ebenfalls in Rechnung gestellt. Für dauerhafte Anwendungssicherungen werden Ihnen keine Gebühren berechnet.
Erstellen von Apache-Flink-Anwendungen
Erstellen von Anwendungscode für Anwendungen mit Apache Flink
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
- Streaming-Datenquellen: Amazon Managed Streaming für Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams Ziele oder Sinks: Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service und Amazon S3 (durch die Sink-Integrationen)
Apache Flink umfasst auch andere Konnektoren, darunter Apache Kafka, Apache Cassandra, Elasticsearch und mehr.
Ja. Sie können Kinesis Data Analytics for Apache Flink-Anwendungen verwenden, um Daten zwischen Amazon Kinesis Data Streams, Amazon MSK und anderen Systemen zu replizieren. Ein Beispiel aus unserer Dokumentation zeigt, wie ein Amazon MSK-Thema ausgelesen und ein anderes beschrieben wird.
Erstellen von Amazon-Kinesis-Data-Analytics-Studio-Anwendungen
F: Wie entwickle ich eine Studio-Anwendung?
Sie können von den Konsolen Amazon Kinesis Data Analytics Studio, Amazon Kinesis Data Streams oder Amazon MSK mit wenigen Klicks ein serverloses Notebook starten, um sofort Datenströme abzufragen und interaktive Datenanalysen durchzuführen.
Interaktive Datenanalyse: Sie können im Notebook Code in SQL, Python oder Scala schreiben, um mit Ihren Streaming-Daten zu interagieren, mit Abfrage-Reaktionszeiten in Sekunden. Sie können integrierte Visualisierungen verwenden, um die Daten zu erforschen und Echtzeit-Einblicke in Ihre Streaming-Daten von Ihrem Notebook aus zu erhalten, und Sie können einfach Stream-Verarbeitungsanwendungen entwickeln, die von Apache Flink unterstützt werden.
Sobald Ihr Code bereit ist, als Produktionsanwendung zu laufen, können Sie mit einem einzigen Klick zu einer Stream-Verarbeitungsanwendung übergehen, die GBs von Daten pro Sekunde verarbeitet, und zwar ohne Server.
Stream-Verarbeitungsanwendung: Sobald Sie bereit sind, Ihren Code in die Produktion zu überführen, können Sie durch Klicken Ihren Code erstellen. Sie können in der Notebook-Benutzeroberfläche auf „Deploy as stream processing application“ (Als Stream-Verarbeitungsanwendung bereitstellen) klicken oder einen einzigen Befehl in der Befehlszeilenschnittstelle (CLI) eingeben, und Studio kümmert sich um die gesamte Infrastrukturverwaltung, die erforderlich ist, damit Sie Ihre Stream-Verarbeitungsanwendung skaliert ausführen können, mit aktivierter Autoskalierung und dauerhaftem Zustand, genau wie in einer Amazon-Kinesis-Data-Analytics-for-Apache-Flink-Anwendung.
F: Wie sieht mein Anwendungscode aus?
Sie können im Notebook Code in Ihrer bevorzugten Sprache, SQL, Python oder Scala schreiben, indem Sie die Tabellen-API von Apache Flink verwenden. Die Tabellen-API ist eine relationale Abstraktions-API auf hoher Ebene, die eine Obermenge der SQL-Funktionen unterstützt. Sie bietet vertraute Operationen wie Select, Filter, Join, Gruppieren nach, Aggregieren usw., zusammen mit Stream-spezifischen Konzepten wie Windowing. Sie verwenden %<interpreter>, um die Sprache festzulegen, die in einem Abschnitt des Notebooks verwendet werden soll, und können leicht zwischen den Sprachen wechseln. Interpreter sind Apache-Zeppelin-Plug-ins, die es Entwicklern ermöglichen, eine Sprache oder eine Datenverarbeitungs-Engine für jeden Abschnitt des Notebook festzulegen. Sie können auch benutzerdefinierte Funktionen erstellen und diese referenzieren, um die Funktionalität des Codes zu verbessern.
F: Welche SQL-Operationen werden unterstützt?
Sie können SQL-Operationen wie Scannen und Filtern (SELECT, WHERE), Aggregationen (GROUP BY, GROUP BY WINDOW, HAVING), Setzen (UNION, UNIONALL, INTERSECT, IN, EXISTS), Ordnen (ORDER BY, LIMIT), Joins (INNER, OUTER, Timed Window -BETWEEN, AND, Joins mit temporären Tabellen – Tabellen, die Änderungen über die Zeit verfolgen), Top N, Deduplizierung und Mustererkennung durchführen. Einige dieser Abfragen wie GROUP BY, OUTER JOIN und Top N sind "ergebnisaktualisierend" für Streaming-Daten, was bedeutet, dass die Ergebnisse kontinuierlich aktualisiert werden, während die Streaming-Daten verarbeitet werden. Andere DDL-Anweisungen wie CREATE, ALTER und DROP werden ebenfalls unterstützt. Eine vollständige Liste der Abfragen und Beispiele finden Sie unter https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html.
F: Wie werden Python und Scala unterstützt?
Die Tabellen-API von Apache Flink unterstützt Python und Scala durch Sprachintegration mit Python-Strings und Scala-Ausdrücken. Die unterstützten Operationen sind den unterstützten SQL-Operationen sehr ähnlich, einschließlich Select, Order, Group, Join, Filter und Windowing. Eine vollständige Liste der Operationen und Beispiele finden Sie in unserer Dokumentation hier.
F: Welche Versionen von Apache Flink und Apache Zeppelin werden unterstützt?
Weitere Informationen über unterstützte Apache Flink-Versionen finden Sie auf der Seite Amazon Kinesis Data Analytics Release Notes. Diese Seite enthält auch die Versionen Apache Zeppelin, Apache Beam, Java, Python und AWS SDKs, die von Kinesis Data Analytics unterstützt werden.
F: Welche Integrationen werden in einer Kinesis-Data-Analytics-Studio-Anwendung standardmäßig unterstützt?
- Datenquellen: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams, Amazon S3
- Ziele, oder Sinks: Amazon MSK, Amazon Kinesis Data Streams und Amazon S3
F: Werden benutzerdefinierte Integrationen unterstützt?
Sie können zusätzliche Integrationen mit ein paar zusätzlichen Schritten und Zeilen Apache-Flink-Code (Python, Scala oder Java) konfigurieren, um Verbindungen mit allen von Apache Flink unterstützten Integrationen zu definieren, einschließlich Zielen wie Amazon OpenSearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces und mehr. Sie können ausführbare Dateien für diese benutzerdefinierten Anschlüsse anhängen, wenn Sie Ihre Studio-Anwendung erstellen oder konfigurieren.
F: Sollte ich mit Kinesis Data Analytics Studio oder Kinesis Data Analytics SQL entwickeln?
Wir empfehlen, mit Kinesis Data Analytics Studio zu beginnen, da es eine umfassendere Stream-Verarbeitung mit Exactly-once-Verarbeitung bietet. Kinesis Data Analytics Studio bietet die Entwicklung von Stream-Verarbeitungsanwendungen in der Sprache Ihrer Wahl (SQL, Python und Scala), skaliert auf GB/s der Verarbeitung, unterstützt lang laufende Berechnungen über Stunden oder sogar Tage, führt Code-Updates innerhalb von Sekunden durch, verarbeitet mehrere Eingabeströme und arbeitet mit einer Vielzahl von Eingabeströmen, einschließlich Amazon Kinesis Data Streams und Amazon MSK.
Amazon Kinesis-Data-Analytics-for-SQL-Anwendungen erstellen
Für neue Projekte empfehlen wir, das neue Kinesis Data Analytics Studio über Kinesis-Data-Analytics-for-SQL-Anwendungen zu verwenden. Kinesis Data Analytics Studio kombiniert Benutzerfreundlichkeit mit fortschrittlichen Analysefunktionen und ermöglicht es Ihnen, in wenigen Minuten anspruchsvolle Stream-Processing-Anwendungen zu erstellen.
Konfigurieren von Eingaben für SQL-Anwendungen
Erstellen von Anwendungscode für SQL-Anwendungen
- Verwenden Sie eine SELECT-Anweisung immer im Kontext mit einer INSERT-Anweisung. Wenn Sie Zeilen auswählen, fügen Sie Ergebnisse in einen anderen In-Application-Stream ein.
- Verwenden Sie eine INSERT-Anweisung im Kontext mit einem Pump.
- Sie verwenden einen Pump, um eine INSERT-Anweisung kontinuierlich zu machen und schreiben in einen In-Application-Stream.
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol VARCHAR(4),
change DOUBLE,
price DOUBLE);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM ticker_symbol, change, price
FROM "SOURCE_SQL_STREAM_001";
Konfigurieren von Zielen in SQL-Anwendungen
Vergleich mit anderen Lösungen für die Stream-Verarbeitung
Service Level Agreement
F: Was bietet mir die Amazon Kinesis Data Analytics-SLA-Garantie?
Unser Amazon-Kinesis-Data-Analytics-SLA garantiert eine monatliche Verfügbarkeit von mindestens 99,9 % für Amazon Kinesis Data Analytics.
F: Wie erfahre ich, ob ich für eine Gutschrift aus dem SLA qualifiziert bin?
Sie sind für eine SLA-Gutschrift für Amazon Kinesis Data Analytics im Rahmen des Amazon-Kinesis-Data-Analytics-SLA anspruchsberechtigt, wenn mehr als eine Availability Zone, in der Sie eine Aufgabe ausführen, innerhalb derselben Region während eines beliebigen monatlichen Abrechnungszyklus eine monatliche Verfügbarkeit von weniger als 99,9 % aufweist. Ausführliche Informationen zu allen Bestimmungen des SLA sowie Einzelheiten zur Geltendmachung eines Anspruchs finden Sie auf der Amazon Kinesis-SLA-Detailseite.
Erste Schritte mit Amazon Kinesis Data Analytics

Weitere Informationen zur Verwendung von Amazon Kinesis Data Analytics finden Sie in dieser Schritt-für-Schritt-Anleitung für SQL bzw. Apache Flink.

Erstellen Sie Ihre erste Streaming-Anwendung mit der Amazon Kinesis Data Analytics-Konsole.