Allgemeines

F: Was ist Amazon Kinesis Data Analytics?
Amazon Kinesis Data Analytics ist die einfachste Möglichkeit, Streaming-Daten in Echtzeit mit Apache Flink zu bearbeiten und zu analysieren. Apache Flink ist ein Open-Source-Framework und eine entsprechende Engine zum Verarbeiten von Datenströme. Kinesis Data Analytics reduziert die Komplexität, Apache Flink-Anwendungen mit anderen AWS-Services zu erstellen, zu verwalten und zu integrieren.
 
Kinesis Data Analytics führt alles Erforderliche durch, damit Streaming-Anwendungen durchgehend ausgeführt werden können. Außerdem passt es sich automatisch an den Umfang und den Durchsatz Ihrer eingehenden Daten an. Mit Kinesis Data Analytics gibt es keine Server zu verwalten, keine Mindestgebühr oder Einrichtungskosten und Sie zahlen nur für die Ressourcen, die Ihre Streaming-Anwendungen benötigen.
 
F: Was ist die Stream-Verarbeitung in Echtzeit und wofür wird sie benötigt?
Aufgrund der explosionsartigen Zunahme von Echtzeit-Datenquellen nehmen Unternehmen Daten schneller als je zuvor auf. Ganz gleich, ob Sie Protokolldaten von Mobil- und Webanwendungen, Kaufdaten von E-Commerce-Plattformen oder Sensordaten von IoT-Geräten verarbeiten – durch die Aufnahme von Daten in Echtzeit hilft Ihnen zu erfahren, was Ihre Kunden, Ihr Unternehmen und Ihr Geschäft in diesem Moment tun.
 
F: Was kann ich mit Kinesis Data Analytics tun?
Sie können Kinesis Data Analytics für viele Verwendugnsfälle nutzen, um Daten kontinuierlich zu verarbeiten und Einsichten in Sekunden oder Minuten zu erhalten, statt Tage oder sogar Wochen zu warten. Kinesis Data Analytics versetzt Sie in die Lage, schnell Ende-zu-Ende-Anwendungen für die Stream-Verarbeitung in den Bereichen Protokollanalyse, Clickstream-Analyse, Internet of Things (IoT), Ad Tech, Gaming und mehr zu erstellen. Die vier häufigsten Anwendungsfälle sind das Streaming von Extract-Transform-Load (ETL), kontinuierliche Metrikgenerierung, reaktionsschnelle Echtzeit-Analysen und interaktive Abfragen von Datenströmen.
 
Streaming von ETL
Das Streaming von ETL-Anwendungen ermöglicht Ihnen Raw Data zu säubern, anzureichern, zu organisieren und zu transformieren, vor dem Laden Ihres Datensees oder Datenwarenhauses in Echtzeit, und dabei Stapel-ETL-Schritte zu reduzieren oder eliminieren. Diese Anwendungen können kleine Datensätze in größere Dateien vor der Lieferung buffern, und komplexe Verbindungen über Streams und Tabellen hinweg durchführen. Zum Beispiel können Sie eine Anwendung erstellen, die kontinuierlich IoT-Sensorendaten liest, die in Amazon Managed Streaming for Apache Kafka (Amazon MSK) gespeichert sind, die Daten nach Sensortyp organisieren, Duplikate entfernen, Daten nach einem spezifischen Schema zu normalisieren und dann die Daten auf Amazon Simple Storage Service (Amazon S3) zu liefern.
 
Kontinuierliche Erstellung von Metriken
Die kontinuierliche Erstellung von Metriken versetzt Sie in die Lage, zu überwachen und zu verstehen, wie sich die Trends Ihrer Daten im Zeitverlauf entwickeln. Ihre Anwendungen können Streaming-Daten in kritische Informationen zusammenfassen und sich nahtlos mit Datenbanken und Überwachungsservices zur Berichterstattung integrieren, um Ihren Anwendungen und Nutzern in Echtzeit zu dienen. Mit Kinesis Data Analytics können Sie Apache-Flink-Code oder SQL verwenden, um kontinuierlich Zeitreihenanalysen über Zeitfenster hinweg zu erstellen. Sie können beispielsweise ein Live-Leaderboard für ein Mobil-Computerspiel erstellen, indem Sie jede Minute die besten Spieler berechnen und das Ergebnis an Amazon DynamoDB senden. Sie können den Datenverkehr zu Ihrer Website verfolgen, indem Sie die Zahl der eindeutigen Website-Besucher alle 5 Minuten berechnen und die verarbeiteten Ergebnisse dann an Amazon Redshift senden.
 
Zugängliche Echtzeitanalysen
Zugängliche Echtzeitanalysen-Anwendungen senden Alarme oder Benachrichtigungen in Echtzeit, wenn bestimmte Metriken vordefinierte Schwellenwerte erreichen oder Ihre Anwendung mithilfe von Algorithen für ML-Anomalien entdeckt. Diese Anwendungen ermöglichen Ihnen sofort auf Veränderungen in Ihrem Geschäft in Echtzeit zu reagieren, wie Nutzer-Abandonnierung für mobile Apps vorherzusagen und abbauende System zu identifizieren. Eine Anwendung könnte zum Beispiel die Verfügbarkeit oder die Erfolgsquote einer kundenseitigen API im Zeitverlauf berechnen und dann die Ergebnisse an Amazon CloudWatch senden. Sie könnten eine weitere Anwendung erstellen, die nach Ereignissen sucht, die bestimmte Kriterien erfüllen, und dann mithilfe von Amazon Kinesis Data Streams und Amazon Simple Notification Service (SNS) automatisch die richtigen Kunden benachrichtigt.
 
Interaktive Analyse von Datenströmen
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.
 
