Metadatenindexierung für BigQuery-Tabellen
In diesem Dokument wird die Indexierung von Spaltenmetadaten in BigQuery beschrieben. Außerdem erfahren Sie, wie Sie spezielle Ressourcen zuweisen, um die Indexaktualität und Abfrageleistung zu verbessern.
BigQuery indexiert automatisch Metadaten für BigQuery-Tabellen, die mehr als 1 GiB groß sind. Diese Metadaten umfassen den Speicherort der Datei, Informationen zur Partitionierung und Attribute auf Spaltenebene, die BigQuery zur Optimierung und Beschleunigung Ihrer Abfragen verwendet.
Standardmäßig ist die Metadatenindexierung in BigQuery ein kostenloser Hintergrundvorgang, der keine Maßnahmen von Ihrer Seite erfordert. Die Indexaktualität hängt jedoch von verfügbaren freien Ressourcen ab und hat keine Leistungs-Service Level Objectives (SLOs). Wenn die Indexaktualität für Ihren Anwendungsfall entscheidend ist, empfehlen wir die Konfiguration einer BACKGROUND
-Reservierung.
Uhrzeit der Aktualisierung des Metadatenindexes aufrufen
Wenn Sie die Uhrzeit der letzten Aktualisierung des Metadatenindexes einer Tabelle sehen möchten, fragen Sie die Spalte LAST_METADATA_INDEX_REFRESH_TIME
der Ansicht INFORMATION_SCHEMA.TABLE_STORAGE
ab.
Gehen Sie dazu so vor:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
SELECT project_id, project_number, table_name, last_metadata_index_refresh_time FROM [
PROJECT_ID
.]region-REGION
.INFORMATION_SCHEMA.TABLE_STORAGE;Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.REGION
: die Region, in der sich das Projekt befindet, z. B.region-us
.
Klicken Sie auf
Ausführen.
Nutzung des Spaltenmetadatenindexes ansehen
Ob der Metadatenindex der Spalte nach Abschluss eines Jobs verwendet wurde, sehen Sie in der Eigenschaft TableMetadataCacheUsage
der Job-Ressource. Wenn das Feld unusedReason
leer ist, wurde der Metadatenindex der Spalte verwendet. Wenn es ausgefüllt ist, enthält das zugehörige explanation
-Feld einen Grund dafür, warum der Metadatenindex der Spalte nicht verwendet wurde.
Sie können die Nutzung des Spaltenmetadatenindexes auch mit dem Feld metadata_cache_statistics
in der Ansicht INFORMATION_SCHEMA.JOBS
aufrufen.
Im folgenden Beispiel wird beispielsweise die Nutzung des Spaltenmetadatenindexes für den Job my-job
angezeigt:
SELECT metadata_cache_statistics FROM `region-US`.INFORMATION_SCHEMA.JOBS WHERE job_id = 'my-job';
Im folgenden Beispiel wird die Anzahl der Jobs angezeigt, für die der Spaltenmetadatenindex für die Tabelle my-table
verwendet wurde:
SELECT COUNT(*) FROM `region-US`.INFORMATION_SCHEMA.JOBS, UNNEST(metadata_cache_statistics.table_metadata_cache_usage) AS stats WHERE stats.table_reference.table_id='my-table' AND stats.table_reference.dataset_id='my-dataset' AND stats.table_reference.project_id='my-project' AND stats.unusedReason IS NULL;
Spezielle Indexierungsressourcen einrichten
Damit Sie Ressourcen für Aktualisierungen der Metadatenindexierung in Ihrem Projekt einrichten können, muss Ihrem Projekt zuerst eine Reservierung zugewiesen werden. Gehen Sie dazu so vor:
Wählen Sie nach der Einrichtung Ihrer Reservierung eine der folgenden Methoden aus, um Ihrem Metadatenindexierungsjob Slots zuzuweisen. Standardmäßig werden Slots, die Sie auf diese Weise zuweisen, für andere Jobs freigegeben, wenn sie inaktiv sind. Weitere Informationen finden Sie unter Inaktive Slots.
Console
Rufen Sie in der Google Cloud Console die Seite Kapazitätsverwaltung auf.
Klicken Sie auf > Aufgabe erstellen.
ReservierungsaktionenWählen Sie Ihr Reservierungsprojekt aus.
Legen Sie für Job Type (Jobtyp) den Wert Background fest.
Klicken Sie auf Erstellen.
bq
Führen Sie den Befehl bq mk
aus.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation_assignment \ --reservation_id=RESERVATION_NAME \ --assignee_id=PROJECT_ID \ --job_type=BACKGROUND \ --assignee_type=PROJECT
Ersetzen Sie Folgendes:
ADMIN_PROJECT_ID
: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört.LOCATION
: Der Standort der Reservierung.RESERVATION_NAME
: der Name der Reservierung.PROJECT_ID
: die Projekt-ID, die dieser Reservierung zugewiesen werden soll.
SQL
Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT
, um einer Reservierung ein Projekt zuzuweisen.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
Ersetzen Sie Folgendes:CREATE ASSIGNMENT ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID OPTIONS ( assignee = 'projects/PROJECT_ID', job_type = 'BACKGROUND');
ADMIN_PROJECT_ID
: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört.LOCATION
: Der Standort der Reservierung.RESERVATION_NAME
: Der Name der Reservierung.ASSIGNMENT_ID
: Die ID der Zuweisung. Die ID muss für das Projekt und den Standort eindeutig sein, mit einem Kleinbuchstaben oder einer Zahl beginnen und enden und darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten.PROJECT_ID
: die Projekt-ID, die die Tabellen enthält. Dieses Projekt wird der Reservierung zugewiesen.
Klicken Sie auf
Ausführen.
Informationen zu Indexierungsjobs aufrufen
Nachdem Sie Ihre Indexierungsjobs eingerichtet haben, können Sie sich in der Ansicht JOBS
Informationen zu den Indexierungsjobs ansehen.
Das folgende SQL-Beispiel zeigt die fünf neuesten Aktualisierungsjobs in PROJECT_NAME.
SELECT * FROM region-us.INFORMATION_SCHEMA.JOBS WHERE project_id = 'PROJECT_NAME' AND SEARCH(job_id, '`metadata_cache_refresh`') ORDER BY creation_time DESC LIMIT 5;
Ersetzen Sie PROJECT_NAME
durch den Namen des Projekts, das Ihre Metadatenindexierungsjobs enthält.
Benachrichtigungen zur Metadatenindexierung konfigurieren
Über das Cloud Monitoring-Benachrichtigungsverfahren werden Sie informiert, wenn die BigQuery-Leistung nicht die festgelegten Kriterien erfüllt. Weitere Informationen finden Sie unter Benachrichtigungen. Mit der Metadatenindexierung können Sie Benachrichtigungen für die Slotnutzung und die Gültigkeitsdauer konfigurieren.
Benachrichtigung zur Slotnutzung
Sie werden benachrichtigt, wenn die Hintergrundreservoirs einen bestimmten Prozentsatz ihrer Zuweisung überschreiten. Der Standardwert ist 95%. Sie können diese Benachrichtigung für eine bestimmte Reservierung oder für jede Hintergrundreservierung konfigurieren. Wenn diese Benachrichtigung ausgelöst wird, empfehlen wir Ihnen, die Größe der Reservierung zu erhöhen.
So konfigurieren Sie diese Benachrichtigung für jede Hintergrundreservierung:
- Richten Sie einen Benachrichtigungskanal für die Überwachung ein, falls Sie dies noch nicht getan haben.
Rufen Sie die Seite Integrationen auf.
Suchen Sie nach der BigQuery-Integration und klicken Sie auf Details ansehen.
Wählen Sie auf dem Tab Benachrichtigungen die Option Slotnutzung – Hintergrund-Metadaten-Cache-Slotnutzung zu hoch aus.
Optional: Wenn Sie diese Benachrichtigung weiter anpassen möchten, klicken Sie auf Optionen anzeigen > Benachrichtigungsrichtlinie anpassen.
Wählen Sie unter Benachrichtigungen konfigurieren Ihren Benachrichtigungskanal aus.
Klicken Sie auf Erstellen.
Warnung bei Veralterung
Sie werden benachrichtigt, wenn die durchschnittliche Metadatenindex-Veralterung der Spalte im Vergleich zum vorhandenen Durchschnitt zu stark zunimmt. Der Standardgrenzwert ist erreicht, wenn der Durchschnitt über vier Stunden mehr als doppelt so hoch wie der vorherige Durchschnitt ist und dies länger als 30 Minuten anhält. Wenn diese Benachrichtigung ausgelöst wird, empfehlen wir, die Größe der Reservierung zu erhöhen oder eine Hintergrundreservierung zu erstellen, falls Sie noch keine haben.
So konfigurieren Sie diese Benachrichtigung:
- Richten Sie einen Benachrichtigungskanal für die Überwachung ein, falls Sie dies noch nicht getan haben.
Rufen Sie die Seite Integrationen auf.
Suchen Sie nach der BigQuery-Integration und klicken Sie auf Details ansehen.
Wählen Sie auf dem Tab Benachrichtigungen die Option Veralterung des Indexes für Metadaten von Spalten – zu starker prozentualer Anstieg aus.
Optional: Wenn Sie diese Benachrichtigung weiter anpassen möchten, klicken Sie auf Optionen anzeigen > Benachrichtigungsrichtlinie anpassen.
Wählen Sie unter Benachrichtigungen konfigurieren Ihren Benachrichtigungskanal aus.
Klicken Sie auf Erstellen.
Beschränkungen
Leistungsverbesserungen für Metadatenabfragen gelten nur für SELECT
-, INSERT
- und CREATE TABLE AS SELECT
-Anweisungen. Bei DML-Anweisungen (Data Manipulation Language, Datenbearbeitungssprache) kommt es durch die Metadatenindexierung nicht zu Leistungsverbesserungen.
Nächste Schritte
- Informationen dazu, wie Sie mit der Ansicht
JOBS
alle Jobs in Ihrem Projekt aufrufen, finden Sie hier. - Informationen zum Aufrufen der Slotkapazität und -auslastung