ETLJobs streamen in AWS Glue - AWS Glue

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.

ETLJobs streamen in AWS Glue

Sie können Streaming-Jobs zum Extrahieren, Transformieren und Laden (ETL) erstellen, die kontinuierlich ausgeführt werden und Daten aus Streaming-Quellen wie Amazon Kinesis Data Streams, Apache Kafka und Amazon Managed Streaming for Apache Kafka (AmazonMSK) nutzen. Die Jobs bereinigen und transformieren die Daten und laden die Ergebnisse anschließend in Amazon S3 S3-Datenseen oder JDBC Datenspeicher.

Darüber hinaus können Sie Daten zu Amazon Kinesis Data Streams erstellen. Diese Funktion ist nur beim Schreiben von AWS Glue Skripten verfügbar. Weitere Informationen finden Sie unter Kinesis-Verbindungen.

Standardmäßig AWS Glue verarbeitet und schreibt Daten in 100-Sekunden-Fenstern aus. Dadurch können Daten effizient verarbeitet und Aggregationen für Daten ausgeführt werden, die später als erwartet eintreffen. Sie können die Größe dieses Zeitfensters ändern, um die Aktualität oder Aggregationsgenauigkeit zu erhöhen. AWS Glue Streaming-Jobs verwenden Checkpoints statt Job-Lesezeichen, um die gelesenen Daten nachzuverfolgen.

Anmerkung

AWS Glue berechnet stündlich für ETL Streaming-Jobs, während sie ausgeführt werden.

In diesem Video werden die Herausforderungen im Zusammenhang mit ETL Streaming-Kosten und Funktionen zur Kosteneinsparung unter beschrieben AWS Glue.

Das Erstellen eines ETL Streaming-Jobs umfasst die folgenden Schritte:

  1. Erstellen Sie für eine Apache Kafka-Streaming-Quelle eine AWS Glue Verbindung zur Kafka-Quelle oder zum MSK Amazon-Cluster.

  2. Erstellen Sie manuell eine Data-Catalog-Tabelle für die Streaming-Quelle.

  3. Erstellen Sie einen ETL Job für die Streaming-Datenquelle. Definieren Sie streamingspezifische Auftragseigenschaften und geben Sie Ihr eigenes Skript an oder ändern Sie optional das generierte Skript.

Weitere Informationen finden Sie unter ETLEinstreamen AWS Glue.

Wenn Sie einen ETL Streaming-Job für Amazon Kinesis Data Streams erstellen, müssen Sie kein AWS Glue Verbindung. Wenn jedoch eine Verbindung mit dem verbunden ist AWS Glue ETLStreaming-Job, der Kinesis Data Streams als Quelle hat, dann ist ein Virtual Private Cloud (VPC) -Endpunkt für Kinesis erforderlich. Weitere Informationen finden Sie unter Erstellen eines Schnittstellenendpunkts im VPCAmazon-Benutzerhandbuch. Wenn Sie einen Amazon-Kinesis-Data-Streams-Stream in einem anderen Konto angeben, müssen Sie die Rollen und Richtlinien einrichten, um den kontenübergreifenden Zugriff zu ermöglichen. Weitere Informationen finden Sie unter Beispiel: Aus einem Kinesis Stream in einem anderen Konto lesen.

AWS Glue ETLStreaming-Jobs können komprimierte Daten automatisch erkennen, die Streaming-Daten transparent dekomprimieren, die üblichen Transformationen an der Eingabequelle durchführen und in den Ausgabespeicher laden.

AWS Glue unterstützt die automatische Dekomprimierung für die folgenden Komprimierungstypen je nach Eingabeformat:

Komprimierungsart Avro-Datei Avro-Datum JSON CSV Grok
BZIP2 Ja Ja Ja Ja Ja
GZIP Nein Ja Ja Ja Ja
SNAPPY Ja (rohes Snappy) Ja (gerahmtes Snappy) Ja (gerahmtes Snappy) Ja (gerahmtes Snappy) Ja (gerahmtes Snappy)
XZ Ja Ja Ja Ja Ja
ZSTD Ja Nein Nein Nein Nein
DEFLATE Ja Ja Ja Ja Ja

Erstellen eines AWS Glue Verbindung für einen Apache Kafka-Datenstrom

Um aus einem Apache Kafka-Stream zu lesen, müssen Sie einen erstellen AWS Glue Verbindung.

Um eine zu erstellen AWS Glue Verbindung für eine Kafka-Quelle (Konsole)
  1. Öffnen Sie die AWS Glue Konsole unter. https://console.aws.amazon.com/glue/

  2. Wählen Sie im Navigationsbereich unter Data catalog die Option Connections (Verbindungen) aus.

  3. Wählen Sie Add connection (Verbindung hinzufügen) und geben Sie auf der Seite Set up your connection’s properties (Einrichten der Verbindungseigenschaften) einen Verbindungsnamen ein.

    Anmerkung

    Weitere Informationen zum Angeben von Verbindungseigenschaften finden Sie unter Eigenschaften der AWS Glue -Verbindung.

  4. Wählen Sie für Verbindungstyp den Eintrag Kafka.

  5. Geben Sie für Kafka-Bootstrap-Server URLs die Host- und Portnummer für die Bootstrap-Broker für Ihren MSK Amazon-Cluster oder Apache Kafka-Cluster ein. Verwenden Sie nur Transport Layer Security (TLS) -Endpunkte, um die erste Verbindung zum Kafka-Cluster herzustellen. Nur–Text-Endpunkte werden nicht unterstützt.

    Im Folgenden finden Sie eine Beispielliste von Hostnamen- und Portnummernpaaren für einen MSK Amazon-Cluster.

    myserver1.kafka.us-east-1.amazonaws.com:9094,myserver2.kafka.us-east-1.amazonaws.com:9094, myserver3.kafka.us-east-1.amazonaws.com:9094

    Weitere Informationen zum Abrufen der Bootstrap-Broker-Informationen finden Sie unter Getting the Bootstrap Brokers for an Amazon MSK Cluster im Amazon Managed Streaming for Apache Kafka Developer Guide.

  6. Wenn Sie eine sichere Verbindung zur Kafka-Datenquelle wünschen, wählen Sie SSLVerbindung erforderlich aus und geben Sie als Speicherort für das private Kafka-CA-Zertifikat einen gültigen Amazon S3-Pfad zu einem benutzerdefinierten SSL Zertifikat ein.

    Für eine SSL Verbindung zu selbstverwaltetem Kafka ist das benutzerdefinierte Zertifikat obligatorisch. Es ist optional für AmazonMSK.

    Weitere Informationen zur Angabe eines benutzerdefinierten Zertifikats für Kafka finden Sie unter AWS Glue SSL-Verbindungseigenschaften.

  7. Verwenden Sie AWS Glue Studio oder AWS CLI, um eine Kafka-Client-Authentifizierungsmethode anzugeben. Um darauf zuzugreifen, AWS Glue Studio wählen Sie eine Option AWS Glueaus dem ETLMenü im linken Navigationsbereich aus.

    Weitere Informationen über Kafka-Client-Authentifizierungsmethoden finden Sie unter AWS Glue Kafka-Verbindungseigenschaften für die Client-Authentifizierung .

  8. Geben Sie optional eine Beschreibung ein und wählen Sie dann Next (Weiter).

  9. Geben Sie für einen MSK Amazon-Cluster seine virtuelle private Cloud (VPC), sein Subnetz und seine Sicherheitsgruppe an. Die VPC Informationen sind für selbstverwaltetes Kafka optional.

  10. Klicken Sie auf Next (Weiter), um alle Verbindungseigenschaften zu überprüfen, und wählen Sie dann Finish (Abschließen).

Weitere Informationen zur AWS Glue Verbindungen, siehe. Herstellen einer Verbindung zu Daten

AWS Glue Kafka-Verbindungseigenschaften für die Client-Authentifizierung

