Erstellen eines Studio-Notebooks mit Kinesis Data Streams - Managed Service für Apache Flink

Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen eines Studio-Notebooks mit Kinesis Data Streams

In diesem Tutorial wird beschrieben, wie Sie ein Studio-Notebook erstellen, das einen Kinesis Data Stream als Quelle verwendet.

Aufstellen

Bevor Sie ein Studio-Notebook erstellen, erstellen Sie einen Kinesis Data Stream (ExampleInputStream). Ihre Anwendung verwendet diesen Stream als Anwendungsquelle.

Sie können diesen Stream mithilfe der Amazon Kinesis-Konsole oder des folgenden AWS CLI -Befehls erstellen. Anweisungen für die Konsole finden Sie unter Erstellen und Aktualisieren von Datenströmen im Amazon Kinesis Data Streams Entwicklerhandbuch. Benennen Sie den Stream ExampleInputStream und legen Sie die Anzahl der offenen Shards auf 1 fest.

Verwenden Sie den folgenden Amazon Kinesis create-stream AWS CLI Kinesis-Befehl AWS CLI, um den Stream (ExampleInputStream) mit dem zu erstellen.

$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-east-1 \ --profile adminuser

Erstellen Sie eine Tabelle AWS Glue

Ihr Studio-Notebook verwendet eine AWS Glue-Datenbank für Metadaten zu Ihrer Kinesis Data Streams-Datenquelle.

Anmerkung

Sie können die Datenbank entweder zuerst manuell erstellen oder sie beim Erstellen des Notebooks von Managed Service für Apache Flink für Sie erstellen lassen. Ebenso können Sie die Tabelle entweder manuell erstellen, wie im folgenden Abschnitt beschrieben, oder Sie können den Konnektorcode zum Erstellen einer Tabelle für Managed Service für Apache Flink in Ihrem Notebook innerhalb von Apache Zeppelin verwenden, um Ihre Tabelle über eine DDL-Anweisung zu erstellen. Sie können dann einchecken AWS Glue , um sicherzustellen, dass die Tabelle korrekt erstellt wurde.

Erstellen einer Tabelle
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Glue Konsole unter https://console.aws.amazon.com/glue/.

  2. Wenn Sie noch keine AWS Glue Datenbank haben, wählen Sie in der linken Navigationsleiste Datenbanken aus. Wählen Sie Datenbank hinzufügen. Geben Sie im Fenster Datenbank hinzufügen default als Namen der Datenbank ein. Wählen Sie Erstellen.

  3. Wählen Sie in der linken Navigationsleiste die Option Tabellen. Wählen Sie auf der Seite Tabellen die Optionen Tabellen hinzufügen, Tabelle manuell hinzufügen aus.

  4. Geben Sie auf der Seite Eigenschaften Ihrer Tabelle einrichten stock als Tabellennamen ein. Stellen Sie sicher, dass Sie die Datenbank auswählen, die Sie zuvor erstellt haben. Wählen Sie Weiter aus.

  5. Wählen Sie auf der Seite Datenstore hinzufügen die Option Kinesis aus. Geben Sie als Streamnamen ExampleInputStream ein. Wählen Sie für Kinesis-Quell-URL die Eingabetaste https://kinesis.us-east-1.amazonaws.com. Wenn Sie die Kinesis-Quell-URL kopieren und einfügen, achten Sie darauf, alle führenden oder nachfolgenden Leerzeichen zu löschen. Wählen Sie Weiter aus.

  6. Wählen Sie auf der Seite Klassifikation die Option JSON aus. Wählen Sie Weiter aus.

  7. Wählen Sie auf der Seite Schema definieren die Option „Spalte hinzufügen“, um eine Spalte hinzuzufügen. Fügen Sie Spalten mit den folgenden Eigenschaften hinzu:

    Spaltenname Datentyp
    ticker string
    price double

    Wählen Sie Weiter aus.

  8. Überprüfen Sie auf der nächsten Seite Ihre Einstellungen und wählen Sie Fertigstellen.

  9. Wählen Sie die neu erstellte Tabelle aus der Liste der Tabellen aus.

  10. Wählen Sie Tabelle bearbeiten und fügen Sie eine Eigenschaft mit dem Schlüssel managed-flink.proctime und dem Wert proctime hinzu.

  11. Wählen Sie Apply (Anwenden) aus.

Erstellen Sie ein Studio-Notebook mit Kinesis Data Streams

Nachdem Sie die Ressourcen erstellt haben, die Ihre Anwendung verwendet, erstellen Sie Ihr Studio-Notebook.

Um Ihre Anwendung zu erstellen, können Sie entweder den AWS Management Console oder den verwenden AWS CLI.

Erstellen Sie ein Studio-Notizbuch mit dem AWS Management Console

  1. Öffnen Sie die Konsole Managed Service für Apache Flink unter https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard.

  2. Wählen Sie auf der Seite Managed Service für Apache Flink-Anwendungen die Registerkarte Studio aus. Wählen Sie Studio-Notebook erstellen.

    Anmerkung

    Sie können ein Studio-Notebook auch über die Amazon MSK- oder Kinesis Data Streams-Konsolen erstellen, indem Sie Ihren Amazon MSK-Eingabe-Cluster oder Kinesis Data Stream auswählen und dann Daten in Echtzeit verarbeiten auswählen.

  3. Geben Sie auf der Seite Notebook-Instance erstellen folgende Informationen ein:

    • Geben Sie MyNotebook als Namen des Notebooks ein.

    • Wählen Sie Standard für die AWS -Glue-Datenbank.

    Wählen Sie Studio-Notebook erstellen.

  4. Wählen Sie auf der MyNotebookSeite die Option Ausführen aus. Warten Sie, bis der Status Wird ausgeführt angezeigt wird. Es fallen Gebühren an, wenn das Notebook läuft.

