

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.

# Verwenden Sie die AWS CLI mit Hive-Metastoren
<a name="datastores-hive-cli"></a>

Sie können `aws athena`-CLI-Befehle verwenden, um die Hive-Metastore-Datenkataloge zu verwalten, die Sie mit Athena verwenden. Nach der Definition eines oder mehrerer Kataloge für die Verwendung mit Athena können Sie in den `aws athena`-DDL- und -DML-Befehlen auf diese Kataloge verweisen.

## Verwenden von zur Verwaltung von AWS CLI Hive-Metastore-Katalogen
<a name="datastores-hive-cli-manage-hive-catalogs"></a>

### Registrierung eines Katalogs: Create-data-catalog
<a name="datastores-hive-cli-registering-a-catalog"></a>

Um einen Datenkatalog zu registrieren, verwenden Sie den Befehl `create-data-catalog`. Sie verwenden den Parameter `name`, um den Namen anzugeben, den Sie für den Katalog verwenden möchten. Sie übergeben den ARN der Lambda-Funktion an die Option `metadata-function` des Arguments `parameters`. Um Tags für den neuen Katalog zu erstellen, verwenden Sie den Parameter `tags` mit einem oder mehreren, durch Leerzeichen getrennten Argumentpaaren `Key=key,Value=value`.

Im folgenden Beispiel wird ein Hive-Metastore-Katalog mit dem Namen `hms-catalog-1` registriert. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena create-data-catalog 
 --name "hms-catalog-1" 
 --type "HIVE"
 --description "Hive Catalog 1"
 --parameters "metadata-function=arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3,sdk-version=1.0" 
 --tags Key=MyKey,Value=MyValue
 --region us-east-1
```

### Katalogdetails werden angezeigt: Get-data-catalog
<a name="datastores-hive-cli-showing-details-of-a-catalog"></a>

Um die Details eines Katalogs anzuzeigen, übergeben Sie den Namen des Katalogs an den Befehl `get-data-catalog` wie im folgenden Beispiel gezeigt.

```
$ aws athena get-data-catalog --name "hms-catalog-1" --region us-east-1
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "DataCatalog": {
        "Name": "hms-catalog-1",
        "Description": "Hive Catalog 1",
        "Type": "HIVE",
        "Parameters": {
            "metadata-function": "arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3",
            "sdk-version": "1.0"
        }
    }
}
```

### Liste registrierter Kataloge: List-data-catalogs
<a name="datastores-hive-cli-listing-registered-catalogs"></a>

Um die registrierten Kataloge aufzulisten, verwenden Sie den Befehl `list-data-catalogs` und geben optional eine Region an, wie im folgenden Beispiel gezeigt. Die aufgelisteten Kataloge enthalten stets AWS Glue.

```
$ aws athena list-data-catalogs --region us-east-1
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "DataCatalogs": [
        {
            "CatalogName": "AwsDataCatalog",
            "Type": "GLUE"
        },
        {
            "CatalogName": "hms-catalog-1",
            "Type": "HIVE",
            "Parameters": {
                "metadata-function": "arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-v3",
                "sdk-version": "1.0"
            }
        }
    ]
}
```

### Einen Katalog aktualisieren: Update-data-catalog
<a name="datastores-hive-cli-updating-a-catalog"></a>

Um einen Datenkatalog zu aktualisieren, verwenden Sie den Befehl `update-data-catalog` wie im folgenden Beispiel gezeigt. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena update-data-catalog 
 --name "hms-catalog-1" 
 --type "HIVE"
 --description "My New Hive Catalog Description" 
 --parameters "metadata-function=arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new,sdk-version=1.0" 
 --region us-east-1
```

### Einen Katalog löschen: Delete-data-catalog
<a name="datastores-hive-cli-deleting-a-catalog"></a>

Um einen Datenkatalog zu löschen, verwenden Sie den Befehl `delete-data-catalog` wie im folgenden Beispiel gezeigt.

```
$ aws athena delete-data-catalog --name "hms-catalog-1" --region us-east-1
```

### Anzeige von Datenbankdetails: Get-database
<a name="datastores-hive-cli-showing-details-of-a-database"></a>

Um die Details einer Datenbank anzuzeigen, übergeben Sie den Namen des Katalogs und der Datenbank an den Befehl `get-database` wie im folgenden Beispiel gezeigt.

```
$ aws athena get-database --catalog-name hms-catalog-1 --database-name mydb
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "Database": {
        "Name": "mydb",
        "Description": "My database",
        "Parameters": {
            "CreatedBy": "Athena",
            "EXTERNAL": "TRUE"
        }
    }
}
```

### Auflistung von Datenbanken in einem Katalog: List-databases
<a name="datastores-hive-cli-listing-databases"></a>

Um die Datenbanken in einem Katalog aufzulisten, verwenden Sie den Befehl `list-databases` und geben optional eine Region an, wie im folgenden Beispiel gezeigt.

```
$ aws athena list-databases --catalog-name AwsDataCatalog --region us-west-2
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "DatabaseList": [
        {
            "Name": "default"
        },
        {
            "Name": "mycrawlerdatabase"
        },
        {
            "Name": "mydatabase"
        },
        {
            "Name": "sampledb",
            "Description": "Sample database",
            "Parameters": {
                "CreatedBy": "Athena",
                "EXTERNAL": "TRUE"
            }
        },
        {
            "Name": "tpch100"
        }
    ]
}
```

### Tabellendetails anzeigen: Get-table-metadata
<a name="datastores-hive-cli-showing-details-of-a-table"></a>

Um die Metadaten für eine Tabelle einschließlich Spaltennamen und Datentypen anzuzeigen, übergeben Sie den Namen des Katalogs, der Datenbank und der Tabelle an den Befehl `get-table-metadata` wie im folgenden Beispiel gezeigt.

```
$ aws athena get-table-metadata --catalog-name AwsDataCatalog --database-name mydb --table-name cityuseragent
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "TableMetadata": {
        "Name": "cityuseragent",
            "CreateTime": 1586451276.0,
            "LastAccessTime": 0.0,
            "TableType": "EXTERNAL_TABLE",
            "Columns": [
                {
                    "Name": "city",
                    "Type": "string"
                },
                {
                    "Name": "useragent1",
                    "Type": "string"
                }
            ],
            "PartitionKeys": [],
            "Parameters": {
                "COLUMN_STATS_ACCURATE": "false",
                "EXTERNAL": "TRUE",
                "inputformat": "org.apache.hadoop.mapred.TextInputFormat",
                "last_modified_by": "hadoop",
                "last_modified_time": "1586454879",
                "location": "s3://amzn-s3-demo-bucket/",
                "numFiles": "1",
                "numRows": "-1",
                "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
                "rawDataSize": "-1",
                "serde.param.serialization.format": "1",
                "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                "totalSize": "61"
            }
        }
}
```

### Metadaten für alle Tabellen in einer Datenbank anzeigen: List-table-metadata
<a name="datastores-hive-cli-showing-all-table-metadata"></a>

Um die Metadaten für alle Tabellen in einer Datenbank anzuzeigen, übergeben Sie den Namen des Katalogs und der Datenbank an den Befehl `list-table-metadata`. Der Befehl `list-table-metadata` ist dem Befehl `get-table-metadata` vergleichbar, abgesehen davon, dass kein Tabellenname angegeben wird. Um die Anzahl der Ergebnisse zu begrenzen, können Sie die Option `--max-results`verwenden wie im folgenden Beispiel gezeigt. 

```
$ aws athena list-table-metadata --catalog-name AwsDataCatalog --database-name sampledb --region us-east-1 --max-results 2
```

Das folgende Beispielergebnis verwendet das JSON-Format.