SASL/GSSAPI(Kerberos) -Authentifizierung

Wenn Sie diese Authentifizierungsmethode wählen, können Sie Kerberos-Eigenschaften angeben.

Kerberos-Keytab

Wählen Sie den Speicherort der Keytab-Datei aus. Ein Keytab speichert Langzeitschlüssel für ein oder mehrere Prinzipale. Weitere Informationen finden Sie in der MITKerberos-Dokumentation: Keytab.

Kerberos krb5.conf-Datei

Wählen Sie die krb5.conf-Datei aus. Dieser enthält den Standardbereich (ein logisches Netzwerk, ähnlich einer Domäne, das eine Gruppe von Systemen unter demselben Bereich definiertKDC) und den Standort des Servers. KDC Weitere Informationen finden Sie in der MITKerberos-Dokumentation: krb5.conf.

Kerberos-Prinzipal und Kerberos-Dienstname

Geben Sie den Kerberos-Prinzipal und den Dienstnamen ein. Weitere Informationen finden Sie in der Kerberos-Dokumentation: MITKerberos-Prinzipal.

SASL/- -512-Authentifizierung SCRAM SHA

Wenn Sie diese Authentifizierungsmethode wählen, können Sie Anmeldeinformationen zur Authentifizierung angeben.

AWS Secrets Manager

Suchen Sie im Suchfeld nach Ihrem Token, indem Sie den Namen oder ARN eingeben.

Benutzername und Passwort des Anbieters direkt

Suchen Sie im Suchfeld nach Ihrem Token, indem Sie den Namen oder eingebenARN.

SSLClient-Authentifizierung

Wenn Sie diese Authentifizierungsmethode wählen, können Sie den Standort des Kafka-Client-Keystores auswählen, indem Sie Amazon S3 durchsuchen. Optional können Sie das Kennwort für den Kafka-Client-Keystore und das Kafka-Client-Schlüsselkennwort eingeben.

IAMAuthentifizierung

Diese Authentifizierungsmethode erfordert keine zusätzlichen Spezifikationen und ist nur anwendbar, wenn die Streaming-Quelle MSK Kafka ist.

SASL/Authentifizierung PLAIN

Wenn Sie diese Authentifizierungsmethode wählen, können Sie Authentifizierungsdaten angeben.

Erstellen einer Data-Catalog-Tabelle für eine Streaming-Quelle

Eine Datenkatalogtabelle, die die Eigenschaften des Quelldatenstroms, einschließlich des Datenschemas, angibt, kann manuell für eine Streaming-Quelle erstellt werden. Diese Tabelle wird als Datenquelle für den ETL Streaming-Job verwendet.

Wenn Sie das Schema der Daten im Quelldatenstrom nicht kennen, können Sie die Tabelle ohne Schema erstellen. Wenn Sie dann den ETL Streaming-Job erstellen, können Sie den AWS Glue Funktion zur Schemaerkennung. AWS Glue bestimmt das Schema anhand der Streaming-Daten.

Verwenden der AWS Glue Konsole, die AWS Command Line Interface (AWS CLI) oder die AWS Glue APIum die Tabelle zu erstellen. Informationen zum manuellen Erstellen einer Tabelle mit dem AWS Glue Konsole finden Sie unterErstellen von Tabellen.

Anmerkung

Sie können die AWS Lake Formation Konsole nicht verwenden, um die Tabelle zu erstellen. Sie müssen die AWS Glue console.

Beachten Sie auch die folgenden Informationen für Streaming-Quellen im Avro-Format oder für Protokolldaten, auf die Sie Grok-Muster anwenden können.

Kinesis-Datenquelle

Stellen Sie beim Erstellen der Tabelle die folgenden ETL Streaming-Eigenschaften ein (Konsole).

Quelltyp

Kinesis

Für eine Kinesis-Quelle im selben Konto:
Region

Die AWS Region, in der sich der Amazon Kinesis Data Streams Streams-Service befindet. Die Region und der Kinesis-Streamname werden zusammen in einen Stream ARN übersetzt.