Erstellen Sie ein Studio-Notizbuch mit dem AWS CLI

Gehen Sie wie folgt vor AWS CLI, um Ihr Studio-Notizbuch mit dem zu erstellen:

  1. Überprüfen Sie die Konto-ID. Sie benötigen diesen Wert, um die Anwendung zu erstellen.

  2. Erstellen Sie die Rolle arn:aws:iam::AccountID:role/ZeppelinRole und fügen Sie der automatisch erstellten Rolle über die Konsole die folgenden Berechtigungen hinzu.

    "kinesis:GetShardIterator",

    "kinesis:GetRecords",

    "kinesis:ListShards"

  3. Erstellen Sie eine Datei mit dem Namen create.json und den folgenden Inhalten. Ersetzen Sie die Platzhalterwerte durch Ihre Informationen.

    { "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole", "ApplicationConfiguration": { "ApplicationSnapshotConfiguration": { "SnapshotsEnabled": false }, "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default" } } } } }
  4. Um Ihre Anwendung zu erstellen, führen Sie den folgenden Befehl aus.

    aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
  5. Wenn der Befehl abgeschlossen ist, sehen Sie eine Ausgabe, die die Details für Ihr neues Studio-Notebook enthält. Es folgt ein Beispiel für die Ausgabe.

    { "ApplicationDetail": { "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook", "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole", ...
  6. Um Ihre Anwendung zu starten, führen Sie den folgenden Befehl aus. Ersetzen Sie die Beispielwerte durch Ihre Konto-ID.

    aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\

Senden von Daten an den Kinesis Data Stream

Gehen Sie wie folgt vor, um Testdaten an Ihren Kinesis Data Stream zu senden:

  1. Öffnen Sie den Kinesis Data Generator.

  2. Wählen Sie „Cognito-Benutzer erstellen mit CloudFormation“.

  3. Die AWS CloudFormation Konsole wird mit der Kinesis Data Generator-Vorlage geöffnet. Wählen Sie Weiter aus.

  4. Auf der Seite Festlegen von Komponentendetails geben Sie den Benutzernamen und das Passwort für Ihren Cognito-Benutzer ein. Wählen Sie Weiter aus.

  5. Wählen Sie auf der Seite Stack-Optionen konfigurieren Weiter aus.

  6. Wählen Sie auf der Seite Kinesis-Data-Generator-Cognito-User überprüfen die Option Ich bestätige, dass möglicherweise IAM-Ressourcen erstellt werden. AWS CloudFormation Kontrollkästchen. Wählen Sie Stapel erstellen aus.

  7. Warten Sie, bis der AWS CloudFormation Stapel fertig erstellt ist. Wenn der Stack abgeschlossen ist, öffnen Sie den Kinesis-Data-Generator-Cognito-User-Stack in der Konsole und wählen Sie die Registerkarte Outputs. AWS CloudFormation KinesisDataGeneratorUrlÖffnen Sie die URL, die für den Ausgabewert aufgeführt ist.

  8. Melden Sie sich auf der Amazon Kinesis Data Generator-Seite mit den Anmeldeinformationen an, die Sie in Schritt 4 erstellt haben.

  9. Geben Sie auf der nächsten Seite die folgenden Werte an:

    Region us-east-1
    Bach/Firehose-Stream ExampleInputStream
    Aufzeichnungen pro Sekunde 1

    Fügen Sie für Datensatzvorlage den folgenden Code ein:

    { "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
  10. Wählen Sie Daten senden aus.

  11. Der Generator sendet Daten an den Kinesis Data Stream.

    Lassen Sie den Generator laufen, während Sie den nächsten Abschnitt abschließen.

Testen Sie Ihr Studio-Notebook

In diesem Abschnitt verwenden Sie Ihr Studio-Notebook, um Daten aus Ihrem Kinesis Data Stream abzufragen.

  1. Öffnen Sie die Konsole Managed Service für Apache Flink unter https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard.

  2. Wählen Sie auf der Seite Managed Service für Apache Flink-Anwendungen die Registerkarte Studio-Notebook aus. Wähle MyNotebook.

  3. Wählen Sie MyNotebookauf der Seite „In Apache Zeppelin öffnen“.

    Die Oberfläche von Apache Zeppelin wird in einer neuen Registerkarte geöffnet.

  4. Auf der Seite Willkommen bei Zeppelin! wählen Sie Zeppelin Notiz aus.

  5. Geben Sie auf der Seite Zeppelin Notiz die folgende Abfrage in eine neue Notiz ein:

    %flink.ssql(type=update) select * from stock

    Wählen Sie das Ausführungssymbol.

    Nach kurzer Zeit werden in der Notiz Daten aus dem Kinesis Data Stream angezeigt.

Um das Apache Flink-Dashboard für Ihre Anwendung zu öffnen und betriebliche Aspekte zu sehen, wählen Sie FLINK JOB. Weitere Informationen zum Flink-Dashboard finden Sie unter Apache Flink-Dashboard im Managed Service für Apache Flink Entwicklerhandbuch.

Weitere Beispiele für Flink-Streaming-SQL-Abfragen finden Sie unter Abfragen in der Apache Flink-Dokumentation.