F: Welches sind die ersten Schritte bei einem Einstieg in Apache Flink-Anwendungen für Kinesis Data Analytics?
Melden Sie sich bei der Amazon-Kinesis-Data-Analytics-Konsole an und erstellen Sie eine neue Anwendung für die Stream-Verarbeitung. Sie können auch die AWS CLI und die AWS SDKs verwenden. Sobald Sie eine Anwendung erstellt haben, gehen Sie zu Ihrer bevorzugten integrierten Entwicklungsumgebung, verbinden Sie sich mit AWS und installieren Sie die Open Source Apache Flink-Bibliotheken und AWS SDKs in der Sprache Ihrer Wahl. Apache Flink ist ein Open-Source-Framework und -Engine zur Verarbeitung von Datenströme und AWS SDKs. Die erweiterbaren Bibliotheken enthalten über 25 vorgefertigte Operatoren zur Stream-Verarbeitung wie „window“ und „aggregate“ sowie AWS-Service-Integrationen wie Amazon MSK, Amazon Kinesis Data Streams und Amazon Kinesis Data Firehose. Nach der Entwicklung laden Sie Ihren Code zu Amazon Kinesis Data Analytics hoch und die Services führen alles Erforderliche durch, damit Ihre Echtzeit-Anwendungen durchgehend ausgeführt werden können. Außerdem skaliert es automatisch mit dem Umfang und dem Durchsatz Ihrer eingehenden Daten.
 
F: Welches sind die ersten Schritte bei einem Einstieg in Apache-Beam-Anwendungen für Kinesis Data Analytics?
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.
 
F: Wie kann ich mit Amazon Kinesis Data Analytics Studio beginnen?
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.
 
F: Welches sind die ersten Schritte bei einem Einstieg in Kinesis Data Analytics for SQL?
Melden Sie sich bei der Amazon-Kinesis-Data-Analytics-Konsole an und erstellen Sie eine neue Anwendung für die Stream-Verarbeitung. Sie können auch die AWS CLI und die AWS SDKs verwenden. Sie können eine Ende-zu-Ende-Anwendung mit drei einfachen Schritten erstellen: 1. Eingehenden Daten-Stream konfigurieren, 2. SQL-Abfragen schreiben, 3. Festlegen, wohin die Ergebnisse geliefert werden sollen. Kinesis Data Analytics erkennt Standard-Datenformate wie JSON, CSV und TSV und erstellt automatisch ein Basisschema. Sie können dieses Schema verfeinern. Wenn Ihre Daten nicht strukturiert sind, können Sie mit unserem intuitiven Schema-Editor ein neues Schema definieren. Der Service wendet das Schema dann auf den Eingabe-Stream an und gibt ihm die Form einer SQL-Tabelle, die kontinuierlich aktualisiert wird, sodass Sie mit Standard-SQL-Abfragen arbeiten können. Zum Erstellen Ihrer Abfragen verwenden Sie unseren SQL-Editor.
 
Der SQL-Editor enthält alle wichtigen Funktionen einschließlich Syntaxprüfung und Test mit Live-Daten. Weiterhin stellen wir Ihnen Vorlagen mit SQL-Code bereit, die Sie für alles von einem einfachen Stream-Filter bis hin zu komplexen Anomalieentdeckungen und top-K-Analysen verwenden können. Kinesis Data Analytics übernimmt die Bereitstellung und die elastische Skalierung der gesamten Infrastruktur für die Verarbeitung eines beliebigen Datendurchsatzes. Sie brauchen keine Infrastruktur zu planen, bereitzustellen oder zu verwalten.
 
F: Welche Einschränkungen gelten für Kinesis Data Analytics?
Kinesis Data Analytics skaliert Ihre Anwendung elastisch, um sie an den Datendurchsatz Ihres Quell-Streams und die Komplexität Ihrer Abfrage für die meisten Szenarien anzupassen. Sie finden ausführliche Informationen zu den Service Limits unter Limits in dem Amazon Kinesis Data Analytics for SQL Developer Handbuch. Sie finden ausführliche Informationen zu den Service Limits für Apache Flink-Anwendungen im Amazon Kinesis Data Analytics for Apache Flink Developer Handbuch im Abschnitt „Limits“.
 
F: Unterstützt Amazon Kinesis Data Analytics die Schemaregistrierung?
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

F: Was ist eine Kinesis Data Analytics-Anwendung?
Eine Anwendung ist die Kinesis Data Analytics-Entität, mit der Sie arbeiten. Kinesis-Data-Analytics-Anwendungen lesen und verarbeiten kontinuierlich Streaming-Daten in Echtzeit. Sie schreiben Anwendungscode in einer von Apache Flink unterstützten Sprache, um die eingehenden Streaming-Daten zu verarbeiten und die Ausgabe zu produzieren. Kinesis Data Analytics liefert dann die Ausgabe an ein konfiguriertes Ziel.
 
Jede Anwendung besteht aus drei Primärkomponenten:
 
Eingabedaten – die Streaming-Quelle für Ihre Anwendung. In der Eingabekonfiguration ordnen Sie die Streaming-Quelle einem In-Application-Datenstrom zu. Daten fließen von Ihren Datenquellen in Ihre In-Application-Daten-Streams. Sie verarbeiten Daten von diesen In-Application-Daten-Streams mit Ihrem Anwendungscode, der verarbeitete Daten zu weitergehenden In-Application-Daten-Streams oder Zielen sendet. Sie fügen Eingaben innerhalb des Anwendungscodes für Apache-Flink-Anwendungen und Studio-Notebooks sowie über die API für Kinesis-Data-Analytics-for-SQL-Anwendungen hinzu.
 
Anwendungscode – Eine Reihe von Apache-Flink-Operatoren oder SQL-Anweisungen, die Eingabedaten verarbeiten und Ausgabedaten erzeugen. In seiner einfachsten Form kann Anwendungscode ein einzelner Apache-Flink-Operator oder eine SQL-Anweisung sein, die von einem In-Application-Datenstrom mit einer Streaming-Quelle liest und zu einem In-Application-Daten-Stream mit einer Ausgabe schreibt. Für ein Studio-Notebook könnte dies eine einfache Flink-SQL-Select-Abfrage sein, wobei die Ergebnisse im Kontext innerhalb des Notebooks angezeigt werden. Sie können Apache-Flink-Code in den unterstützten Sprachen für Kinesis Data Analytics für Apache-Flink-Anwendungen oder Studio-Notebooks schreiben oder in SQL-Code, der den ursprünglichen anwendungsinternen Datenstrom in mehrere Ströme aufteilt und zusätzliche Logik auf diese separaten Ströme für Kinesis-Data-Analytics-for-SQL-Anwendungen anwendet.
 
