Erste Schritte mit AWS Glue Data Catalog - 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.

Erste Schritte mit AWS Glue Data Catalog

Der AWS Glue Data Catalog ist Ihr persistenter technischer Metadatenspeicher. Es handelt sich hierbei um einen verwalteten Service, mit dem Sie Metadaten in der AWS-Cloud speichern, kommentieren oder freigeben können. Weitere Informationen finden Sie unter AWS Glue Data Catalog.

Die AWS Glue Konsole und einige Benutzeroberflächen wurden kürzlich aktualisiert.

Übersicht

Sie können dieses Tutorial verwenden, um Ihren ersten AWS Glue-Datenkatalog zu erstellen, der einen Amazon-S3-Bucket als Datenquelle verwendet.

In diesem Tutorial führen Sie folgende Aufgaben mit der AWS Glue-Konsole durch:

  1. Erstellen einer Datenbank.

  2. Erstellen einer Tabelle

  3. Verwenden eines Amazon-S3-Buckets als Datenquelle

Nachdem Sie diese Schritte ausgeführt haben, haben Sie erfolgreich einen Amazon-S3-Bucket als Datenquelle zum Füllen des AWS Glue-Datenkatalogs verwendet.

Schritt 1: Erstellen einer Datenbank

Melden Sie sich zunächst bei der an AWS Management Console und öffnen Sie die AWS Glue -Konsole.

Eine Datenbank erstellen mit der AWS Glue-Konsole:

  1. Wählen Sie in der AWS Glue-Konsole im linken Menü unter Data catalog (Datenkatalog) Databases (Datenbanken) aus.

  2. Wählen Sie Add database (Datenbank hinzufügen).

  3. Geben Sie auf der Seite „Datenbank erstellen“ einen Namen für die Datenbank ein. Legen Sie im Abschnitt Speicherort – optional den URI-Speicherort für die Verwendung durch Clients des Datenkatalogs fest. Wenn Sie diesen nicht kennen, können Sie mit der Erstellung der Datenbank fortfahren.

  4. (Optional). Geben Sie eine Beschreibung für die Datenbank ein.

  5. Wählen Sie Datenbank erstellen aus.

Herzlichen Glückwunsch, Sie haben gerade Ihre erste Datenbank mit der AWS Glue-Konsole eingerichtet. Ihre neue Datenbank wird in der Liste der verfügbaren Datenbanken angezeigt. Sie können die Datenbank bearbeiten, indem Sie den Namen der Datenbank aus dem Datenbanken-Dashboard auswählen.

Nächste Schritte

Andere Möglichkeiten, eine Datenbank zu erstellen:

Sie haben gerade eine Datenbank mit der AWS Glue-Konsole erstellt, aber es gibt andere Möglichkeiten, eine Datenbank zu erstellen:

  • Sie können Crawler verwenden, um automatisch eine Datenbank und Tabellen für Sie zu erstellen. Informationen zum Einrichten einer Datenbank mithilfe von Crawlern finden Sie unter Arbeiten mit Crawlern in der AWS Glue-Konsole.

  • Sie können AWS CloudFormation-Vorlagen verwenden. Siehe Erstellen von AWS Glue-Ressourcen mit AWS Glue Data Catalog-Vorlagen.

  • Darüber hinaus können Sie eine Datenbank auch mit den AWS Glue-API-Operationen der Datenbank erstellen.

    Um eine Datenbank mit der create-Operation zu erstellen, strukturieren Sie die Anforderung, indem Sie die (erforderlichen) DatabaseInput-Parameter einschließen.

    Beispiel:

    Im Folgenden finden Sie Beispiele, wie Sie die CLI, Boto3 oder DDL verwenden können, um eine Tabelle basierend auf derselben Datei flights_data.csv aus dem S3-Bucket zu definieren, den Sie im Tutorial verwendet haben.

    CLI
    aws glue create-database --database-input "{\"Name\":\"clidb\"}"
    Boto3
    glueClient = boto3.client('glue') response = glueClient.create_database( DatabaseInput={ 'Name': 'boto3db' } )

Weitere Informationen zu den Datentypen, -Strukturen und -Vorgängen der Datenbank-API finden Sie unter Datenbank-API.

Nächste Schritte

Im nächsten Abschnitt erstellen Sie eine Tabelle und fügen diese Tabelle Ihrer Datenbank hinzu.

Sie können sich auch die Einstellungen und Berechtigungen für Ihren Datenkatalog ansehen. Siehe Arbeiten mit Datenkatalog-Einstellungen in der AWS Glue-Konsole.

Schritt 2. Erstellen einer Tabelle

In diesem Schritt erstellen Sie mithilfe der AWS Glue-Konsole eine Tabelle.

  1. Wählen Sie in der AWS Glue-Konsole im linken Menü Tables (Tabellen) aus.

  2. Wählen Sie Add table (Tabelle hinzufügen).

  3. Richten Sie die Eigenschaften Ihrer Tabelle ein, indem Sie einen Namen für Ihre Tabelle in Table details (Tabellendetails) eingeben.

  4. Wählen Sie im Abschnitt Databases (Datenbanken) die Datenbank aus dem Dropdown-Menü aus, die Sie in Schritt 1 erstellt haben.

  5. Im Abschnitt Add a data store (Datenspeicher hinzufügen) wird S3 standardmäßig als Quelltyp ausgewählt.

  6. Wählen Sie im Abschnitt Data is located in (Daten befinden sich in) die Option Specified path in another account (Angegebener Pfad in einem anderen Konto) aus.

  7. Kopieren Sie den Pfad für das Eingabefeld Include path (Pfad einschließen) und fügen Sie ihn ein:

    s3://crawler-public-us-west-2/flight/2016/csv/

  8. Wählen Sie im Abschnitt Data format (Datenformat) für Classification (Klassifizierung) CSV und für Delimiter (Trennzeichen) comma (,) (Komma) aus. Wählen Sie Weiter aus.

  9. Sie werden aufgefordert, ein Schema zu definieren. Ein Schema definiert die Struktur und das Format eines Datensatzes. Wählen Sie Add column (Spalte hinzufügen). (Weitere Informationen finden Sie unter Schema Registries)

  10. Geben Sie die Spalteneigenschaften an:

    1. Geben Sie einen Spaltennamen ein.

    2. Als Spaltentyp ist standardmäßig bereits „Zeichenfolge“ ausgewählt.

    3. Als Spaltennummer ist standardmäßig bereits „1“ ausgewählt.

    4. Wählen Sie Hinzufügen aus.

  11. Sie werden aufgefordert, Partitionsindizes hinzuzufügen. Dieser Schritt ist optional. Um diesen Schritt zu überspringen, wählen Sie Next (Weiter).

  12. Eine Zusammenfassung der Tabelleneigenschaften wird angezeigt. Wenn alles wie erwartet aussieht, wählen Sie Erstellen aus. Wählen Sie andernfalls Back (Zurück) und nehmen Sie nach Bedarf Änderungen vor.

Herzlichen Glückwunsch, Sie haben erfolgreich eine Tabelle manuell erstellt und mit einer Datenbank verknüpft. Ihre neu erstellte Tabelle wird im Tabellen-Dashboard angezeigt. Über das Dashboard können Sie alle Ihre Tabellen ändern und verwalten.

Weitere Informationen finden Sie unter Arbeiten mit Tags in der Konsole AWS Glue.

Nächste Schritte

Nächste Schritte

Nachdem der Datenkatalog ausgefüllt ist, können Sie mit dem Erstellen von Aufträgen in AWS Glue beginnen. Weitere Informationen finden Sie unter Erstellen von visuellen ETL-Aufträgen mit AWS Glue Studio.

Neben der Verwendung der Konsole gibt es noch andere Möglichkeiten, Tabellen im Datenkatalog zu definieren, darunter:

  • Erstellen und Ausführen eines Crawlers

  • Hinzufügen von Classifiern zu einem Crawler in AWS Glue

  • Verwenden der AWS Glue-Tabellen-API

  • Verwenden der AWS Glue Data Catalog-Vorlage

  • Migrieren eines Apache Hive-Metastores

  • Verwendung von AWS CLI, Boto3 oder Datendefinitionssprache (DDL)

    Im Folgenden finden Sie Beispiele, wie Sie die CLI, Boto3 oder DDL verwenden können, um eine Tabelle basierend auf derselben Datei flights_data.csv aus dem S3-Bucket zu definieren, den Sie im Tutorial verwendet haben.

    Informationen zur Strukturierung eines AWS CLI-Befehls finden Sie in der Dokumentation. Das CLI-Beispiel enthält die JSON-Syntax für den Wert „aws glue create-table --table-input“.

    CLI
    { "Name": "flights_data_cli", "StorageDescriptor": { "Columns": [ { "Name": "year", "Type": "bigint" }, { "Name": "quarter", "Type": "bigint" } ], "Location": "s3://crawler-public-us-west-2/flight/2016/csv", "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "Compressed": false, "NumberOfBuckets": -1, "SerdeInfo": { "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "Parameters": { "field.delim": ",", "serialization.format": "," } } }, "PartitionKeys": [ { "Name": "mon", "Type": "string" } ], "TableType": "EXTERNAL_TABLE", "Parameters": { "EXTERNAL": "TRUE", "classification": "csv", "columnsOrdered": "true", "compressionType": "none", "delimiter": ",", "skip.header.line.count": "1", "typeOfData": "file" } }
    Boto3
    import boto3 glue_client = boto3.client("glue") response = glue_client.create_table( DatabaseName='sampledb', TableInput={ 'Name': 'flights_data_manual', 'StorageDescriptor': { 'Columns': [{ 'Name': 'year', 'Type': 'bigint' }, { 'Name': 'quarter', 'Type': 'bigint' }], 'Location': 's3://crawler-public-us-west-2/flight/2016/csv', 'InputFormat': 'org.apache.hadoop.mapred.TextInputFormat', 'OutputFormat': 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat', 'Compressed': False, 'NumberOfBuckets': -1, 'SerdeInfo': { 'SerializationLibrary': 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe', 'Parameters': { 'field.delim': ',', 'serialization.format': ',' } }, }, 'PartitionKeys': [{ 'Name': 'mon', 'Type': 'string' }], 'TableType': 'EXTERNAL_TABLE', 'Parameters': { 'EXTERNAL': 'TRUE', 'classification': 'csv', 'columnsOrdered': 'true', 'compressionType': 'none', 'delimiter': ',', 'skip.header.line.count': '1', 'typeOfData': 'file' } } )
    DDL
    CREATE EXTERNAL TABLE `sampledb`.`flights_data` ( `year` bigint, `quarter` bigint) PARTITIONED BY ( `mon` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://crawler-public-us-west-2/flight/2016/csv/' TBLPROPERTIES ( 'classification'='csv', 'columnsOrdered'='true', 'compressionType'='none', 'delimiter'=',', 'skip.header.line.count'='1', 'typeOfData'='file')