Wird verwendet AWS Glue , um eine Verbindung zu Datenquellen in Amazon S3 herzustellen - Amazon Athena

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.

Wird verwendet AWS Glue , um eine Verbindung zu Datenquellen in Amazon S3 herzustellen

Athena kann mithilfe von eine Verbindung zu Ihren in Amazon S3 gespeicherten Daten herstellen AWS Glue Data Catalog , um Metadaten wie Tabellen- und Spaltennamen zu speichern. Nachdem die Verbindung hergestellt wurde, werden Ihre Datenbanken, Tabellen und Ansichten im Athena-Abfrage-Editor angezeigt.

Um die zu verwendenden Schemainformationen AWS Glue zu definieren, können Sie einen AWS Glue Crawler erstellen, der die Informationen automatisch abruft, oder Sie können manuell eine Tabelle hinzufügen und die Schemainformationen eingeben.

Einen Crawler AWS Glue erstellen

Sie können einen Crawler erstellen, indem Sie in der Athena-Konsole beginnen und dann die AWS Glue -Konsole in integrierter Weise verwenden. Wenn Sie den Crawler erstellen, geben Sie einen Datenspeicherort in Amazon S3 an, der gecrawlt werden soll.

Um einen Crawler von der AWS Glue Athena-Konsole aus zu erstellen
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Wählen Sie im Abfrage-Editor neben Tables and views (Tabellen und Ansichten) Create (Erstellen) und danach AWS Glue -Crawler aus.

  3. Führen Sie auf der AWS Glue-Konsolenseite Add crawler (Crawler hinzufügen) die Schritte zum Erstellen eines Crawlers aus. Weitere Informationen finden Sie unter Verwenden von AWS Glue Crawlern in diesem Handbuch und Auffüllen des AWS Glue Data Catalog im Entwicklerhandbuch.AWS Glue

Anmerkung

Athena erkennt keine Ausschlussmuster, die Sie für einen AWS Glue Crawler angeben. Wenn Sie beispielsweise über einen Amazon-S3-Bucket verfügen, der sowohl .csv- als auch .json-Dateien enthält und Sie die .json-Dateien vom Crawler ausschließen, fragt Athena beide Dateigruppen ab. Um dies zu vermeiden, platzieren Sie die Dateien, die Sie ausschließen möchten, an einem anderen Speicherort.

Hinzufügen einer Tabelle mit einem Formular

Das folgende Verfahren zeigt Ihnen, wie Sie die Athena-Konsole verwenden, um eine Tabelle mithilfe des Formulars Create Table From S3 bucket data (Erstellen einer Tabelle aus S3-Bucket-Daten) hinzuzufügen.