Ausgabedaten – Sie können einen oder mehrere In-Application-Streams erstellen, in denen Zwischenergebnisse gespeichert werden. Falls erforderlich, können Sie dann eine Ausgabeanwendung so konfigurieren, dass Daten von bestimmten In-Application-Streams an ein externes Ziel geleitet werden. Sie fügen diese Ausgaben innerhalb des Anwendungscodes für Apache-Flink-Anwendungen und Studio-Notebooks sowie für Kinesis-Data-Analytics-for-SQL-Anwendungen hinzu.
 
F: Was ist ein In-Application-Daten-Stream?
Ein In-Application-Daten-Stream ist eine Entität, die kontinuierlich Daten in Ihrer Anwendung zur Verarbeitung speichert. Ihre Anwendungen führen kontinuierlich Schreib- und Lesezugriffe auf Ihre In-Application-Datenströme durch. Bei Apache-Flink- und Studio-Anwendungen interagieren Sie mit In-Application-Datenströme, indem Sie Daten mit Stream-Operatoren verarbeiten. Operatoren transformieren einen oder mehrere Daten-Streams in einen neuen Daten-Stream. Für SQL-Anwendungen interagieren Sie mit einem In-Application-Stream, wie Sie es auch mit SQL-Anweisungen für eine SQL-Tabelle tun. Sie wenden SQL-Anweisungen auf einen oder mehrere Daten-Streams an und geben die Ergebnisse in einen neuen Daten-Stream ein.
 
F: Welcher Anwendungscode wird unterstützt?
Kinesis Data Analytics unterstützt Anwendungen, die mit Java, Scala und Python erstellt wurden, mit den Open-Source-Apache-Flink-Bibliotheken und Ihrem eigenen benutzerdefinierten Code. Kinesis Data Analytics unterstützt auch Anwendungen, die mit Java mit den Open-Source-Apache-Beam-Bibliotheken und Ihrem eigenen Kundencode erstellt wurden. Kinesis Data Analytics Studio unterstützt Code, der mit Apache Flink-kompatiblem SQL, Python und Scala erstellt wurde.

Verwalten von Anwendungen

F: Wie überwache ich Betrieb und Leistung meiner Kinesis Data Analytics-Anwendung?
AWS stellt verschiedene Tools zur Verfügung, mit denen Sie Ihre Kinesis Data Analytics-Anwendungen überwachen können, einschließlich des Zugriffs auf das Flink Dashboard für Apache Flink-Anwendungen. Sie können einige dieser Tools für die Überwachung ignorieren. Weitere Informationen, über wie Sie Ihre Anwendung überwachen, finden Sie unter:

F: Wie kann ich den Zugriff auf meine Kinesis Data Analytics-Anwendungen verwalten und steuern?
Kinesis Data Analytics benötigt Berechtigungen, um Datensätze aus den Streaming-Datenquellen zu lesen, die Sie in Ihrer Anwendung festlegen. Weiterhin benötigt Kinesis Data Analytics Berechtigungen, um die Ausgabedaten Ihrer Anwendung zu Zielen zu übertragen, die Sie in der Ausgabekonfiguration ihrer Anwendung festlegen. Sie können diese Berechtigungen erteilen, indem Sie IAM-Rollen (AWS Identity and Access Management) erstellen, die Kinesis Data Analytics annehmen kann. Die Berechtigungen, die Sie einer solchen Rolle erteilen, bestimmen, was Kinesis Data Analytics tun kann, wenn der Service die Rolle annimmt. Weitere Informationen finden Sie unter:

F: Wie skaliert Kinesis Data Analytics meine Anwendung?
Kinesis Data Analytics skaliert Ihre Anwendung elastisch, um sie an den Datendurchsatz Ihres Quell-Streams und die Komplexität Ihrer Abfrage für die meisten Szenarien anzupassen. Kinesis Data Analytics stellt Kapazität in Form von Amazon Kinesis Processing Units (KPU) zur Verfügung. Ein KPU bietet Ihnen 1 vCPU und 4 GB Arbeitsspeicher.
 
Für Apache-Flink-Anwendungen und Studio-Notebooks weist Kinesis Data Analytics 50 GB an laufendem Anwendungsspeicher pro KPU zu, die Ihre Anwendung für Checkpoints nutzt, und die für Sie über eine temporäre Disk verfügbar ist. Ein Checkpoint ist eine aktuelle Sicherung Ihrer laufenden Anwendung, die verwendet wird, um sofort eine Anwendungsstörung zu beheben. Sie können auch die parallele Ausführung Ihrer Anwendungsaufgaben von Kinesis Data Analytics for Apache Flink steuern (so wie das Lesen von einer Quelle oder das Ausführen eines Operators) mithilfe der Parameter Parallelism und ParallelismPerKPU in der API. Parallelism definiert die Anzahl an gleichzeitigen Instances einer Aufgabe. Alle Operatoren, Quellen und Sinks werden mit einem definierten Parallelism ausgeführt, standardmäßig auf 1. Parallelism per KPU definiert die Anzahl von parallelen Aufgaben, die pro Kinesis Processing Unit (KPU) Ihrer Anwendung geplant werden können, standardmäßig auf 1. Weitere Informationen zum Skalieren finden Sie im Amazon Kinesis Data Analytics for Apache Flink Developer Handbuch.
 
