AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Wie erkennt der AWS Glue-Crawler das Schema?
Wenn ich einen AWS Glue-Crawler ausführe, erstellt der Crawler mehrere Tabellen mit Schemata, die ähnlich aussehen. Ich möchte wissen, wie der Crawler das Schema erkennt.
Lösung
Schema-Erkennung im Crawler
Beim ersten Ausführen des Crawlers liest der Crawler entweder die ersten 1.000 Datensätze oder das erste Megabyte jeder Datei, um das Schema abzuleiten. Die Datenmenge, die der Crawler liest, hängt vom Dateiformat und der Verfügbarkeit eines gültigen Datensatzes ab. Wenn die Eingabedatei beispielsweise eine JSON-Datei ist, liest der Crawler das erste 1 MB der Datei, um das Schema abzuleiten.
Wenn der Crawler innerhalb des ersten 1 MB der Datei einen gültigen Datensatz liest, leitet der Crawler das Schema ab. Wenn der Crawler das Schema nach 1 MB nicht ableiten kann, liest er weiterhin bis zu 10 MB der Datei in Schritten von 1 MB.
Bei CSV-Dateien liest der Crawler entweder die ersten 1000 Datensätze oder das erste 1 MB der Daten, je nachdem, was zuerst eintritt. Bei Parquet-Dateien leitet der Crawler das Schema direkt aus der Datei ab. Der Crawler vergleicht die Schemata, die er aus allen Unterordnern und Dateien abgeleitet hat, und erstellt dann eine oder mehrere Tabellen.
Wenn ein Crawler eine Tabelle erstellt, prüft er die folgenden Faktoren:
- Die Daten haben dasselbe Format, denselben Komprimierungstyp und denselben enthaltenen Pfad
- Wie ähnlich die Schemata in Bezug auf die Partitionsschwelle und die Anzahl der verschiedenen Schemata sind
Damit ein Crawler Schemata als ähnlich betrachtet, müssen die folgenden Bedingungen erfüllt sein:
- Die Partitionsschwelle ist höher als 0,7 (70 %).
- Die maximale Anzahl verschiedener Schemata, in diesem Kontext auch „Cluster“ genannt, überschreitet nicht fünf.
Der Crawler leitet das Schema auf Ordnerebene ab und vergleicht die Schemata über alle Ordner hinweg. Wenn die verglichenen Schemata mit einer Partitionsschwelle übereinstimmen, die höher als 70 % ist, bezeichnet der Crawler die Schemata als Partitionen einer Tabelle. Wenn sie nicht übereinstimmen, erstellt der Crawler eine Tabelle für jeden Ordner, was zu einer höheren Anzahl von Tabellen führt.
Beispielszenarien
Beispiel 1
Im folgenden Beispiel enthält der Ordner DOC-EXAMPLE-FOLDER1 10 Dateien, acht Dateien mit dem Schema SCH_A und zwei Dateien mit SCH_B.
Die Ergebnisse ähneln dem folgenden Beispiel:
SHC_A:
{ "id": 1, "first_name": "John", "last_name": "Doe"}{ "id": 2, "first_name": "Li", "last_name": "Juan"}
SCH_B:
{"city":"Dublin","country":"Ireland"}{"city": "Paris","country":"France"}
Wenn der Crawler den Amazon Simple Storage Service (Amazon S3)-Pfad s3://DOC-EXAMPLE-FOLDER1 durchsucht, erstellt er eine Tabelle. Die Tabelle umfasst Spalten sowohl für Schema SCH_A als auch SCH_B. Dies liegt daran, dass 80 % der Dateien im Pfad zum Schema SCH_A und 20 % der Dateien zum Schema SCH_B gehören. Das Schema erfüllt also den Wert der Partitionsschwelle. Zudem überschreitet die Anzahl der verschiedenen Schemata nicht die Anzahl der Cluster und das Schema überschreitet nicht das Limit für die Clustergröße.
Beispiel 2
Im folgenden Beispiel enthält der Ordner DOC-EXAMPLE-FOLDER2 10 Dateien, sieben Dateien mit dem Schema SCH_A und drei Dateien mit dem Schema SCH_B.
Wenn der Crawler den Amazon S3-Pfad s3://DOC-EXAMPLE-FOLDER2 durchsucht, erstellt er eine Tabelle für jede Datei. Dies liegt daran, dass 70 % der Dateien zum Schema SCH_A und 30 % der Dateien zum Schema SCH_B gehören. Das Schema erfüllt also nicht die Partitionsschwelle.
Hinweis: Um Informationen über die Tabellen zu erhalten, überprüfe die Crawler-Protokolle in Amazon CloudWatch.
Crawler-Optionen
Wenn du das Verhalten deines Crawlers anpasst, kannst du eine der folgenden Optionen auswählen:
- Verwende die Option Create a single schema for each S3 path (Ein einzelnes Schema für jeden S3-Pfad erstellen), um den Crawler so zu konfigurieren, dass er die Schema-Ähnlichkeit ignoriert und ein einziges Schema erstellt.
Hinweis: Wenn der Crawler eine Dateninkompatibilität erkennt, erstellt er dennoch mehrere Tabellen. - Verwende die Crawler-Option auf Tabellenebene, um anzugeben, wo sich die Tabellen befinden und wie der Crawler die Partitionen erstellen soll.
Weitere Informationen
Using crawlers to populate the Data Catalog (Verwenden von Crawlern zum Auffüllen des Data Catalog)
Customizing crawler behavior (Crawler-Verhalten anpassen)
Defining and managing classifiers (Definition und Verwaltung von Klassifizierern)

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr