Klassifikatoren definieren und verwalten - 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.

Klassifikatoren definieren und verwalten

Ein Classifier liest die Daten in einem Datenspeicher. Wenn er das Format der Daten erkennt, erzeugt er ein Schema. Der Classifier gibt auch eine Zahl für die Gewissheit zurück, um anzugeben, wie sicher die Formaterkennung war.

AWS Glue bietet eine Reihe vordefinierter Classifier, Sie können aber auch benutzerdefinierte Classifier erstellen. AWS Glue ruft zuerst benutzerdefinierte Classifier auf, und zwar in der Reihenfolge, die Sie in Ihrer Crawler-Definition angeben. Je nach den Ergebnissen, die von benutzerdefinierten Classifiern zurückgegeben werden, kann AWS Glue auch integrierte Classifier aufrufen. Wenn ein Classifier während der Verarbeitung certainty=1.0 zurückgibt, bedeutet dies, dass es zu 100 % sicher ist, dass er das richtige Schemas erstellen kann. AWS Glue verwendet dann die Ausgabe dieses Classifiers.

Wenn kein Classifier certainty=1.0 zurückgibt, verwendet AWS Glue die Ausgabe des Classifiers mit der höchsten Gewissheit. Wenn kein Classifier eine Gewissheit von über 0.0 zurückgibt, gibt AWS Glue die Standardklassifikationszeichenfolge UNKNOWN zurück.

Wann verwende ich einen Classifier?

Sie verwenden Classifier, wenn Sie einen Datenspeicher durchsuchen, um Metadatentabellen in AWS Glue Data Catalog zu definieren. Sie können Ihren Crawler mit einer geordneten Gruppe von Classifiern einrichten. Wenn der Crawler einen Classifier aufruft, bestimmt dieser, ob die Daten erkannt werden. Wenn der Classifier die Daten nicht erkennen kann oder nicht 100 %ig sicher ist, ruft der Crawler den nächsten Classifier in der Liste auf, um festzustellen ob dieser die Daten erkennen kann.

Weitere Informationen zur Erstellung eines Classifiers mit der AWS Glue-Konsole finden Sie unter Klassifikatoren mit der AWS Glue Konsole erstellen.

Benutzerdefinierte Classifier

Die Ausgabe eines Classifiers enthält eine Zeichenfolge, die die Klassifizierung oder das Format der Datei (z. B. json) sowie das Schema der Datei angibt. Bei einem benutzerdefinierten Classifier definieren Sie die Logik für die Erstellung des Schemas basierend auf dem Classifier-Typ. Classifier-Typen umfassen das Festlegen von Schemas basierend auf Grok-Mustern, XML-Tags und JSON-Pfaden.

Wenn Sie eine Classifier-Definition ändern, werden Daten, die zuvor mit dem Crawler durchsucht wurden, nicht neu klassifiziert. Ein Crawler führt eine Nachverfolgung zuvor durchsuchter Daten durch. Neue Daten werden mit dem aktualisierten Classifier klassifiziert. Dies kann ein aktualisiertes Schema zur Folge haben. Hat sich das Schema Ihrer Daten weiterentwickelt, aktualisieren Sie den Classifier, um allen Schemaänderungen Rechnung zu tragen, wenn Ihr Crawler ausgeführt wird. Zur Neuklassifizierung von Daten zur Korrektur eines fehlerhaften Classifiers erstellen Sie einen neuen Crawler mit dem aktualisierten Classifier.

Weitere Informationen zum Erstellen von benutzerdefinierten Classifiern in AWS Glue finden Sie unter Schreiben von benutzerdefinierten Klassifikatoren für verschiedene Datenformate.

Anmerkung

Wenn Ihr Datenformat von einem der integrierten Classifier erkannt wird, müssen Sie keinen benutzerdefinierten Classifier erstellen.

Integrierte Klassifikatoren

AWS Glue bietet integrierte Classifier für verschiedene Formate, darunter JSON, CSV, Web-Protokolle und viele Datenbanksysteme.

Wenn AWS Glue keinen benutzerdefinierten Classifier findet, der mit 100%iger Sicherheit zum Eingabedatenformat passt, ruft es die integrierten Classifier in der Reihenfolge auf, die in der folgenden Tabelle gezeigt wird. Die integrierten Classifier geben ein Ergebnis zurück, um anzugeben, ob das Format übereinstimmt (certainty=1.0) oder nicht übereinstimmt (certainty=0.0). Der erste Classifier mit certainty=1.0 stellt die Klassifizierungszeichenfolge und das Schema für eine Metadatentabelle in Ihrem Data Catalog bereit.

Classifier-Typ Klassifizierungszeichenfolge Hinweise
Apache Avro avro Liest das Schema am Anfang der Datei, um das Format zu bestimmen.
Apache ORC orc Liest die Metadaten der Datei zu Bestimmung des Formats.
Apache Parquet parquet Liest das Schema am Ende der Datei, um das Format zu bestimmen.
JSON json Liest den Anfang der Datei, um das Format zu bestimmen.
Binäres JSON bson Liest den Anfang der Datei, um das Format zu bestimmen.
XML xml Liest den Anfang der Datei, um das Format zu bestimmen. AWS Glue bestimmt das Tabellenschema basierend auf den XML-Tags im Dokument.

Weitere Informationen zum Erstellen eines benutzerdefinierten XML-Classifiers zur Angabe von Zeilen in dem Dokument finden Sie unter Angepasste XML-Classifier schreiben.