Für SQL-Anwendungen wird jede Streaming-Quelle einem zugehörigen In-Application-Stream zugeordnet. Auch wenn dies bei vielen Kunden nicht erforderlich ist, können Sie KPUs effizienter nutzen, indem Sie die Anzahl der In-Application-Streams erhöhen, denen Ihre Quelle zugeordnet ist. Dazu verwenden Sie den Parameter für die Parallelität. Kinesis Data Analytics weist die Partitionen der Streaming-Datenquellen wie beispielsweise Shards von Amazon Kinesis-Datenströmen gleichmäßig verteilt an die Anzahl der spezifizierten In-Application-Datenströme zu. Wenn Sie zum Beispiel einen Amazon Kinesis-Datenstrom mit 10 Shards als Streaming-Datenquelle haben und eine Eingabeparallelität von zwei festlegen, ordnet Kinesis Data Analytics je fünf Amazon Kinesis-Shards den zwei In-Application-Datenströmen "SOURCE_SQL_STREAM_001" und "SOURCE_SQL_STREAM_002" zu. Weitere Informationen finden Sie unter Anwendungseingaben konfigurieren im Amazon Kinesis Data Analytics for SQL Developer Handbuch.
 
F: Welche bewährten Methoden gibt es zum Erstellen und Verwalten meiner Kinesis Data Analytics-Anwendungen?
Informationen zu bewährten Methoden für Apache Flink finden Sie im Abschnitt Bewährte Methoden im Amazon Kinesis Data Analytics for Apache-Flink-Entwicklerhandbuch. Der Abschnitt behandelt bewährte Methoden für Fehlertoleranz, Leistung, Protokollierung, Codierung und mehr.
 
Informationen zu Best Practices für Amazon Kinesis Data Analytics Studio finden Sie im Abschnitt Best Practices des Amazon-Kinesis-Data-Analytics-Studio-Entwicklerhandbuch. Der Abschnitt behandelt bewährte Methoden und Beispiele für SQL-, Python- und Scala-Anwendungen, Anforderungen für den Einsatz Ihres Codes als kontinuierlich laufende Stream-Verarbeitungsanwendung, Leistung, Protokollierung und mehr.
 
Informationen zu Best Practices für SQL finden Sie im Abschnitt Bewährte Methoden im Amazon-Kinesis-Data-Analytics-for-SQL-Entwicklerhandbuch. Der Abschnitt behandelt das Verwalten von Anwendungen, das Definieren von Eingabeschemas, das Herstellen einer Verbindung mit Ausgaben und das Erstellen von Anwendungscode.
 
F: Kann ich mit einer Kinesis Data Analytics for Apache Flink-Anwendung auf Ressourcen hinter einer Amazon VPC zugreifen?
Ja. Sie können auf Ressourcen hinter einer Amazon VPC zugreifen. Im Abschnitt Verwenden einer Amazon VPC im Amazon Kinesis Data Analytics Developer Guide erfahren Sie, wie Sie Ihre Anwendung für den VPC-Zugriff konfigurieren.
 
F: Kann eine einzelne Kinesis Data Analytics for Apache Flink-Anwendung Zugriff auf mehrere VPCs haben?
Nein. Sind mehrere Subnetze angegeben, müssen sich diese alle in derselben VPC befinden. Sie können mittels Peering eine Verbindung zu anderen VPCs herstellen.
 
F: Kann eine Kinesis-Data-Analytics-for-Apache-Flink-Anwendung, die mit einer VPC verbunden ist, auch auf das Internet und AWS-Service-Endpunkte zugreifen?
Kinesis-Data-Analytics-for-Apache-Flink-Anwendungen und Kinesis-Data-Analytics-Studio-Notebooks, die für den Zugriff auf Ressourcen in einer bestimmten VPC konfiguriert wurden, haben standardmäßig keinen Zugriff auf das Internet. Im Abschnitt Internet- und Servicezugriff im Amazon-Kinesis-Data-Analytics-Entwicklerhandbuch erfahren Sie, wie Sie Zugriff auf das Internet für Ihre Anwendung konfigurieren.

Preise und Abrechnung

F: Wie viel kostet Kinesis Data Analytics?
Sie zahlen bei Amazon Kinesis Data Analytics nur für die tatsächliche Nutzung. Mit Amazon Kinesis Data Analytics müssen Sie weder Ressourcen bereitstellen noch Vorab-Kosten zahlen.

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.
 
Weitere Informationen über die Preise finden Sie in der Preisübersicht zu Amazon Kinesis Data Analytics.
 
F: Ist Kinesis Data Analytics über das kostenlose Nutzungskontingent für AWS verfügbar?
Nein. Kinesis Data Analytics fällt derzeit nicht unter das kostenlose Nutzungskontingent für AWS. Das kostenlose Kontingent für AWS ist ein Programm, das einen kostenlosen Test bestimmter AWS-Services bietet.
 
F: Wird mir eine Kinesis-Data-Analytics-Anwendung in Rechnung gestellt, die zwar ausgeführt wird, aber keine Daten von der Quelle verarbeitet?
 
Für Apache-Flink- und Apache-Beam-Anwendungen werden Ihnen mindestens zwei KPUs und 50 GB laufender Anwendungsspeicher berechnet, wenn Ihre Kinesis-Data-Analytics-Anwendung läuft.
 
Für Kinesis-Data-Analytics-Studio-Notebooks werden mindestens drei KPUs und 50 GB laufender Anwendungsspeicher berechnet, wenn Ihre Anwendung ausgeführt wird.
 
Wenn Ihre Kinesis-Data-Analytics-Anwendung ausgeführt wird, wird Ihnen für SQL-Anwendungen mindestens eine KPU in Rechnung gestellt.
 
F: Können außer den Kosten für Kinesis Data Analytics noch andere Kosten anfallen?
Kinesis Data Analytics ist eine vollständig verwaltete Lösung für die Stream-Verarbeitung, unabhängig von der Streaming-Quelle, von der Daten gelesen werden, und den Zielen, auf die Daten geschrieben werden. Sie erhalten unabhängige Rechnungen jeweils für die Services von den Sie lesen und auf die Sie in Ihrer Anwendung schreiben.
F: Was ist Apache Flink?
Apache Flink ist ein Open-Source-Framework und Engine für Streaming und Batch-Datenverarbeitung. Es ermöglicht einfaches Erstellen von Streaming-Anwendungen, das es leistungsstarke Operatoren bietet und die Kernprobleme des Streaming, wie doppelte Verarbeitung, sehr gut löst. Apache Flink bietet Datendistribution, Kommunikation und Fehlertoleranz für verteilte Berechnungen über Daten-Streams.
 