So fügen Sie eine Tabelle hinzu und geben Schemainformationen mithilfe eines Formulars ein
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Wählen Sie im Abfrage-Editor neben Tables and views (Tabellen und Ansichten) Create (Erstellen) und danach S3 bucket data (S3-Bucket-Daten) aus.

  3. Geben im Formular Create Table From S3 bucket data (Tabelle aus S3-Bucket-Daten erstellen) für Table name (Tabellenname) einen Namen für die Tabelle ein.

  4. Wählen Sie für Database configuration (Datenbankkonfiguration) eine vorhandene Datenbank aus oder erstellen Sie eine neue.

  5. Geben Sie unter Location of Input Data Set (Speicherort des Eingabedatensatzes) den Pfad in Amazon S3 dem Ordner an, der den zu verarbeitende Datensatz enthält. Fügen Sie keinen Dateinamen in den Pfad ein. Athena scannt alle Dateien in dem von Ihnen angegebenen Ordner. Wenn Ihre Daten bereits partitioniert sind (z. B.

    s3://DOC-EXAMPLE-BUCKET/logs/year=2004/month=12/day=11/), geben Sie nur den Basispfad ein (z. B. s3://DOC-EXAMPLE-BUCKET/logs/).

  6. Wählen Sie für Data Format (Datenformat) eine der folgenden Optionen:

    • Wählen Sie als Table type (Tabellentyp) Apache Hive, Apache Iceberg oder Delta Lake aus. Athena verwendet den Tabellentyp Apache Hive als Standard. Informationen zum Abfragen von Apache-Iceberg-Tabellen in Athena finden Sie unter Apache-Iceberg-Tabellen verwenden. Informationen zur Verwendung von Delta-Lake-Tabellen in Athena finden Sie unter Delta-Lake-Tabellen von Linux Foundation abfragen.

    • Wählen Sie für File format (Dateiformat) das Datei- oder Protokollformat aus, in dem Ihre Daten vorliegen.

      • Geben Sie für die Option Textdatei mit benutzerdefinierten Trennzeichen einen Field terminator (Feldtrennzeichen) an (d. h. ein Spaltentrennzeichen). Optional können Sie ein Collection terminator (Sammlungsendzeichen) angeben, das das Ende eines Array-Typs markiert, oder ein Collection terminator (Sammlungsendzeichen), das das Ende eines Zuordnungsdatentyps markiert.

    • SerDe library — Eine Bibliothek SerDe (Serializer-Deserializer) analysiert ein bestimmtes Datenformat, sodass Athena eine Tabelle dafür erstellen kann. Für die meisten Formate wird eine Standardbibliothek für Sie ausgewählt. SerDe Wählen Sie für die folgenden Formate eine Bibliothek entsprechend Ihren Anforderungen aus:

      • Apache Web Logs — Wählen Sie entweder die GrokSerDeBibliothek RegexSerDeoder. Geben Sie für RegexSerDe einen regulären Ausdruck in das Regex-Definitionsfeld ein. Geben Sie für GrokSerDe eine Reihe benannter regulärer Ausdrücke für die input.format SerDe Eigenschaft ein. Benannte reguläre Ausdrücke sind einfacher zu lesen und zu verwalten als reguläre Ausdrücke. Weitere Informationen finden Sie unter Abfragen von Apache-Protokollen in Amazon S3 abfragen.

      • CSV — Wählen Sie aus, LazySimpleSerDeob Ihre kommagetrennten Daten keine Werte enthalten, die in doppelte Anführungszeichen eingeschlossen sind, oder ob sie das java.sql.Timestamp Format verwenden. Wählen Sie OpenCSV, SerDe wenn Ihre Daten Anführungszeichen enthalten oder das numerische UNIX-Format für verwenden TIMESTAMP (z. B.1564610311). Weitere Informationen finden Sie unter LazySimpleSerDe für CSV-, TSV- und benutzerdefinierte Dateien und OpenCSV SerDe für die Verarbeitung von CSV.

      • JSON — Wählen Sie entweder die OpenX - oder die Hive SerDe JSON-Bibliothek. Beide Formate erwarten, dass sich jedes JSON-Dokument in einer einzelnen Textzeile befindet und dass Felder nicht durch Zeilenumbruchzeichen getrennt werden. Das OpenX SerDe bietet einige zusätzliche Eigenschaften. Weitere Informationen zu diesen Eigenschaften finden Sie unter OpenX JSON SerDe. Informationen zum Hive SerDe finden Sie unter. Hive-JSON SerDe

      Weitere Informationen zur Verwendung von SerDe Bibliotheken in Athena finden Sie unterUnterstützte SerDes- und Daten-Formate.

  7. Bei SerDe Eigenschaften können Sie je nach verwendeter SerDe Bibliothek und Ihren Anforderungen Eigenschaften und Werte hinzufügen, bearbeiten oder entfernen.

    • Um eine SerDe Eigenschaft hinzuzufügen, wählen Sie SerDeEigenschaft hinzufügen.

    • Geben Sie im Feld Name den Namen der Eigenschaft ein.

    • Geben Sie im Feld Value (Wert) einen Wert für die Eigenschaft ein.

    • Um eine SerDe Eigenschaft zu entfernen, wählen Sie Entfernen.

  8. Wählen oder bearbeiten Sie für Table properties (Tabelleneigenschaften) die Tabelleneigenschaften entsprechend Ihren Anforderungen.

    • Wählen Sie für Write compression (Schreibkomprimierung) eine Komprimierungsoption aus. Die Verfügbarkeit der Option Schreibkomprimierung und der verfügbaren Komprimierungsoptionen hängt vom Datenformat ab. Weitere Informationen finden Sie unter Athena-Komprimierungs-Support.

    • Wählen Sie für Encryption (Verschlüsselung) die Option Encrypted data set (Verschlüsselter Datensatz) aus, wenn die zugrunde liegenden Daten in Amazon S3 verschlüsselt sind. Diese Option setzt die has_encrypted_data-Tabelleneigenschaft in der CREATE TABLE-Anweisung auf wahr.

  9. Geben Sie für Column details (Spaltendetails) die Namen und Datentypen der Spalten ein, die Sie der Tabelle hinzufügen möchten.

    • Um mehrere Spalten einzeln hinzuzufügen, wählen Sie Add a column (Spalte hinzufügen).

    • Um schnell weitere Spalten hinzuzufügen, wählen Sie Bulk add columns (Massenhinzufügung von Spalten). Geben Sie in das Textfeld eine durch Kommas getrennte Liste von Spalten im Format column_name data_type, column_name data_type[, ...] ein, und wählen Sie dann Add (Hinzufügen).

  10. (Optional) Fügen Sie für Partition details (Details zur Partition) einen oder mehrere Spaltennamen und Datentypen hinzu. Die Partitionierung hält verwandte Daten basierend auf Spaltenwerten zusammen und kann dazu beitragen, die Menge der pro Abfrage gescannten Daten zu reduzieren. Weitere Informationen zur Partitionierung finden Sie unter Daten in Athena partitionieren.

  11. (Optional) Für das Bucketing können Sie eine oder mehrere Spalten angeben, die Zeilen enthalten, die Sie gruppieren möchten, und diese Zeilen dann in mehrere Buckets einfügen. Auf diese Weise können Sie nur den Bucket abfragen, den Sie lesen möchten, wenn der Bucket-Spaltenwert angegeben ist.

    • Wählen Sie für Buckets eine oder mehrere Spalten aus, die eine große Anzahl eindeutiger Werte enthalten (z. B. einen Primärschlüssel) und die häufig zum Filtern der Daten in Ihren Abfragen verwendet werden.

    • Geben Sie im Feld Number of buckets (Anzahl der Buckets) eine Zahl ein, die zulässt, dass Dateien die optimale Größe haben. Weitere Informationen finden Sie unter Top 10 Tipps zur Leistungsoptimierung für Amazon Athena im AWS -Big-Data-Blog.

    • Um Ihre Bucket-Spalten anzugeben, verwendet die CREATE TABLE-Anweisung die folgende Syntax:

      CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
    Anmerkung

    Die Bucketing-Option ist für die Iceberg-Tabellentypen nicht verfügbar.

  12. Das Preview table query (Vorschau der Tabellenabfrage)-Feld zeigt die CREATE TABLE-Anweisung, die durch die Informationen generiert wird, die Sie in das Formular eingegeben haben. Die Vorschauanweisung kann nicht direkt bearbeitet werden. Um die Anweisung zu ändern, ändern Sie die Formularfelder über der Vorschau oder erstellen Sie die Anweisung direkt im Abfrageeditor, anstatt das Formular zu verwenden.

  13. Wählen Sie Create table (Tabelle erstellen) aus, um die generierte Anweisung im Abfrage-Editor auszuführen und eine Tabelle zu erstellen.