

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
<a name="start-data-catalog"></a>

 Das AWS Glue Data Catalog ist Ihr persistenter Speicher für technische Metadaten. Es handelt sich um einen verwalteten Dienst, den Sie zum Speichern, Kommentieren und Teilen von Metadaten in der AWS Cloud verwenden können. Weitere Informationen finden Sie unter [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). 


|  | 
| --- |
| Die AWS Glue-Konsole sowie einige Benutzeroberflächen wurden kürzlich aktualisiert. | 

## -Übersicht
<a name="start-data-catalog-overview"></a>

 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. 

1.  Erstellen einer Tabelle 

1.  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
<a name="start-data-catalog-database"></a>

 Melden Sie sich zunächst bei der an AWS-Managementkonsole und öffnen Sie die [AWS GlueKonsole](https://console.aws.amazon.com/glue). 

 **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. 

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

1.  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. 

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

1.  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](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html). 
+  Sie können CloudFormation Vorlagen verwenden. Siehe [AWS GlueRessourcen mithilfe von AWS Glue Data Catalog Vorlagen erstellen](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html). 
+  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\$1data.csv aus dem S3-Bucket zu definieren, den Sie im Tutorial verwendet haben.   

  ```
  aws glue create-database --database-input "{\"Name\":\"clidb\"}"                                              
  ```

  ```
  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](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html). 

 **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](https://docs.aws.amazon.com/glue/latest/dg/console-data-catalog-settings.html). 

## Schritt 2. Erstellen einer Tabelle
<a name="start-data-catalog-table"></a>

 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. 

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

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

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

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

1.  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. 

1. 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/`

1.  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. 

1. 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](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html#schema-registry-schemas.html))

1.  Geben Sie die Spalteneigenschaften an: 

   1. Geben Sie einen Spaltennamen ein. 

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

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

   1. Wählen Sie **Hinzufügen** aus.

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

1.  Eine Zusammenfassung der Tabelleneigenschaften wird angezeigt. Wenn alles wie erwartet aussieht, wählen Sie **Erstellen**. 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](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html). 

## Nächste Schritte
<a name="start-data-catalog-next-steps"></a>

 **Nächste Schritte** 

 Nachdem der Datenkatalog ausgefüllt ist, können Sie mit dem Erstellen von Aufträgen in AWS Glue beginnen. Siehe [Erstellen von Visual ETL-Aufträgen mit AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html). 

 Neben der Verwendung der Konsole gibt es noch andere Möglichkeiten, Tabellen im Datenkatalog zu definieren, darunter:
+  [Erstellen und Ausführen eines Crawlers](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) 
+  [Hinzufügen von Klassifikatoren zu einem Crawler in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html) 
+  [Verwenden der AWS Glue-Tabellen-API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html) 
+  [Verwenden der AWS Glue Data Catalog -Vorlage](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html) 
+  [Migrieren eines Apache Hive-Metastores](https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Hive_metastore_migration) 
+  [Verwenden der AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/glue/create-table.html), Boto3 oder der 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\$1data.csv aus dem S3-Bucket zu definieren, den Sie im Tutorial verwendet haben.   
 Informationen zur Strukturierung eines Befehls finden Sie in der Dokumentation. AWS CLI Das CLI-Beispiel enthält die JSON-Syntax für den Wert „aws glue create-table --table-input“.   

  ```
  {
          "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"
          }
      }
  ```

  ```
  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'
      }
      }
  )
  ```

  ```
  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')
  ```