INFORMATION_SCHEMA
umfasst mehrere Ansichten, über die auf Metadaten von Datasets, Abläufen, Tabellen, Ansichten, Jobs, Reservierungen und Streamingdaten zugegriffen werden kann.
Sie können die INFORMATION_SCHEMA
-Reservierungsansichten abfragen, um Echtzeit-Metadaten zu BigQuery-Reservierungen abzurufen. Diese Ansichten enthalten eine Liste der Änderungen an Reservierungen, Zuweisungen und Kapazitätszusicherungen sowie eine Zeitachse für Reservierungen.
Erforderliche Berechtigungen
Zum Abrufen von Reservierungsmetadaten mithilfe von INFORMATION_SCHEMA
-Tabellen sind Berechtigungen mit entsprechenden Geltungsbereichen erforderlich:
RESERVATION_CHANGES_BY_PROJECT
undRESERVATIONS_BY_PROJECT
erfordernbigquery.reservations.list
für das Projekt und sind in den RollenBigQuery User
,BigQuery Resource Admin
undBigQuery Admin
verfügbar.CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
undCAPACITY_COMMITMENTS_BY_PROJECT
erfordernbigquery.capacityCommitments.list
für das Projekt und sind in den RollenBigQuery User
,BigQuery Resource Admin
undBigQuery Admin
verfügbar.ASSIGNMENT_CHANGES_BY_PROJECT
undASSIGNMENTS_BY_PROJECT
erfordernbigquery.reservationAssignments.list
für das Projekt und sind in den RollenBigQuery User
,BigQuery Resource Admin
undBigQuery Admin
verfügbar.
Schemas
Wenn Sie die INFORMATION_SCHEMA
-Reservierungsansichten abfragen, enthalten die Abfrageergebnisse Informationen zu BigQuery-Reservierungen.
Weitere Informationen zu BigQuery-Reservierungen finden Sie auf der Seite Konzepte für Reservierungen.
INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT
enthält eine Liste aller Änderungen an Reservierungen im Administrationsprojekt. Jede Zeile steht für eine Änderung an einer einzelnen Reservierung.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
enthält eine Liste aller aktuellen Reservierungen im Administrationsprojekt. Jede Zeile steht für eine einzelne aktuelle Reservierung. Eine aktuelle Reservierung ist eine Reservierung, die nicht gelöscht wurde.INFORMATION_SCHEMA.CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
enthält eine Liste aller Änderungen an Kapazitätszusicherungen im Administrationsprojekt. Jede Zeile steht für eine einzelne Änderung an einer einzelnen Kapazitätszusicherung.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
enthält eine Liste aller aktuellen Kapazitätszusicherungen im Administrationsprojekt. Jede Zeile steht für eine einzelne aktuelle Kapazitätszusicherung. Eine aktuelle Kapazitätszusicherung ist entweder ausstehend oder aktiv und wurde nicht gelöscht.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES_BY_PROJECT
enthält eine Liste aller Änderungen an Zuweisungen im Administrationsprojekt. Jede Zeile steht für eine einzelne Änderung an einer einzelnen Zuweisung.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
enthält eine Liste aller aktuellen Zuweisungen im Administrationsprojekt. Jede Zeile steht für eine einzelne aktuelle Zuweisung. Eine aktuelle Zuweisung ist entweder ausstehend oder aktiv und wurde nicht gelöscht.
Die Ansicht INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
change_timestamp |
TIMESTAMP |
Zeit, zu der die Änderung erfolgt ist. |
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
reservation_name |
STRING |
Vom Nutzer bereitgestellter Reservierungsname. |
ignore_idle_slots |
BOOL |
Bei "false" kann jede Abfrage, die diese Reservierung verwendet, inaktive Slots aus anderen Kapazitätszusicherungen verwenden. |
action |
STRING |
Typ des Ereignisses, das bei der Reservierung aufgetreten ist. Kann CREATE , UPDATE oder DELETE sein. |
slot_capacity |
INTEGER |
Mit der Reservierung verknüpfte Slotkapazität. |
user_email |
STRING |
E-Mail-Adresse des Nutzers, der die Änderung vorgenommen hat. google für von Google vorgenommene Änderungen. NULL , wenn die E-Mail-Adresse unbekannt ist. |
Die Ansicht INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
reservation_name |
STRING |
Vom Nutzer bereitgestellter Reservierungsname. |
ignore_idle_slots |
BOOL |
Bei "false" kann jede Abfrage, die diese Reservierung verwendet, inaktive Slots aus anderen Kapazitätszusicherungen verwenden. |
slot_capacity |
INTEGER |
Mit der Reservierung verknüpfte Slotkapazität. |
Die Ansicht INFORMATION_SCHEMA.CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
change_timestamp |
TIMESTAMP |
Zeit, zu der die Änderung erfolgt ist. |
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
capacity_commitment_id |
STRING |
ID, die die Kapazitätszusicherung eindeutig identifiziert. |
commitment_plan |
STRING |
Zusicherungstarif der Kapazitätszusicherung. |
state |
STRING |
Status, in dem sich die Kapazitätszusicherung befindet. Kann PENDING oder ACTIVE sein. |
slot_count |
INTEGER |
Mit der Kapazitätszusicherung verknüpfte Slotanzahl. |
action |
STRING |
Typ des Ereignisses, das bei der Kapazitätszusicherung aufgetreten ist. Kann CREATE , UPDATE oder DELETE sein. |
user_email |
STRING |
E-Mail-Adresse des Nutzers, der die Änderung vorgenommen hat. google für von Google vorgenommene Änderungen. NULL , wenn die E-Mail-Adresse unbekannt ist. |
commitment_start_time |
TIMESTAMP |
Der Beginn des aktuellen Zusicherungszeitraums. Gilt nur für ACTIVE -Kapazitätszusicherungen, andernfalls NULL . |
commitment_end_time |
TIMESTAMP |
Das Ende des aktuellen Zusicherungszeitraums. Gilt nur für ACTIVE -Kapazitätszusicherungen, andernfalls NULL . |
failure_status |
RECORD |
Bei einem FAILED -Zusicherungstarif wird der Fehlergrund angegeben, andernfalls NULL . RECORD besteht aus code und message . |
renewal_plan |
STRING |
Der Tarif, in den diese Kapazitätszusicherung konvertiert wird, nachdem die commitment_end_time verstrichen ist. Nachdem der Tarif geändert wurde, wird der Zusicherungszeitraum gemäß dem Zusicherungstarif verlängert. Gilt nur für ANNUAL - und TRIAL -Zusicherungen, andernfalls NULL . |
Die Ansicht INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
capacity_commitment_id |
STRING |
ID, die die Kapazitätszusicherung eindeutig identifiziert. |
commitment_plan |
STRING |
Zusicherungstarif der Kapazitätszusicherung. |
state |
STRING |
Status, in dem sich die Kapazitätszusicherung befindet. Kann PENDING oder ACTIVE sein. |
slot_count |
INTEGER |
Mit der Kapazitätszusicherung verknüpfte Slotanzahl. |
Die Ansicht INFORMATION_SCHEMA.ASSIGNMENT_CHANGES_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
change_timestamp |
TIMESTAMP |
Zeit, zu der die Änderung erfolgt ist. |
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
assignment_id |
STRING |
ID, die die Zuweisung eindeutig kennzeichnet. |
reservation_name |
STRING |
Name der Reservierung, die die Zuweisung verwendet. |
job_type |
STRING |
Die Art des Jobs, der die Reservierung verwenden kann. Kann PIPELINE oder QUERY sein. |
assignee_id |
STRING |
ID, die die Ressource des Empfängers der Zuweisung eindeutig identifiziert. |
assignee_number |
INTEGER |
Zahl, die die Ressource des Empfängers der Zuweisung eindeutig identifiziert. |
assignee_type |
STRING |
Typ der zugewiesenen Ressource. Kann organization , folder oder project sein. |
action |
STRING |
Typ des Ereignisses, das bei der Zuweisung aufgetreten ist. Kann CREATE oder DELETE sein. |
user_email |
STRING |
E-Mail-Adresse des Nutzers, der die Änderung vorgenommen hat. google für von Google vorgenommene Änderungen. NULL , wenn die E-Mail-Adresse unbekannt ist. |
state |
STRING |
Status der Zuweisung. Kann PENDING oder ACTIVE sein. |
Die Ansicht INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
assignment_id |
STRING |
ID, die die Zuweisung eindeutig kennzeichnet. |
reservation_name |
STRING |
Name der Reservierung, die die Zuweisung verwendet. |
job_type |
STRING |
Die Art des Jobs, der die Reservierung verwenden kann. Kann PIPELINE oder QUERY sein. |
assignee_id |
STRING |
ID, die die Ressource des Empfängers der Zuweisung eindeutig identifiziert. |
assignee_number |
INTEGER |
Zahl, die die Ressource des Empfängers der Zuweisung eindeutig identifiziert. |
assignee_type |
STRING |
Typ der zugewiesenen Ressource. Kann organization , folder oder project sein. |
Datenaufbewahrung
Aktuelle Reservierungen, Kapazitätszusicherungen und Zuweisungen werden so lang in den Reservierungsansichten angezeigt, bis sie gelöscht werden. Gelöschte Reservierungen, Kapazitätszusicherungen und Zuweisungen werden für maximal 41 Tage in den Ansichten RESERVATION_CHANGES_BY_PROJECT
, CAPACITY_COMMITMENT_CHANGES_BY_PROJECT
und ASSIGNMENT_CHANGES_BY_PROJECT
aufbewahrt. Anschließend werden sie aus den Ansichten entfernt.
Regionalität
Die INFORMATION_SCHEMA
-Reservierungsansichten von BigQuery sind regionalisiert. Für die Abfrage dieser Ansichten benötigen Sie einen Regions-Qualifier.
Reservierungs- und Jobansichten zusammenführen
Die Jobansichten enthalten die Spalte reservation_id
. Wenn Ihr Job in einem Projekt mit einer zugewiesenen Reservierung ausgeführt wurde, hat reservation_id
folgendes Format: reservation-admin-project:reservation-location.reservation-name
.
Wenn Sie die Reservierungs- und Jobansichten verbinden möchten, können Sie die Verbindung zwischen der Spalte für die Jobansichten (reservation_id
) und den Spalten für die Reservierungsansichten project_id
und reservation_name
herstellen. Weitere Informationen erhalten Sie in diesem Beispiel.
Beispiele
Beispiel 1
Im folgenden Beispiel werden die aktuell zugewiesene Reservierung und die Slotkapazität des Projekts abgerufen. Diese Informationen sind nützlich für das Debugging der Jobleistung. Dazu vergleichen Sie die Slotnutzung des Projekts mit der Slotkapazität der Reservierung.
Die Abfrage sollte in dem Administratorprojekt ausgeführt werden, das Reservierungen enthält.
Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie die Projekt-ID im folgenden Format hinzu: `project-id`.`region-region-name`.INFORMATION_SCHEMA.view
.
Beispiel: `reservation-admin-project`.`region-us`.INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT
So führen Sie die Abfrage aus:
Console
Öffnen Sie in der Cloud Console die Seite "BigQuery".
Geben Sie im Feld Abfrageeditor die folgende Standard-SQL-Abfrage ein. Für
INFORMATION_SCHEMA
muss die Standard-SQL-Syntax verwendet werden. In der Cloud Console ist Standard-SQL die Standardsyntax.SELECT reservation.reservation_name, reservation.slot_capacity FROM `reservation-admin-project.region-us`. INFORMATION_SCHEMA.ASSIGNMENT_CHANGES_BY_PROJECT assignment INNER JOIN `reservation-admin-project.region-us`. INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT AS reservation ON (assignment.reservation_name = reservation.reservation_name) WHERE assignment.action = "CREATE" AND assignment.assignee_id = "my-project" AND job_type = "QUERY" /* can also be "PIPELINE */ ORDER BY assignment.change_timestamp DESC, reservation.change_timestamp DESC LIMIT 1;
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie den Befehl query
und geben Sie die Standard-SQL-Syntax mit dem Flag --nouse_legacy_sql
oder --use_legacy_sql=false
an. Für Abfragen von INFORMATION_SCHEMA
ist die Standard-SQL-Syntax erforderlich.
So führen Sie die Abfrage aus:
bq query --nouse_legacy_sql \ 'SELECT reservation.reservation_name, reservation.slot_capacity FROM `reservation-admin-project.region-us`. INFORMATION_SCHEMA.ASSIGNMENT_CHANGES_BY_PROJECT assignment INNER JOIN `reservation-admin-project.region-us`. INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT AS reservation ON (assignment.reservation_name = reservation.reservation_name) WHERE assignment.action = "CREATE" AND assignment.assignee_id = "my-project" AND job_type = "QUERY" /* can also be "PIPELINE */ ORDER BY assignment.change_timestamp DESC, reservation.change_timestamp DESC LIMIT 1;'
Beispiel 2
Im folgenden Beispiel wird der Verlauf der Änderungen für eine bestimmte Reservierung abgerufen. Damit erhalten Sie eine Liste der Änderungen, die an dieser Reservierung vorgenommen wurden.
Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie die Projekt-ID im folgenden Format hinzu: `project-id`.`region-region-name`.INFORMATION_SCHEMA.view
.
Beispiel: `reservation-admin-project`.`region-us`.INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT
So führen Sie die Abfrage aus:
Console
Öffnen Sie in der Cloud Console die Seite "BigQuery".
Geben Sie im Feld Abfrageeditor die folgende Standard-SQL-Abfrage ein. Für
INFORMATION_SCHEMA
muss die Standard-SQL-Syntax verwendet werden. In der Cloud Console ist Standard-SQL die Standardsyntax.SELECT * FROM `reservation-admin-project.region-us`. INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT WHERE reservation_name = "..." ORDER BY change_timestamp DESC;
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie den Befehl query
und geben Sie die Standard-SQL-Syntax mit dem Flag --nouse_legacy_sql
oder --use_legacy_sql=false
an. Für Abfragen von INFORMATION_SCHEMA
ist die Standard-SQL-Syntax erforderlich.
So führen Sie die Abfrage aus:
bq query --nouse_legacy_sql \ 'SELECT * FROM `reservation-admin-project.region-us`. INFORMATION_SCHEMA.RESERVATION_CHANGES_BY_PROJECT WHERE reservation_name = "..." ORDER BY change_timestamp DESC;'
Beispiel 3
Im folgenden Beispiel werden die Ansichten JOBS_BY_PROJECT
und RESERVATIONS_BY_PROJECT
miteinander verbunden. Beiden können Sie Informationen zur Slotnutzung durch ein bestimmtes zugewiesenes Projekt in der vergangenen Stunde und der Slotkapazität jeder Reservierung im angegebenen Administrationsprojekt entnehmen. Ein zugewiesenes Projekt ist ein Projekt, dem eine Reservierung zugewiesen ist. Ein Administratorprojekt enthält die Reservierungen. Weitere Informationen finden Sie in der Dokumentation zu Reservierungen.
Bei dieser Abfrage werden mit der Ansicht RESERVATIONS_BY_PROJECT
Reservierungsinformationen aufgerufen. Wenn sich die Reservierungen in der letzten Stunde geändert haben, ist die Spalte reservation_slot_capacity
möglicherweise nicht korrekt.
Die Abfrage sollte mit dem Administratorprojekt ausgeführt werden, das Reservierungen oder das zugewiesene Projekt enthält. Wenn Sie die Abfrage für ein anderes Projekt als das Standardprojekt ausführen möchten, fügen Sie die Projekt-ID im folgenden Format hinzu: `project-id`.`region-region-name`.INFORMATION_SCHEMA.view
.
Beispiel: `reservation-admin-project`.`region-us`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
.
So führen Sie die Abfrage aus:
Console
Öffnen Sie in der Cloud Console die Seite "BigQuery".
Geben Sie im Feld Abfrageeditor die folgende Standard-SQL-Abfrage ein. Für
INFORMATION_SCHEMA
muss die Standard-SQL-Syntax verwendet werden. In der Cloud Console ist Standard-SQL die Standardsyntax.WITH job_data AS ( SELECT job.reservation_id, job.total_slot_ms FROM `assignee-project.region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT AS job WHERE job.start_time < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) ) SELECT reservation.reservation_name AS reservation_name, ANY_VALUE(reservation.slot_capacity) AS reservation_slot_capacity, SUM(job.total_slot_ms) / (1000 * 60 * 60) AS avg_slots_used_by_hour FROM job_data AS job INNER JOIN `admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT AS reservation ON (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name)) GROUP BY 1 ORDER BY 1 DESC;
Klicken Sie auf Ausführen.
gcloud
Verwenden Sie den Befehl query
und geben Sie die Standard-SQL-Syntax mit dem Flag --nouse_legacy_sql
oder --use_legacy_sql=false
an. Für Abfragen von INFORMATION_SCHEMA
ist die Standard-SQL-Syntax erforderlich.
So führen Sie die Abfrage aus:
bq query --nouse_legacy_sql \ 'WITH job_data AS ( SELECT job.reservation_id, job.total_slot_ms FROM `assignee-project.region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT AS job WHERE job.start_time < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) ) SELECT reservation.reservation_name AS reservation_name, ANY_VALUE(reservation.slot_capacity) AS reservation_slot_capacity, SUM(job.total_slot_ms) / (1000 * 60 * 60) AS avg_slots_used_by_hour FROM job_data AS job INNER JOIN `admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT AS reservation ON (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name)) GROUP BY 1 ORDER BY 1 DESC;'
Tipp
- Eine Übersicht über
INFORMATION_SCHEMA
finden Sie in der Einführung inINFORMATION_SCHEMA
von BigQuery - Mit
INFORMATION_SCHEMA
Metadaten von Jobs abrufen - Mit
INFORMATION_SCHEMA
Streamingmetadaten abrufen - Mit
INFORMATION_SCHEMA
Metadaten von Datasets abrufen - Mit
INFORMATION_SCHEMA
Metadaten von Tabellen abrufen - Mit
INFORMATION_SCHEMA
Metadaten von Ansichten abrufen