

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.

# Fragen Sie die ab AWS Glue Data Catalog
<a name="querying-glue-catalog"></a>

Da AWS Glue Data Catalog es von vielen AWS-Services als zentrales Metadaten-Repository verwendet wird, möchten Sie möglicherweise die Metadaten des Datenkatalogs abfragen. Dazu können Sie SQL-Abfragen in Athena verwenden. Sie können Athena verwenden, um AWS Glue Katalogmetadaten wie Datenbanken, Tabellen, Partitionen und Spalten abzufragen.

Um AWS Glue Katalog-Metadaten zu erhalten, fragen Sie die `information_schema` Datenbank im Athena-Backend ab. In den Beispielabfragen in diesem Thema wird gezeigt, wie Sie Athena verwenden, um AWS Glue -Katalog-Metadaten für häufige Anwendungsfälle abzufragen.

## Überlegungen und Einschränkungen
<a name="querying-glue-catalog-considerations-limitations"></a>
+ Anstatt die `information_schema`-Datenbank abzufragen, ist es möglich, einzelne Apache-Hive-[DDL-Befehle](ddl-reference.md) zu verwenden, um Metadateninformationen für bestimmte Datenbanken, Tabellen, Ansichten, Partitionen und Spalten aus Athena zu extrahieren. Die Ausgabe erfolgt jedoch in einem nicht tabellarischen Format.
+ Abfragen `information_schema` sind am leistungsfähigsten, wenn Sie nur über eine geringe bis mäßige Menge an Metadaten verfügen. AWS Glue Wenn Sie eine große Menge an Metadaten haben, können Fehler auftreten.
+ Sie können mit `CREATE VIEW` keine Ansicht in der `information_schema`-Datenbank erstellen. 