Beispiel: https://kinesis.us-east-1.amazonaws.com

Kinesis-Streamname

Der Stream-Name wie unter Erstellen eines Streams im Entwicklerhandbuch zu Amazon Kinesis Data Streams beschrieben.

Informationen zu einer Kinesis-Quelle in einem anderen Konto finden Sie in diesem Beispiel zum Einrichten der Rollen und Richtlinien, um den kontenübergreifenden Zugriff zu ermöglichen. Konfigurieren Sie diese Einstellungen:
Stream ARN

Der ARN des Kinesis-Datenstroms, bei dem der Verbraucher registriert ist. Weitere Informationen finden Sie unter Amazon Resource Names (ARNs) und AWS Service Namespaces in der. Allgemeine AWS-Referenz

Übernommene Rolle ARN

Der Amazon-Ressourcenname (ARN) der Rolle, die übernommen werden soll.

Sitzungsname (optional)

Ein Bezeichner für die Sitzung der angenommenen Rolle.

Verwenden Sie den Namen der Rollensitzung, um eine Sitzung eindeutig zu identifizieren, wenn dieselbe Rolle von verschiedenen Prinzipalen oder aus unterschiedlichen Gründen übernommen wird. In kontenübergreifenden Szenarien ist der Name der Rollensitzung für das Konto sichtbar und kann von dem Konto protokolliert werden, dem die Rolle gehört. Der Name der Rollensitzung wird auch in der ARN des angenommenen Rollenprinzipals verwendet. Das bedeutet, dass bei nachfolgenden kontenübergreifenden API Anfragen, bei denen die temporären Sicherheitsanmeldedaten verwendet werden, der Name der Rollensitzung dem externen Konto in den AWS CloudTrail Protokollen offengelegt wird.

So legen Sie ETL Streaming-Eigenschaften für Amazon Kinesis Data Streams fest (AWS Glue APIoder AWS CLI)
  • Um ETL Streaming-Eigenschaften für eine Kinesis-Quelle in demselben Konto einzurichten, geben Sie die endpointUrl Parameter streamName und in der StorageDescriptor Struktur der CreateTable API Operation oder des create_table CLI Befehls an.

    "StorageDescriptor": { "Parameters": { "typeOfData": "kinesis", "streamName": "sample-stream", "endpointUrl": "https://kinesis.us-east-1.amazonaws.com" } ... }

    Oder geben Sie den streamARN an.

    "StorageDescriptor": { "Parameters": { "typeOfData": "kinesis", "streamARN": "arn:aws:kinesis:us-east-1:123456789:stream/sample-stream" } ... }
  • Um ETL Streaming-Eigenschaften für eine Kinesis-Quelle in einem anderen Konto einzurichten, geben Sie die ParameterstreamARN, awsSTSRoleARN und awsSTSSessionName (optional) in der StorageDescriptor Struktur in der CreateTable API Operation oder im create_table CLI Befehl an.

    "StorageDescriptor": { "Parameters": { "typeOfData": "kinesis", "streamARN": "arn:aws:kinesis:us-east-1:123456789:stream/sample-stream", "awsSTSRoleARN": "arn:aws:iam::123456789:role/sample-assume-role-arn", "awsSTSSessionName": "optional-session" } ... }

Kafka-Datenquelle

Stellen Sie beim Erstellen der Tabelle die folgenden ETL Streaming-Eigenschaften ein (Konsole).

Quelltyp

Kafka

Für eine Kafka-Quelle:
Themenname

Der Topic-Name wie in Kafka angegeben.

Verbindung

Importieren in &S3; AWS Glue Verbindung, die auf eine Kafka-Quelle verweist, wie unter beschriebenErstellen eines AWS Glue Verbindung für einen Apache Kafka-Datenstrom.

AWS Glue Quelle der Schemaregistrierungstabelle

Zur Verwendung AWS Glue Schemaregistrierung für Streaming-Jobs: Folgen Sie den Anweisungen unter Anwendungsfall: AWS Glue Data Catalog So erstellen oder aktualisieren Sie eine Schemaregistry-Tabelle.