```
{
    "TableMetadataList": [
        {
            "Name": "cityuseragent",
            "CreateTime": 1586451276.0,
            "LastAccessTime": 0.0,
            "TableType": "EXTERNAL_TABLE",
            "Columns": [
                {
                    "Name": "city",
                    "Type": "string"
                },
                {
                    "Name": "useragent1",
                    "Type": "string"
                }
            ],
            "PartitionKeys": [],
            "Parameters": {
                "COLUMN_STATS_ACCURATE": "false",
                "EXTERNAL": "TRUE",
                "inputformat": "org.apache.hadoop.mapred.TextInputFormat",
                "last_modified_by": "hadoop",
                "last_modified_time": "1586454879",
                "location": "s3://amzn-s3-demo-bucket/",
                "numFiles": "1",
                "numRows": "-1",
                "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
                "rawDataSize": "-1",
                "serde.param.serialization.format": "1",
                "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                "totalSize": "61"
            }
        },
        {
            "Name": "clearinghouse_data",
            "CreateTime": 1589255544.0,
            "LastAccessTime": 0.0,
            "TableType": "EXTERNAL_TABLE",
            "Columns": [
                {
                    "Name": "location",
                    "Type": "string"
                },
                {
                    "Name": "stock_count",
                    "Type": "int"
                },
                {
                    "Name": "quantity_shipped",
                    "Type": "int"
                }
            ],
            "PartitionKeys": [],
            "Parameters": {
                "EXTERNAL": "TRUE",
                "inputformat": "org.apache.hadoop.mapred.TextInputFormat",
                "location": "s3://amzn-s3-demo-bucket/",
                "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
                "serde.param.serialization.format": "1",
                "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                "transient_lastDdlTime": "1589255544"
            }
        }
    ],
    "NextToken": "eyJsYXN0RXZhbHVhdGVkS2V5Ijp7IkhBU0hfS0VZIjp7InMiOiJ0Ljk0YWZjYjk1MjJjNTQ1YmU4Y2I5OWE5NTg0MjFjYTYzIn0sIlJBTkdFX0tFWSI6eyJzIjoiY2xlYXJpbmdob3VzZV9kYXRhIn19LCJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE1ODkzNDIwMjIsIm5hbm9zIjo2NTUwMDAwMDB9fQ=="
}
```

## Ausführung von DDL- und DML-Anweisungen
<a name="datastores-hive-cli-running-ddl-and-dml"></a>

Wenn Sie die AWS CLI DDL- und DML-Anweisungen ausführen, können Sie den Namen des Hive-Metastore-Katalogs auf zwei Arten übergeben:
+ Direkt an die Anweisungen, die ihn unterstützen.
+ An den Parameter `--query-execution-context` `Catalog`.

### DDL-Anweisungen
<a name="datastores-hive-cli-ddl-statements"></a>

Im folgenden Beispiel wird der Katalogname direkt als Teil der DDL-Anweisung `show create table` übergeben. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena start-query-execution 
 --query-string "show create table hms-catalog-1.hms_tpch_partitioned.lineitem" 
 --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
```

In der folgenden DDL-Beispielanweisung `show create table` wird der Parameter `Catalog` von `--query-execution-context` verwendet, um den Namen des Hive-Metastore-Katalogs `hms-catalog-1` zu übergeben. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena start-query-execution 
 --query-string "show create table lineitem" 
 --query-execution-context "Catalog=hms-catalog-1,Database=hms_tpch_partitioned" 
 --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
```

### DML-Anweisungen.
<a name="datastores-hive-cli-dml-statements"></a>

Die folgende DML-Beispielanweisung `select` übergibt den Katalognamen direkt an die Abfrage. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena start-query-execution
 --query-string "select * from hms-catalog-1.hms_tpch_partitioned.customer limit 100" 
 --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
```

In der folgenden DML-Beispielanweisung `select` wird der Parameter `Catalog` von `--query-execution-context` verwendet, um den Namen des Hive-Metastore-Katalogs `hms-catalog-1` zu übergeben. Der Befehl wurde zur besseren Lesbarkeit formatiert.

```
$ aws athena start-query-execution 
 --query-string "select * from customer limit 100" 
 --query-execution-context "Catalog=hms-catalog-1,Database=hms_tpch_partitioned" 
 --result-configuration "OutputLocation=s3://amzn-s3-demo-bucket/lambda/results"
```