**Topics**
+ [Überlegungen und Einschränkungen](#querying-glue-catalog-considerations-limitations)
+ [Auflisten von Datenbanken und Durchsuchen einer angegebenen Datenbank](querying-glue-catalog-querying-available-databases-including-rdbms.md)
+ [Auflisten von Tabellen in einer angegebenen Datenbank und Suche nach einer Tabelle anhand des Namens](querying-glue-catalog-listing-tables.md)
+ [Auflisten von Partitionen für eine bestimmte Tabelle](querying-glue-catalog-listing-partitions.md)
+ [Auflisten oder Durchsuchen von Spalten für eine angegebene Tabelle oder Ansicht](querying-glue-catalog-listing-columns.md)
+ [Auflistung der Spalten, die bestimmte Tabellen gemeinsam haben](querying-glue-catalog-listing-columns-in-common.md)
+ [Auflisten aller Spalten für alle Tabellen](querying-glue-catalog-listing-all-columns-for-all-tables.md)

# Auflisten von Datenbanken und Durchsuchen einer angegebenen Datenbank
<a name="querying-glue-catalog-querying-available-databases-including-rdbms"></a>

Die Beispiele in diesem Abschnitt zeigen, wie die Datenbanken in Metadaten nach Schema-Namen aufgelistet werden.

**Example – Auflisten von Datenbanken**  
Über die folgende Beispielabfrage werden die Datenbanken aus der `information_schema.schemata` Tabelle aufgelistet.  

```
SELECT schema_name
FROM   information_schema.schemata
LIMIT  10;
```
In der folgenden Tabelle werden Beispielergebnisse angezeigt.  


****  

|  |  | 
| --- |--- |
| 6 | alb-databas1 | 
| 7 | alb\$1original\$1cust | 
| 8 | alblogsdatabase | 
| 9 | athena\$1db\$1test | 
| 10 | athena\$1ddl\$1db | 

**Example – Durchsuchen einer angegebenen Datenbank**  
In der folgenden Beispielabfrage ist `rdspostgresql` eine Beispieldatenbank.  

```
SELECT schema_name
FROM   information_schema.schemata
WHERE  schema_name = 'rdspostgresql'
```
In der folgenden Tabelle werden Beispielergebnisse angezeigt.  


****  

|  | schema\$1name | 
| --- | --- | 
| 1 | rdspostgresql | 

# Auflisten von Tabellen in einer angegebenen Datenbank und Suche nach einer Tabelle anhand des Namens
<a name="querying-glue-catalog-listing-tables"></a>

Um Metadaten für Tabellen aufzulisten, kann die Abfrage anhand des Tabellenschemas oder Tabellennamens erfolgen.

**Example – Auflisten von Tabellen nach Schema**  
Über die folgende Abfrage werden Tabellen aufgelistet, die das `rdspostgresql`-Tabellenschema verwenden.  

```
SELECT table_schema,
       table_name,
       table_type
FROM   information_schema.tables
WHERE  table_schema = 'rdspostgresql'
```
In der folgenden Tabelle wird ein Beispielergebnis gezeigt.  


****  

|  | table\$1schema | table\$1name | table\$1type | 
| --- | --- | --- | --- | 
| 1 | rdspostgresql | rdspostgresqldb1\$1public\$1account | BASE TABLE | 

**Example – Suche nach einer Tabelle anhand des Namens**  
Über die folgende Abfrage werden Metadaten-Informationen für die Tabelle `athena1` abgerufen.  

```
SELECT table_schema,
       table_name,
       table_type
FROM   information_schema.tables
WHERE  table_name = 'athena1'
```
In der folgenden Tabelle wird ein Beispielergebnis gezeigt.  


****  

|  | table\$1schema | table\$1name | table\$1type | 
| --- | --- | --- | --- | 
| 1 | Standard | athena1 | BASE TABLE | 

# Auflisten von Partitionen für eine bestimmte Tabelle
<a name="querying-glue-catalog-listing-partitions"></a>

Sie können `SHOW PARTITIONS table_name` verwenden, um die Partitionen für eine angegebene Tabelle aufzulisten, wie im folgenden Beispiel.

```
SHOW PARTITIONS cloudtrail_logs_test2
```

Sie können auch eine `$partitions`-Metadatenabfrage verwenden, um die Partitionsnummern und -werte für eine bestimmte Tabelle aufzulisten.

**Example – Abfragen der Partitionen für eine Tabelle mit der \$1partitions-Syntax**  
Über die folgende Beispielabfrage werden die Partitionen für die Tabelle `cloudtrail_logs_test2` mit der Syntax `$partitions` aufgelistet.  

```
SELECT * FROM default."cloudtrail_logs_test2$partitions" ORDER BY partition_number
```
In der folgenden Tabelle werden Beispielergebnisse angezeigt.  


****  

|  | table\$1catalog | table\$1schema | table\$1name | Jahr | Monat | Tag | 
| --- | --- | --- | --- | --- | --- | --- | 
| 1 | awsdatacatalog | Standard | cloudtrail\$1logs\$1test2 | 2020 | 08 | 10 | 
| 2 | awsdatacatalog | Standard | cloudtrail\$1logs\$1test2 | 2020 | 08 | 11 | 
| 3 | awsdatacatalog | Standard | cloudtrail\$1logs\$1test2 | 2020 | 08 | 12 | 

# Auflisten oder Durchsuchen von Spalten für eine angegebene Tabelle oder Ansicht
<a name="querying-glue-catalog-listing-columns"></a>

Sie können alle Spalten für eine Tabelle und alle Spalten für eine Ansicht auflisten oder anhand des Namens nach einer Spalte in einer angegebenen Datenbank und Tabelle suchen.

Um die Spalten aufzulisten, verwenden Sie eine `SELECT *`-Abfrage. Geben Sie in der `FROM`-Klausel `information_schema.columns` an. Verwenden Sie in der `WHERE`-Klausel `table_schema='database_name'`, um die Datenbank anzugeben und `table_name = 'table_name'`, um die Tabelle oder Ansicht anzugeben, die die aufzulistenden Spalten enthält.

**Example – Auflisten aller Spalten für eine angegebene Tabelle**  
Über die folgende Beispielabfrage werden alle Spalten für die Tabelle auf `rdspostgresqldb1_public_account` aufgelistet.  

```
SELECT *
FROM   information_schema.columns
WHERE  table_schema = 'rdspostgresql'
       AND table_name = 'rdspostgresqldb1_public_account'
```
In der folgenden Tabelle werden Beispielergebnisse angezeigt.  


****  

|  | table\$1catalog | table\$1schema | table\$1name | column\$1name | ordinal\$1position | column\$1default | is\$1nullable | data\$1type | Kommentar | extra\$1info | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| 1 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | password | 1 |  | JA | varchar |  |  | 
| 2 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | user\$1id | 2 |  | JA | Ganzzahl |  |  | 
| 3 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | created\$1on | 3 |  | JA | Zeitstempel |  |  | 
| 4 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | last\$1login | 4 |  | JA | Zeitstempel |  |  | 
| 5 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | email | 5 |  | JA | varchar |  |  | 
| 6 | awsdatacatalog | rdspostgresql | rdspostgresqldb1\$1public\$1account | username | 6 |  | JA | varchar |  |  | 

**Example – Auflisten der Spalten für eine angegebene Ansicht**  
Über die folgende Beispielabfrage werden alle Spalten in der `default`-Datenbank für die Ansicht auf `arrayview` aufgelistet.  

```
SELECT *
FROM   information_schema.columns
WHERE  table_schema = 'default'
       AND table_name = 'arrayview'
```
In der folgenden Tabelle werden Beispielergebnisse angezeigt.  


****  

|  | table\$1catalog | table\$1schema | table\$1name | column\$1name | ordinal\$1position | column\$1default | is\$1nullable | data\$1type | Kommentar | extra\$1info | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| 1 | awsdatacatalog | Standard | arrayview | searchdate | 1 |  | JA | varchar |  |  | 
| 2 | awsdatacatalog | Standard | arrayview | sid | 2 |  | JA | varchar |  |  | 
| 3 | awsdatacatalog | Standard | arrayview | btid | 3 |  | JA | varchar |  |  | 
| 4 | awsdatacatalog | Standard | arrayview | p | 4 |  | JA | varchar |  |  | 
| 5 | awsdatacatalog | Standard | arrayview | infantprice | 5 |  | JA | varchar |  |  | 
| 6 | awsdatacatalog | Standard | arrayview | sump | 6 |  | JA | varchar |  |  | 
| 7 | awsdatacatalog | Standard | arrayview | journeymaparray | 7 |  | JA | array(varchar) |  |  | 

**Example – Suche nach einer Spalte anhand des Namens in einer angegebenen Datenbank und Tabelle**  
Über die folgende Beispielabfrage wird nach Metadaten für die `sid`-Spalte in der `arrayview`-Ansicht der `default`-Datenbank gesucht.  

```
SELECT *
FROM   information_schema.columns
WHERE  table_schema = 'default'
       AND table_name = 'arrayview' 
       AND column_name='sid'
```
In der folgenden Tabelle wird ein Beispielergebnis gezeigt.  


****  

|  | table\$1catalog | table\$1schema | table\$1name | column\$1name | ordinal\$1position | column\$1default | is\$1nullable | data\$1type | Kommentar | extra\$1info | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| 1 | awsdatacatalog | Standard | arrayview | sid | 2 |  | JA | varchar |  |  | 

# Auflistung der Spalten, die bestimmte Tabellen gemeinsam haben
<a name="querying-glue-catalog-listing-columns-in-common"></a>

Sie können die Spalten auflisten, die bestimmte Tabellen in einer Datenbank gemeinsam haben.
+ Verwenden der Syntax `SELECT column_name FROM information_schema.columns`.
+ Verwenden Sie für die `WHERE`-Klausel die Syntax `WHERE table_name IN ('table1', 'table2')`.

**Example – Listet gemeinsame Spalten für zwei Tabellen in derselben Datenbank auf**  
Die folgende Beispielabfrage listet die Spalten auf, die die Tabellen `table1` und ich gemeinsam `table2` haben.  

```
SELECT column_name
FROM information_schema.columns
WHERE table_name IN ('table1', 'table2')
GROUP BY column_name
HAVING COUNT(*) > 1;
```

# Auflisten aller Spalten für alle Tabellen
<a name="querying-glue-catalog-listing-all-columns-for-all-tables"></a>

Sie können alle Spalten für alle Tabellen in `AwsDataCatalog` oder für alle Tabellen in einer bestimmten Datenbank in `AwsDataCatalog` auflisten.
+ Um alle Spalten für alle Datenbanken in `AwsDataCatalog` aufzulisten, verwenden Sie die Abfrage `SELECT * FROM information_schema.columns`.
+ Um die Ergebnisse auf eine bestimmte Datenbank zu beschränken, verwenden Sie `table_schema='database_name'` in der `WHERE`-Klausel.

**Example – Auflisten aller Spalten für alle Tabellen in einer bestimmten Datenbank**  
Über die folgende Beispielabfrage werden alle Spalten für alle Tabellen in der Datenbank `webdata` aufgelistet.  

```
SELECT * FROM information_schema.columns WHERE table_schema = 'webdata'            
```