F: Wie entwickle ich Anwendungen?
Sie können damit beginnen, die Open-Source-Bibliotheken herunterzuladen, zu denen AWS SDK, Apache Flink und Konnektoren für AWS-Services zählen. Erhalten Sie Anweisungen, wie Sie die Bibliotheken herunterladen und Ihre erste Anwendung erstellen, im Entwicklerleitfaden Amazon Kinesis Data Analytics for Apache Flink.
 
F: Wie sieht mein Anwendungscode aus?
Sie schreiben Ihren Apache Flink-Code mit Daten-Streams und Stream-Operatoren. Anwendungs-Daten-Streams sind die Datenstruktur, die Sie in Ihrem Code verarbeiten. Die Daten fließen kontinuierlich von den Quellen in die Anwendungs-Datenströme. Ein oder mehrere Stream-Operatoren werden verwendet, um Ihre Verarbeitung des Anwendungs-Datenströme zu definieren, einschließlich transform, partition, aggregate, join und window. Datenströme und Operatoren können in seriellen und parallelen Ketten zusammengefügt werden. Ein kurzes Beispiel mit Pseudo-Code wird unten angezeigt.
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"));
F: Wie verwende ich die Operatoren?
Operatoren nehmen einen Anwendungs-Datenstrom als Eingabe und senden verarbeitete Daten als Ausgabe zu einem Anwendungs-Daten-Stream. Operatoren können zusammengefügt werden, um Anwendungen mit mehreren Schritten zu erstellen und kein fortgeschrittenes Wissen von verteilten Systemen voraussetzen, um diese zu implementieren und zu betreiben.
 
F: Welche Operatoren werden unterstützt?
Kinesis Data Analytics for Apache Flink beinhaltet über 25 Operatoren von Apache Flink, die eine Reihe von Nutzerfällen lösen können, einschließlich Map, KeyBy, Aggregations, Window Join und Window. Map ermöglicht Ihnen beliebige Verarbeitung durchzuführen, indem ein Element nach dem anderen von ankommenden Daten-Streams zu einem anderen Element verarbeitet werden. KeyBy organisiert Daten logisch, mit einem festgelegten Schlüssel, was Ihnen ermöglicht ähnliche Datenpunkte zusammen zu verarbeiten. Aggregations führt Verarbeitung über mehrere Schlüssel hin weg durch, wie Summe, Min und Max. Window Join verbindet zwei Datenströme mit einem gegebenen Schlüssel und Fenster zusammen. Window gruppiert Daten mit einem Schlüssel und üblicherweise einer zeitbasierten Operation, wie das Zählen von einzigartigen Elementen in einer 5-Minuten-Zeitperiode.
 
Sie können benutzerdefinierte Operatoren erstellen, wenn Sie solche benötigen sollten. Sie können weitere Beispiele im Abschnitt Operatoren des Amazon Kinesis Data Analytics for Apache Flink Developer Guide finden. Eine vollständige Liste der Apache Flink-Operatoren finden Sie im Abschnitt Operatoren der Apache-Flink-Dokumentation.
 
F: Welche Integrationen werden in einer Kinesis Data Analytics for Apache Flink-Anwendung unterstützt?
Sie können vorgefertigte Integrationen mit minimalem Code einrichten oder Ihre eigene Integration erstellen, um eine Verbindung zu praktisch jeder Datenquelle herzustellen. Die auf Apache Flink basierenden Open-Source-Bibliotheken unterstützen Streaming-Quellen und -Ziele oder Senken, um die Datenlieferung zu verarbeiten. Dazu gehört auch die Unterstützung der Datenanreicherung über asynchrone Ein-/Ausgangsanschlüsse (I/O). Unten finden Sie eine Liste der spezifischen Konnektoren, die in den Open-Source-Bibliotheken enthalten sind.
 
  • 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.
 
F: Können Kinesis Data Analytics for Apache Flink-Anwendungen Daten stream- und/oder themenübergreifend replizieren?
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.
 
F: Werden benutzerdefinierte Integrationen unterstützt?
Sie können eine Quelle oder ein Ziel zu Ihrer Anwendung hinzufügen, indem Sie diese auf einem Satz Primitives aufbauen, die es Ihnen ermöglichen, von Dateien Verzeichnissen, Sockets und allem, auf das Sie über das Internet zugreifen können, zu lesen und zu schreiben, Apache Flink stellt diese Primitives für Datenquellen und Daten-Sinks bereit. Die Primitives werden mit Konfigurationen geliefert, wie der Möglichkeit Daten kontinuierlich oder einmal, asynchron oder synchron zu lesen und zu schreiben, und vieles mehr. Zum Beispiel können Sie eine Anwendung aufsetzen, um kontinuierlich von Amazon S3 zu lesen, indem Sie die bestehende, dateibasierte Quellenintegration erweitern.
 
F: Welches Liefermodell stellen Kinesis Data Analytics for Apache Flink-Anwendungen zur Verfügung?
Apache Flink-Anwendungen in Kinesis Data Analytics verwenden eine Liefermodell „Genau Einmal“, wenn eine Anwendung mit idempotenten Operatoren erstellt wird, einschließlich Quellen und Sinks. Das bedeutet die verarbeiteten Daten werden Downstream-Ergebnisse nur ein einziges Mal beeinflussen. Checkpoints speichern den derzeitigen Anwendungsstatus und ermöglichen Kinesis Data Analytics for Apache Flink-Anwendungen die Position der Anwendung wiederherzustellen, um dieselbe Semantik zu bieten wie störungsfreie Ausführung. Checkpoints für Apache-Flink-Anwendungen werden über die Funktion Checkpoint von Apache Flink bereitgestellt. Standardmäßig verwenden Kinesis Data Analytics for Apache Flink-Anwendungen die „Genau Einmal“-Semantik von Apache Flink. Ihre Anwendung wird die „Genau Einmal“-Verarbeitungssemantik unterstützen, wenn Sie Ihre Anwendung mit Quellen, Operatoren und Sinks entwerfen, die die „Genau Einmal“-Semantik von Apache Flink verwenden.
 