Derzeit AWS Glue Streaming unterstützt nur das Avro-Format von Glue Schema Registry, bei dem die Schemainferenz auf eingestellt ist. false

Hinweise und Einschränkungen für Avro-Streaming-Quellen

Die folgenden Hinweise und Einschränkungen gelten für Streaming-Quellen im Avro-Format:

  • Wenn die Schemaerkennung aktiviert ist, muss das Avro-Schema in die Nutzlast einbezogen werden. Wenn diese Option deaktiviert ist, sollte die Nutzlast nur Daten enthalten.

  • Einige Avro-Datentypen werden in Dynamic Frames nicht unterstützt. Sie können diese Datentypen nicht angeben, wenn Sie das Schema auf der Seite Schema definieren im Assistenten zur Tabellenerstellung im AWS Glue console. Während der Schemaerkennung werden nicht unterstützte Typen im Avro-Schema wie folgt in unterstützte Typen konvertiert:

    • EnumType => StringType

    • FixedType => BinaryType

    • UnionType => StructType

  • Wenn Sie das Tabellenschema auf der Seite Definieren eines Schemas in der Konsole definieren, ist der implizierte Stammelementtyp für das Schema record. Wenn Sie einen anderen Stammelementtyp als record möchten, zum Beispiel array oder map, können Sie das Schema nicht mithilfe der Seite Definieren eines Schemas angeben. Stattdessen müssen Sie diese Seite überspringen und das Schema entweder als Tabelleneigenschaft oder innerhalb des ETL Skripts angeben.

    • Um das Schema in den Tabelleneigenschaften anzugeben, füllen Sie den Assistenten zum Erstellen von Tabellen aus, bearbeiten Sie die Tabellendetails und fügen Sie unter Tabelleneigenschaften ein neues Schlüssel-Wert-Paar hinzu. Verwenden Sie den Schlüssel avroSchema und geben Sie ein JSON Schemaobjekt für den Wert ein, wie im folgenden Screenshot gezeigt.

      Unter der Überschrift Tabelleneigenschaften gibt es zwei Spalten mit Textfeldern. Die linke Spaltenüberschrift ist Schlüssel und die rechte Spaltenüberschrift ist Wert. Das key/value pair in the first row is classification/avro. The key/value Paar in der zweiten Zeile istavroSchema/{"type“ :"array“, "items“ :"string "}.
    • Um das Schema im ETL Skript anzugeben, ändern Sie die datasource0 Zuweisungsanweisung und fügen Sie den avroSchema Schlüssel zum additional_options Argument hinzu, wie in den folgenden Python- und Scala-Beispielen gezeigt.

      Python
      SCHEMA_STRING = ‘{"type":"array","items":"string"}’ datasource0 = glueContext.create_data_frame.from_catalog(database = "database", table_name = "table_name", transformation_ctx = "datasource0", additional_options = {"startingPosition": "TRIM_HORIZON", "inferSchema": "false", "avroSchema": SCHEMA_STRING})
      Scala
      val SCHEMA_STRING = """{"type":"array","items":"string"}""" val datasource0 = glueContext.getCatalogSource(database = "database", tableName = "table_name", redshiftTmpDir = "", transformationContext = "datasource0", additionalOptions = JsonOptions(s"""{"startingPosition": "TRIM_HORIZON", "inferSchema": "false", "avroSchema":"$SCHEMA_STRING"}""")).getDataFrame()

Anwenden von Grok-Mustern auf Streaming-Quellen

Sie können einen ETL Streaming-Job für eine Protokolldatenquelle erstellen und Grok-Muster verwenden, um die Protokolle in strukturierte Daten zu konvertieren. Der ETL Job verarbeitet die Daten dann als strukturierte Datenquelle. Sie geben die Grok-Muster an, die angewendet werden sollen, wenn Sie die Data-Catalog-Tabelle für die Streaming-Quelle erstellen.

Informationen zu Grok-Mustern und benutzerdefinierten Musterzeichenfolgenwerten finden Sie unter Angepasste Grok-Classifier schreiben.

So fügen Sie der Data-Catalog-Tabelle (Konsole) Grok-Muster hinzu
  • Verwenden Sie den Assistenten zum Erstellen von Tabellen, und erstellen Sie die Tabelle mit den in Erstellen einer Data-Catalog-Tabelle für eine Streaming-Quelle angegebenen Parametern. Geben Sie als Datenformat Grok an, füllen Sie das Feld Grok-Muster aus und fügen Sie optional benutzerdefinierte Muster unter Benutzerdefinierte Muster (optional) hinzu.

    *

    Drücken Sie nach jedem benutzerdefinierten Muster auf Eingabe.

Um Grok-Muster zur Datenkatalogtabelle hinzuzufügen (AWS Glue APIoder AWS CLI)
  • Fügen Sie den GrokPattern Parameter und optional den CustomPatterns Parameter zur CreateTable API Operation oder zum create_table CLI Befehl hinzu.

    "Parameters": { ... "grokPattern": "string", "grokCustomPatterns": "string", ... },

    Drücken Sie grokCustomPatterns als String aus und verwenden Sie „\ n“ als Trennzeichen zwischen Mustern.

    Nachfolgend finden Sie ein Beispiel für die Angabe dieser Parameter.

    "parameters": { ... "grokPattern": "%{USERNAME:username} %{DIGIT:digit:int}", "grokCustomPatterns": "digit \d", ... }

Definieren von Auftragseigenschaften für einen ETL Streaming-Job

Wenn Sie einen ETL Streaming-Job definieren in AWS Glue Geben Sie in der Konsole die folgenden streamspezifischen Eigenschaften an. Beschreibungen weiterer Auftragseigenschaften finden Sie unter Definieren von Auftragseigenschaften für Spark-Aufträge.

IAM-Rolle

Geben Sie die Rolle AWS Identity and Access Management (IAM) an, die für die Autorisierung von Ressourcen verwendet wird, die für die Ausführung des Jobs, den Zugriff auf Streaming-Quellen und den Zugriff auf Zieldatenspeicher verwendet werden.

Für den Zugriff auf Amazon Kinesis Data Streams hängen Sie die AmazonKinesisFullAccess AWS verwaltete Richtlinie an die Rolle an oder fügen Sie eine ähnliche IAM Richtlinie hinzu, die einen detaillierteren Zugriff ermöglicht. Beispielrichtlinien finden Sie unter Steuern des Zugriffs auf Amazon Kinesis Data Streams Streams-Ressourcen mithilfe IAM.

Weitere Informationen zu Berechtigungen für die Ausführung von Jobs finden Sie in AWS Glue, finden Sie unter Identity and Access Management für AWS Glue.

Typ

Wählen Sie Spark streaming (Spark-Streaming).

AWS Glue version

Das Tool AWS Glue Version bestimmt die Versionen von Apache Spark und Python oder Scala, die für den Job verfügbar sind. Wählen Sie eine Auswahl, die die für den Job verfügbare Version von Python oder Scala angibt. AWS Glue Version 2.0 mit Python-3-Unterstützung ist die Standardversion für ETL Streaming-Jobs.

Wartungsfenster

Gibt ein Fenster an, in dem ein Streaming-Job neu gestartet werden kann. Siehe Wartungsfenster für AWS Glue Streaming.

Zeitüberschreitung von Aufträgen

Geben Sie optional eine Dauer in Minuten ein. Der Standardwert ist leer.

  • Streaming-Jobs müssen einen Timeout-Wert von weniger als 7 Tagen oder 10080 Minuten haben.

  • Wenn der Wert leer gelassen wird, wird der Job nach 7 Tagen neu gestartet, sofern Sie kein Wartungsfenster eingerichtet haben. Wenn Sie ein Wartungsfenster eingerichtet haben, wird der Job während des Wartungsfensters nach 7 Tagen neu gestartet.

Datenquelle

Geben Sie die Tabelle an, die Sie in Erstellen einer Data-Catalog-Tabelle für eine Streaming-Quelle erstellt haben.

Datenziel

Führen Sie eine der folgenden Aktionen aus:

  • Wählen Sie Create tables in your data target (Tabellen in eigenem Datenziel erstellen) und geben Sie die folgenden Eigenschaften für das Datenziel an.

    Datastore

    Wählen Sie Amazon S3 oderJDBC.

    Format

    Wählen Sie ein beliebiges Format aus. Für das Streaming werden alle unterstützt.

  • Wählen Sie Tabellen im Datenkatalog verwenden und Ihr Datenziel aktualisieren und wählen Sie eine Tabelle für einen JDBC Datenspeicher aus.

Ausgabeschemadefinition

Führen Sie eine der folgenden Aktionen aus:

  • Wählen Sie Schema für jeden Datensatz automatisch erkennen, um die Schemaerkennung zu aktivieren. AWS Glue bestimmt das Schema anhand der Streaming-Daten.

  • Klicken Sie auf Specify output schema for all records (Ausgabeschema für alle Datensätze angeben), um das Ausgabeschema mithilfe der Transformation „Apply Mapping“ (Mapping anwenden) zu definieren.

Script

Geben Sie optional Ihr eigenes Skript an oder ändern Sie das generierte Skript, um Operationen auszuführen, die von der Apache-Spark-Engine Structured Streaming unterstützt werden. Informationen zu den verfügbaren Vorgängen finden Sie unter Operationen beim Streamen DataFrames /Datasets.

ETLHinweise und Einschränkungen beim Streamen

Beachten Sie die folgenden Hinweise und Einschränkungen:

  • Automatische Dekomprimierung für AWS Glue ETLStreaming-Jobs sind nur für die unterstützten Komprimierungstypen verfügbar. Beachten Sie auch das Folgende:

    • Das gerahmte Snappy bezieht sich auf das offizielle Rahmen-Format für Snappy.

    • Deflate wird in der Glue-Version 3.0 unterstützt, nicht in der Glue-Version 2.0.

  • Wenn Sie die Schemaerkennung verwenden, können Sie keine Joins von Streamingdaten ausführen.

  • AWS Glue ETLStreaming-Jobs unterstützen nicht den Union-Datentyp für AWS Glue Schemaregistrierung im Avro-Format.

  • Ihr ETL Skript kann verwenden AWS GlueDie integrierten Transformationen und die systemeigenen Transformationen von Apache Spark Structured Streaming. Weitere Informationen finden Sie unter Operations on streaming DataFrames /Datasets auf der Apache Spark-Website oder. AWS Glue PySpark transformiert Referenz

  • AWS Glue ETLStreaming-Jobs verwenden Checkpoints, um den Überblick über die gelesenen Daten zu behalten. Daher wird ein Auftrag, der angehalten und neu gestartet wurde, an dem Punkt fortgesetzt, an dem er im Stream beendet wurde. Wenn Sie Daten neu verarbeiten möchten, können Sie den Checkpoint-Ordner löschen, auf den im Skript verwiesen wird.

  • Auftragslesezeichen werden nicht unterstützt.

  • Zur Verwendung des erweiterten Fan-Out-Features von Kinesis Data Streams in Ihrem Auftrag lesen Sie Verwendung von erweitertem Fan-Out in Kinesis-Streaming-Aufträgen.

  • Wenn Sie eine Datenkatalogtabelle verwenden, die aus erstellt wurde AWS Glue Wenn in der Schemaregistrierung eine neue Schemaversion verfügbar ist, müssen Sie wie folgt vorgehen, um das neue Schema widerzuspiegeln:

    1. Stoppen Sie die mit der Tabelle verknüpften Aufträge.

    2. Aktualisieren Sie das Schema für die Data Catalog-Tabelle.

    3. Starten Sie die mit der Tabelle verknüpften Aufträge neu.