Amazon Ion ion Liest den Anfang der Datei, um das Format zu bestimmen.
Kombiniertes Apache-Protokoll combined_apache Legt Protokollformate über ein Grok-Muster fest.
Apache-Protokoll apache Legt Protokollformate über ein Grok-Muster fest.
Linux-Kernel-Protokoll linux_kernel Legt Protokollformate über ein Grok-Muster fest.
Microsoft-Protokoll microsoft_log Legt Protokollformate über ein Grok-Muster fest.
Ruby-Protokoll ruby_logger Liest den Anfang der Datei, um das Format zu bestimmen.
Squid 3.x-Protokoll squid Liest den Anfang der Datei, um das Format zu bestimmen.
Redis-Überwachungsprotokoll redismonlog Liest den Anfang der Datei, um das Format zu bestimmen.
Redis-Protokoll redislog Liest den Anfang der Datei, um das Format zu bestimmen.
CSV csv Prüft auf die folgenden Trennzeichen: Komma (,), Verkettungszeichen (|), Tabulator (\t), Semikolon (;) und Strg-A (\u0001). Strg-A ist das Unicode-Steuerzeichen für Start Of Heading.
Amazon Redshift redshift Verwendet eine JDBC-Verbindung zum Importieren von Metadaten.
MySQL mysql Verwendet eine JDBC-Verbindung zum Importieren von Metadaten.
PostgreSQL postgresql Verwendet eine JDBC-Verbindung zum Importieren von Metadaten.
Oracle-Datenbank oracle Verwendet eine JDBC-Verbindung zum Importieren von Metadaten.
Microsoft SQL Server sqlserver Verwendet eine JDBC-Verbindung zum Importieren von Metadaten.
Amazon-DynamoDB dynamodb Liest Daten aus der DynamoDB-Tabelle.

Dateien in den folgenden komprimierten Formaten können klassifiziert werden:

  • ZIP (unterstützt für Archive, die nur eine einzige Datei enthalten). Beachten Sie, dass Zip in anderen Services nicht gut unterstützt wird (wegen des Archivs).

  • BZIP

  • GZIP

  • LZ4

  • Snappy (unterstützt sowohl für Standard- und Hadoop-native Snappy-Formate)

Integrierter CSV-Classifier

Der integrierte CSV-Classifier analysiert CSV-Dateiinhalte, um das Schema für eine AWS Glue-Tabelle zu bestimmen. Dieser Classifier prüft auf folgende Trennzeichen:

  • Komma (,)

  • Pipe (|)

  • Tab (\t)

  • Semikolon (;)

  • Strg-A (\ u0001)

    Strg-A ist das Unicode-Steuerzeichen für Start Of Heading.

Damit die Tabelle als CSV klassifiziert wird, muss das Tabellenschema mindestens zwei Spalten und zwei Datenzeilen aufweisen. Der CSV-Classifier nutzt eine Reihe von Heuristiken, um zu ermitteln, ob ein Header in einer bestimmten Datei vorhanden ist. Kann der Classifier keinen Header in der ersten Datenzeile feststellen, werden Spaltenüberschriften als col1, col2 col3 und so weiter angezeigt. Der integrierte CSV-Classifier bestimmt, ob ein Header durch Auswertung der folgenden Merkmale der Datei abgeleitet wird:

  • Jede Spalte in einem potenziellen Header analysiert einen STRING-Datentyp.

  • Mit Ausnahme der letzten Spalte hat jede Spalte in einem potenziellen Header einen Inhalt mit weniger als 150 Zeichen. Damit ein abschließendes Trennzeichen möglich ist, kann die letzte Spalte in der gesamten Datei leer sein.

  • Jede Spalte in einem potenziellen Header muss die AWS Glue-regex-Anforderungen für einen Spaltennamen erfüllen.

  • Die Kopfzeile muss sich ausreichend von den anderen Datenzeilen unterscheiden. Zu diesem Zweck muss mindestens eine Zeile nicht als STRING-Type analysiert werden. Wenn alle Spalten vom Typ STRING sind, unterscheidet sich die erste Datenzeile nicht ausreichend genug von den folgenden Zeilen, um als Header verwendet werden zu können.

Anmerkung

Wenn der integrierte CSV-Classifier Ihre AWS Glue-Tabelle nicht wie gewünscht erstellt, können Sie eine der folgenden Alternativen versuchen:

  • Ändern Sie die Spaltennamen im Data Catalog, setzen Sie SchemaChangePolicy auf LOG und legen Sie die Partitionsausgabekonfiguration für zukünftige Crawler-Ausführungen auf InheritFromTable fest.

  • Erstellen Sie einen benutzerdefinierten Grok-Classifier, um die Daten zu analysieren und die von Ihnen gewünschten Spalten zuzuweisen.

  • Der integrierte CSV-Classifier erstellt Tabellen, die auf LazySimpleSerDe als Serialisierungsbibliothek verweisen. Dies ist eine gute Möglichkeit für die Typinferenz. Wenn die CSV-Daten jedoch Zeichenketten in Anführungszeichen enthalten, bearbeiten Sie die Tabellendefinition und ändern Sie die SerDe Bibliothek inOpenCSVSerDe. Passen Sie alle abgeleiteten Typen an STRING an, setzen Sie SchemaChangePolicy auf LOG und legen Sie die Partitionsausgabekonfiguration für zukünftige Crawler-Ausführungen auf InheritFromTable fest. Weitere Informationen zu SerDe Bibliotheken finden Sie unter SerDe Referenz im Amazon Athena Athena-Benutzerhandbuch.