Q: Muss ich auf lokalen Speicher von meinem Anwendungsspeicher aus zugreifen?
Ja. Kinesis Data Analytics for Apache Flink-Anwendungen stellen Ihrer Anwendung 50 GB laufendem Anwendungsspeicher pro Kinesis Processing Unit (KPU) zur Verfügung. Kinesis Data Analytics skaliert Speicher mit Ihrer Anwendung. Laufender Anwendungsspeicher wird verwendet, um den Anwendungsstatus mit Checkpoints zu speichern. Sie können auch mit Ihrem Anwendungscode darauf zugreifen, um es als temporäre Disk für Daten-Caching oder andere Zwecke zu verwenden. Kinesis Data Analytics kann nicht gespeicherte Daten vom laufenden Anwendungsspeicher entfernen, mithilfe von Checkpoints (z. B. Operatoren, Quellen, Sinks) zu jeder Zeit. Alle im laufenden Anwendugnsspeicher gespeicherten Daten sind im Ruhezustand verschlüsselt.
 
Q: Wie werden automatische Backups mit Kinesis Data Analytics for Apache Flink für meine Anwendung erstellt?
Kinesis Data Analytics erstellt automatische Backups deslaufenden Anwendungsstatus mit Checkpoints und Snapshots. Checkpoints speichern den derzeitigen Anwendungsstatus und ermöglichen Kinesis Data Analytics for Apache Flink-Anwendungen die Position der Anwendung wiederherzustellen, um dieselbe Semantik zu bieten wie störungsfreie Ausführung. Checkpoints verwenden laufenden Anwendungsspeicher. Snapshots speichern einen Zeitpunkt als Wiederherstellungspunkt für Anwendungen. Snapshots verwenden beständige Anwendungs-Backups.
 
F: Was sind Anwendungs-Snapshots?
Snapshots ermöglichen Ihnen, Anwendungen in der Entwicklung zu frühere Zeitpunkte wiederherzustellen. Das ermöglicht Ihnen den vorhergegangene Anwendungsstatus aufrecht zu erhalten und Ihre Anwendung zu jeden früheren Zustand zurückzuversetzen. Sie können kontrollieren, über wie viele Snapshots Sie zu jedem gegebenen Zeitpunkt verfügen, von null bis tausende Snapshots. Snapshots sind beständige Anwendungs-Backups und Kinesis Data Analytics berechnet Ihnen diese basierend auf Ihrer Größe. Kinesis Data Analytics verschlüsselt standardmäßig in Snapshots gespeicherte Daten. Sie können einzelne Snapshots über die API löschen. Oder alle Snapshots, indem Sie Ihre Anwendung löschen.
 
F: Welche Versionen von Apache Flink 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 von Apache Beam, Java, Python und AWS SDKs, die von Kinesis Data Analytics unterstützt werden.
 
F: Kann Kinesis Data Analytics für Apache-Flink-Anwendungen auf Apache Beam ausgeführt werden?
Ja, Kinesis Data Analytics unterstützt Streaming-Anwendungen, die mit Apache Beam Java SDK Version 2.32 erstellt wurden. Sie können Apache-Beam-Streaming-Anwendungen in Java erstellen und sie in verschiedenen Engines und Services ausführen, einschließlich der Verwendung von Apache Flink auf Amazon Kinesis Data Analytics. Informationen zu den unterstützten Versionen von Apache Flink und Apache Beam finden Sie hier in der Dokumentation zu Amazon Kinesis Data Analytics.

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

F: Welche Eingaben werden in einer Kinesis Data Analytics-SQL-Anwendung unterstützt?
SQL-Anwendungen in Kinesis Data Analytics unterstützen zwei Arten von Eingaben: Streaming-Datenquellen und Referenzdatenquellen. Eine Streaming-Datenquelle generiert kontinuierlich Daten, die zur Verarbeitung in Ihre Anwendung eingelesen werden. Eine Referenzdatenquelle liefert statische Daten, mit denen Ihre Anwendung Daten aus Streaming-Quellen ergänzt. Eine Anwendung kann nur über eine Streaming-Datenquelle und eine Referenzdatenquelle verfügen. Eine Anwendung liest und verarbeitet kontinuierlich neue Daten aus einer Streaming-Datenquelle, beispielsweise Amazon Kinesis Data Streams oder Amazon Kinesis Data Firehose. Eine Anwendung liest eine Referenzdatenquelle, beispielsweise Amazon S3, als Ganzes und verwendet sie zum Ergänzen der Streaming-Datenquelle durch SQL JOINs.
 
F: Was ist eine Referenzdatenquelle?
Eine Referenzdatenquelle liefert statische Daten, mit denen Ihre Anwendung Daten aus Streaming-Quellen ergänzt. Referenzdaten werden als Objekt in Ihrem S3-Bucket gespeichert. Wenn die SQL-Anwendung startet, liest Kinesis Data Analytics das S3-Objekt und erstellt eine In-Application-SQL-Tabelle zum Speichern der Referenzdaten. Ihr Anwendungscode kann die Tabelle dann mit einem In-Application-Stream verknüpfen. Sie können die Daten in der SQL-Tabelle durch Aufrufen der UpdateApplication-API aktualisieren.
 
F: Wie erstelle ich eine Streaming-Datenquelle in meiner SQL-Anwendung?
Eine Streaming-Datenquelle kann ein Amazon Kinesis-Datenstrom oder ein Amazon Kinesis Data Firehose-Lieferdatenstrom sein. Ihre Kinesis Data Analytics SQL-Anwendung liest kontinuierlich neue Daten aus Streaming-Datenquellen, wenn diese in Echtzeit ankommen. Die Daten werden für Ihren SQL-Code durch einen In-Application-Stream verfügbar gemacht. Ein In-Application-Stream funktioniert wie eine SQL-Tabelle, da Sie Daten erstellen, einfügen und auswählen können. Der Unterschied liegt jedoch darin, dass ein In-Application-Stream kontinuierlich mit neuen Daten aus der Streaming-Datenquelle aktualisiert wird.
 
