Verwenden der Funktion der Schemaerkennung für statische Daten - Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL Applications

Für neue Projekte empfehlen wir, den neuen Managed Service für Apache Flink Studio anstelle von Kinesis Data Analytics for SQL Applications zu verwenden. Der Managed Service für Apache Flink Studio kombiniert Benutzerfreundlichkeit mit fortschrittlichen Analysefunktionen, sodass Sie in wenigen Minuten anspruchsvolle Anwendungen zur Stream-Verarbeitung erstellen können.

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.

Verwenden der Funktion der Schemaerkennung für statische Daten

Anmerkung

Nach dem 12. September 2023 können Sie keine neuen Anwendungen mit Kinesis Data Firehose als Quelle erstellen, wenn Sie Kinesis Data Analytics für SQL nicht bereits verwenden. Weitere Informationen finden Sie unter Limits.

Mit der Funktion der Schemaerkennung können Sie ein Schema aus den Daten in einem Stream oder den Daten in einer statischen Datei erstellen, die in einem Amazon S3 Bucket gespeichert wird. Gehen wir davon aus, dass Sie ein Schema für eine Kinesis Data Analytics-Anwendung, als Referenz oder bei Nichtverfügbarkeit von Live-Streaming-Daten, erstellen möchten. Sie können die Funktion Schema-Erkennung bei einer statischen Datei verwenden, die ein Beispiel der Daten im erwarteten Format Ihrer Streaming- oder Referenzdaten enthält. Kinesis Data Analytics kann die Schemaerkennung für Beispieldaten aus einer JSON- oder CSV-Datei ausführen, die in einem Amazon S3 Bucket gespeichert ist. Wenn die Schemaerkennung auf eine Datendatei angewandt wird, wird dazu entweder die Konsole oder die DiscoverInputSchema-API mit dem festgelegten Parameter S3Configuration verwendet.

Ausführen der Schemaerkennung mithilfe der Konsole

Um die Erkennung für eine statische Datei mithilfe der Konsole auszuführen, gehen Sie wie folgt vor:

  1. Fügen Sie ein Referenzdatenobjekt zu einem S3-Bucket hinzu.

  2. Wählen Sie auf der Hauptseite der Anwendung in der Kinesis Data Analytics-Konsole Referenzdaten verbinden aus.

  3. Geben Sie den Bucket, den Pfad und die IAM-Rolle für den Zugriff auf das Amazon S3 Objekt mit den Referenzdaten ein.

  4. Klicken Sie auf Discover schema (Schema erkennen).

Weitere Informationen zum Hinzufügen von Referenzdaten und zum Erkennen des Schemas in der Konsole finden Sie unter Beispiel: Hinzufügen von Referenzdaten zu einer Kinesis Data Analytics-Anwendung.

Ausführen der Schemaerkennung mithilfe der API

Um die Erkennung für eine statische Datei mithilfe der API auszuführen, geben Sie die API mit einer S3Configuration-Struktur mit den folgenden Informationen an:

Um ein Schema aus einem Amazon S3-Objekt mithilfe der DiscoverInputSchema-API zu generieren
  1. Stellen Sie sicher, dass Sie die AWS CLI eingerichtet haben. Weitere Informationen finden Sie unter Schritt 2: Richten Sie das AWS Command Line Interface ()AWS CLI ein im Abschnitt „Erste Schritte“.

  2. Erstellen Sie eine Datei data.csv mit dem folgenden Inhalt:

    year,month,state,producer_type,energy_source,units,consumption 2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615 2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535 2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890 2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601 2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681
  3. Melden Sie sich bei der Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/ an.

  4. Erstellen Sie einen Amazon S3 Bucket und laden Sie die von Ihnen erstellte data.csv-Datei hoch. Merken Sie sich den ARN des erstellten Buckets. Informationen zum Erstellen eines Amazon S3 Buckets und zum Hochladen einer Datei finden Sie unter Erste Schritte mit Amazon Simple Storage Service.

  5. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/. Erstellen Sie eine Rolle mit der AmazonS3ReadOnlyAccess-Richtlinie. Merken Sie sich den ARN der neuen Rolle. Informationen zum Erstellen einer Rolle finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen Amazon Service. Informationen zum Hinzufügen einer Richtlinie zu einer Rolle finden Sie unter Ändern einer Rolle.

  6. Führen Sie den folgenden DiscoverInputSchema Befehl in der aus AWS CLIund ersetzen Sie dabei die ARNs durch Ihren Amazon S3-Bucket und Ihre IAM-Rolle:

    $aws kinesisanalytics discover-input-schema --s3-configuration '{ "RoleARN": "arn:aws:iam::123456789012:role/service-role/your-IAM-role", "BucketARN": "arn:aws:s3:::your-bucket-name", "FileKey": "data.csv" }'
  7. Die Antwort sieht in etwa so aus:

    { "InputSchema": { "RecordEncoding": "UTF-8", "RecordColumns": [ { "SqlType": "INTEGER", "Name": "COL_year" }, { "SqlType": "INTEGER", "Name": "COL_month" }, { "SqlType": "VARCHAR(4)", "Name": "state" }, { "SqlType": "VARCHAR(64)", "Name": "producer_type" }, { "SqlType": "VARCHAR(4)", "Name": "energy_source" }, { "SqlType": "VARCHAR(16)", "Name": "units" }, { "SqlType": "INTEGER", "Name": "consumption" } ], "RecordFormat": { "RecordFormatType": "CSV", "MappingParameters": { "CSVMappingParameters": { "RecordRowDelimiter": "\r\n", "RecordColumnDelimiter": "," } } } }, "RawInputRecords": [ "year,month,state,producer_type,energy_source,units,consumption\r\n2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615\r\n2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535\r\n2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890\r\n2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601\r\n2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681" ], "ParsedInputRecords": [ [ null, null, "state", "producer_type", "energy_source", "units", null ], [ "2001", "1", "AK", "TotalElectricPowerIndustry", "Coal", "ShortTons", "47615" ], [ "2001", "1", "AK", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "16535" ], [ "2001", "1", "AK", "CombinedHeatandPowerElectricPower", "Coal", "ShortTons", "22890" ], [ "2001", "1", "AL", "TotalElectricPowerIndustry", "Coal", "ShortTons", "3020601" ], [ "2001", "1", "AL", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "2987681" ] ] }