Metadaten von Datasets mit INFORMATION_SCHEMA abrufen

INFORMATION_SCHEMA enthält diese Ansichten für Dataset-Metadaten:

  • SCHEMATA
  • SCHEMATA_OPTIONS

Hinweis

Erteilen Sie IAM-Rollen (Identity and Access Management), die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument geben.

Erforderliche Berechtigungen

Zum Abrufen der SCHEMATA- und SCHEMATA_OPTIONS-Ansichten für Dataset-Metadaten benötigen Sie die IAM-Berechtigung bigquery.datasets.get auf Projektebene.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie benötigen, um die Ansichten SCHEMATA und SCHEMATA_OPTIONS zu erhalten:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer

Weitere Informationen über detaillierte BigQuery-Berechtigungen finden Sie unter Rollen und Berechtigungen.

Syntax

Für Abfragen dieser Ansichten sollte ein Regions-Qualifier verwendet werden.

Wenn Sie keinen Regions-Qualifier angeben, werden Metadaten vom multiregionalen Standort us abgerufen.

-- Returns metadata for datasets in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA;

Ansicht SCHEMATA

Wenn Sie die Ansicht INFORMATION_SCHEMA.SCHEMATA abfragen, enthalten die Abfrageergebnisse eine Zeile für jedes Dataset in einem Projekt, auf das der aktuelle Nutzer Zugriff hat.

Die Ansicht INFORMATION_SCHEMA.SCHEMATA hat das folgende Schema:

Spaltenname Datentyp Wert
CATALOG_NAME STRING Der Name des Projekts, zu dem das Dataset gehört
SCHEMA_NAME STRING Der Name des Datasets, auch als datasetId bezeichnet
SCHEMA_OWNER STRING Der Wert ist immer NULL
CREATION_TIME TIMESTAMP Der Erstellungszeitpunkt des Datasets
LAST_MODIFIED_TIME TIMESTAMP Der Zeitpunkt der letzten Änderung des Datasets
LOCATION STRING Der geografische Standort des Datasets
DDL STRING Die CREATE SCHEMA-DDL-Anweisung, die zum Erstellen des Datasets verwendet werden kann
DEFAULT_COLLATION_NAME STRING Der Name der standardmäßigen Sortierspezifikation, falls vorhanden. Andernfalls NULL.

Beispiele

Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu:

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA
Beispiel: `myproject`.INFORMATION_SCHEMA.SCHEMATA

SELECT
  * EXCEPT (schema_owner)
FROM
  INFORMATION_SCHEMA.SCHEMATA;

Das Ergebnis sieht etwa so aus. Zur besseren Lesbarkeit werden einige Spalten aus dem Ergebnis ausgeschlossen.

+----------------+---------------+---------------------+---------------------+------------+------------------------------------------+
|  catalog_name  |  schema_name  |    creation_time    | last_modified_time  |  location  |                   ddl                    |
+----------------+---------------+---------------------+---------------------+------------+------------------------------------------+
| myproject      | mydataset1    | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US         | CREATE SCHEMA `myproject.mydataset1`     |
|                |               |                     |                     |            | OPTIONS(                                 |
|                |               |                     |                     |            |   location="us"                          |
|                |               |                     |                     |            | );                                       |
+----------------+---------------+---------------------+---------------------+------------+------------------------------------------+
| myproject      | mydataset2    | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US         | CREATE SCHEMA `myproject.mydataset2`     |
|                |               |                     |                     |            | OPTIONS(                                 |
|                |               |                     |                     |            |   default_partition_expiration_days=3.0, |
|                |               |                     |                     |            |   location="us"                          |
|                |               |                     |                     |            | );                                       |
+----------------+---------------+---------------------+---------------------+------------+------------------------------------------+
| myproject      | mydataset3    | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | US         | CREATE SCHEMA `myproject.mydataset3`     |
|                |               |                     |                     |            | OPTIONS(                                 |
|                |               |                     |                     |            |   description="My dataset",              |
|                |               |                     |                     |            |   location="us"                          |
|                |               |                     |                     |            | );                                       |
+----------------+---------------+---------------------+---------------------+------------+------------------------------------------+

Ansicht SCHEMATA_OPTIONS

Wenn Sie die Ansicht INFORMATION_SCHEMA.SCHEMATA_OPTIONS abfragen, wird im Ergebnis jede Option jedes Datasets in einem Projekt in einer eigenen Zeile dargestellt.

Die Ansicht INFORMATION_SCHEMA.SCHEMATA_OPTIONS hat das folgende Schema:

Spaltenname Datentyp Wert
CATALOG_NAME STRING Der Name des Projekts, zu dem das Dataset gehört
SCHEMA_NAME STRING Der Name des Datasets, auch als datasetId bezeichnet
OPTION_NAME STRING Ein Namenswert der Optionstabelle
OPTION_TYPE STRING Ein Datentypwert der Optionstabelle
OPTION_VALUE STRING Eine Wertoption der Optionstabelle

Optionstabelle
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 Die Standardlebensdauer aller Tabellen im Dataset in Tagen
friendly_name STRING Der beschreibende Name des Datasets
description STRING Eine Beschreibung des Datasets
labels ARRAY<STRUCT<STRING, STRING>> Ein STRUCT-Array, das die Labels des Datasets darstellt

Beispiele

Standardtabellenablaufzeit für alle Datasets in Ihrem Projekt abrufen

Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu:

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
Beispiel: `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'default_table_expiration_days';

Das Ergebnis sieht etwa so aus:

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

Labels für alle Datasets in Ihrem Projekt abrufen

Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu:

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
Beispiel: `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'labels';

Das Ergebnis sieht etwa so aus:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+