Sie können die AWS-Managementkonsole verwenden, um eine Streaming-Datenquelle hinzuzufügen. Weitere Informationen über Datenquellen finden Sie im Abschnitt Anwendungseingaben konfigurieren des Kinesis Data Analytics for SQL Developer Handbuchs.
 
F: Wie erstelle ich eine Referenzdatenquelle in meiner SQL-Anwendung?
Bei einer Referenzdatenquelle kann es sich um ein Amazon S3-Objekt handeln. Ihre Kinesis Data Analytics SQL-Anwendung liest das S3-Objekt als Ganzes, wenn sie gestartet wird. Die Daten werden für Ihren SQL-Code durch eine Tabelle verfügbar gemacht. Der häufigste Anwendungsfall für das Verwenden einer Referenzdatenquelle ist das Ergänzen von Daten aus einer Streaming-Datenquelle mithilfe eines SQL JOIN. 
 
Mit der AWS CLI können Sie eine Referenzdatenquelle hinzufügen, indem Sie den S3-Bucket, das Objekt, die IAM-Rolle und das zugehörige Schema angeben. Kinesis Data Analytics lädt diese Daten, wenn Sie die Anwendung starten, und lädt sie jedes Mal erneut, wenn Sie einen API-Aufruf zur Aktualisierung ausführen.
 
F: Welche Datenformate werden für SQL-Anwendungen unterstützt?
SQL-Anwendungen in Kinesis Data Analytics können das Schema ermitteln und interpretieren automatisch mit UTF-8 kodierte JSON- und CSV-Datensätze mithilfe der DiscoverInputSchema-API. Dieses Schema wird auf die Daten angewendet, die beim Einfügen in einen In-Application-Stream aus dem Stream gelesen werden. 
 
Für andere mit UTF-8 kodierte Daten, die kein Trennzeichen oder ein anderes Trennzeichen als CSV verwenden, sowie in Fällen, in denen die Discovery-API das Schema nicht vollständig ermitteln konnte, können Sie mit dem interaktiven Schema-Editor ein Schema definieren oder die Funktionen zur Zeichenkettenmanipulation nutzen, um Ihre Daten zu strukturieren. Weitere Informationen finden Sie unter Verwenden der Schema-Ermittlungsfunktion und damit verbundene Bearbeitung im Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL.
 
F: Wie wird mein Eingabedaten-Stream meinem SQL-Code dargestellt?
Kinesis Data Analytics for SQL wendet Ihr angegebenes Schema an und fügt Ihre Daten aus den Streaming-Quellen in einen oder mehrere In-Application-Streams und die Daten aus Referenz-Quellen in eine einzelne SQL-Tabelle ein. Die vorgegebene Zahl von In-Application-Streams ist diejenige, die die Anforderungen Ihrer meisten Anwendungsfälle erfüllt. Sie sollten diese Zahl erhöhen, wenn Sie feststellen, dass Ihre Anwendung gemäß der CloudWatch-Metrik „MillisBehindLatest“ nicht mit den neuesten Daten in Ihrem Quell-Stream mithalten kann. Die Zahl der erforderlichen In-Application-Streams wird sowohl vom Durchsatz in Ihrem Quell-Stream als auch von der Komplexität Ihrer Abfrage beeinflusst. Der Parameter zum Festlegen der Zahl von In-Application-Streams, die ihrem Quell-Stream zugeordnet werden, wird als Eingabeparallelität bezeichnet.
 

Erstellen von Anwendungscode für SQL-Anwendungen

F: Wie sieht mein SQL-Anwendungscode aus?
Der Anwendungscode besteht aus einer Reihe von SQL-Anweisungen, die Eingabedaten verarbeiten und Ausgabedaten erzeugen. Diese SQL-Anweisungen verarbeiten In-Application-Streams und Referenztabellen. Ein In-Application-Stream entspricht einer kontinuierlich aktualisierten Tabelle, auf die Sie die SQL-Operationen SELECT und INSERT anwenden können. Ihre konfigurierten Quellen und Ziele werden Ihrem SQL-Code durch In-Application-Streams mitgeteilt. Sie können außerdem zusätzliche In-Application-Streams erstellen, um Zwischenergebnisse aus Abfragen zu speichern.
 
Sie können das folgende Muster verwenden, um mit In-Application-Streams zu arbeiten:

  • 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.

Der folgende SQL-Code bietet eine einfache, funktionierende Anwendung:
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";
Weitere Informationen über Anwendungscode finden Sie unter Anwendungscode im Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL.
 
F: Wie schreibe ich SQL-Code mit Kinesis Data Analytics?
Kinesis Data Analytics bietet eine Bibliothek mit Analysevorlagen für häufige Anwendungsfälle, wozu Streaming-Filter, Tumbling Time Windows und Anomalie-Entdeckung gehören. Sie können aus dem SQL-Editor in der AWS-Managementkonsole auf diese Vorlagen zugreifen. Nachdem Sie eine Anwendung erstellt haben und in den SQL-Editor gegangen sind, stehen die Vorlagen in der oberen linken Ecke der Konsole zur Verfügung.
 
F: Wie führe ich in Kinesis Data Analytics eine Anomalie-Erkennung in Echtzeit durch?
Kinesis Data Analytics enthält vorkonfigurierte SQL-Funktionen für verschiedene erweiterte Analysen, darunter auch für die Anomalie-Erkennung. Sie können diese Funktion einfach über Ihren SQL-Code für die Echtzeiterkennung von Anomalien aufrufen. Kinesis Data Analytics verwendet für die Anomalie-Erkennung den Random Cut Forest-Algorithmus. Weitere Informationen zu Random Cut Forests finden Sie unter Whitepaper Streaming Data Anomaly Detection.

Konfigurieren von Zielen in SQL-Anwendungen

F: Welche Ziele werden unterstützt?
Kinesis Data Analytics for SQL unterstützt bis zu drei Ziele pro Anwendung. Sie können SQL-Ergebnisse an Amazon S3, Amazon Redshift und Amazon OpenSearch Service (über Amazon Kinesis Data Firehose) sowie an Amazon Kinesis Data Streams liefern. Sie können an ein Ziel schreiben, das nicht direkt durch Kinesis Data Analytics unterstützt wird, indem Sie SQL-Ergebnisse an Amazon Kinesis Data Streams senden und dessen Integration mit AWS Lambda nutzen, um Daten an ein Ziel Ihrer Wahl zu senden.
 
F: Wie richte ich ein Ziel ein?
In Ihrem Anwendungscode schreiben Sie SQL-Anweisungen für die Ausgabe in einen oder mehrere In-Application-Streams. Wahlweise können Sie Ihrer Anwendung eine Ausgabekonfiguration hinzufügen, um alle geschriebenen Daten, die in bestimmte In-Application-Streams geschrieben wurden, an bis zu vier externe Ziele zu übertragen. Bei diesen externen Zielen kann es sich um einen Amazon S3-Bucket, eine Amazon Redshift-Tabelle, eine Amazon-OpenSearch-Servicedomäne (durch Amazon Kinesis Data Firehose) oder einen Amazon Kinesis-Datenstrom handeln. Jede Anwendung unterstützt bis zu vier Ziele, wobei die zuvor angegebenen Möglichkeiten kombiniert werden können. Weitere Informationen finden Sie unter Konfigurieren von Ausgabeströmen im Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL.
 
F: Mein bevorzugtes Ziel wird nicht direkt unterstützt. Wie kann ich SQL-Ergebnisse an dieses Ziel senden?
Sie können AWS Lambda verwenden, um mit Kinesis Data Analytics für SQL auf einem Ziel zu schreiben, das nicht direkt unterstützt wird. Wir empfehlen, dass Sie die Ergebnisse in einen Amazon Kinesis-Daten-Stream schreiben und dann AWS Lambda verwenden, um die verarbeiteten Ergebnisse zu lesen und an das Ziel Ihrer Wahl zusenden. Weitere Informationen finden Sie im Beispiel: AWS Lambda Integration im Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL. Als Alternative können Sie einen Kinesis Data Firehose-Lieferdatenstrom verwenden, um die Daten in Amazon S3 zu laden, und dann eine AWS Lambda-Funktion auszulösen, um diese Daten zu lesen und an das Ziel Ihrer Wahl zu senden. Weitere Informationen finden Sie unter Verwenden von AWS Lambda mit Amazon S3 im Entwicklerhandbuch für AWS Lambda.
 
F: Welches Liefermodell stellt Kinesis Data Analytics zur Verfügung?
SQL-Anwendungen in Kinesis Data Analytics verwendeen ein Liefermodell nach dem Verfahren "mindestens einmal" für die Ausgabe von Anwendungen an die konfigurierten Ziele. Kinesis Data Analytics-Anwendungen nutzen interne Checkpoints, bei denen es sich um Zeitpunkte handelt, an denen die Ausgabedaten an die Ziele geliefert wurden und es keine Datenverluste gab. Der Service verwendet die Checkpoints nach Bedarf, um sicherzustellen, dass die Ausgabe Ihrer Anwendungen mindestens einmal an die konfigurierten Ziele geliefert wird. Weitere Informationen zum Bereitstellungsmodell finden Sie unter Konfigurieren der Anwendungsausgabe im Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL.

Vergleich mit anderen Lösungen für die Stream-Verarbeitung

F: Wie unterscheidet sich Amazon Kinesis Data Analytics vom Ausführen meiner eigenen Anwendung mit der Amazon Kinesis-Client-Bibliothek?
Die Amazon Kinesis Client Library (KCL) ist eine vorgefertigte Bibliothek, mit deren Hilfe Sie Konsumentenanwendungen zum Lesen und Verarbeiten von Daten aus einem Amazon Kinesis-Datenstrom aufbauen können. Die KCL übernimmt automatisch komplexe Aufgaben wie die Anpassung an Änderungen beim Datenstromvolumen, den Lastausgleich für Streaming-Daten, die Koordination verteilter Services und fehlertolerante Datenverarbeitung. Die KCL ermöglicht, dass Sie sich beim Entwickeln von Anwendungen ganz auf die Geschäftslogik konzentrieren können. 
 
Mit Kinesis Data Analytics können Sie Streaming-Daten in Echtzeit verarbeiten und abfragen. Sie verwenden Standard-SQL, um Ihre Daten-Streams zu verarbeiten, sodass Sie keine neuen Programmiersprachen erlernen müssen. Sie verweisen Kinesis Data Analytics einfach auf den eingehenden Datenstrom, schreiben Ihre SQL-Abfragen und geben an, wohin die Ergebnisse geliefert werden sollen. Kinesis Data Analytics verwendet die KCL, um als Teil ihrer zugrunde liegenden Anwendung Daten von Streaming-Datenquellen zu lesen. Der Service trennt dies von Ihnen ebenso wie von vielen der komplexeren Konzepte in Verbindung mit der Verwendung der KCL wie beispielsweise Checkpoints. 
 
Wenn Sie eine vollständig verwaltete Lösung anstreben und SQL für das Verarbeiten der Daten aus Ihrem Datenstrom verwenden möchten, sollten Sie sich für Kinesis Data Analytics entscheiden. Verwenden Sie die KCL, wenn Sie eine benutzerdefinierte Verarbeitungslösung erstellen müssen, deren Anforderungen von Kinesis Data Analytics nicht erfüllt werden, und Sie in der Lage sind, die erstellte Konsumentenanwendung zu verwalten.

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

Seite zur Preisgestaltung f&uuml;r Kinesis Data Analytics besuchen
Kosten berechnen

Besuchen Sie die Seite zur Preisgestaltung für Amazon Kinesis Data Analytics.

Read the documentation
Lesen Sie das Handbuch „Erste Schritte“

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

Beginnen Sie mit dem Erstellen in der Konsole
Streaming-Anwendungen entwickeln

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