Metadatenindexierung für BigQuery-Tabellen
In diesem Dokument wird die Indexierung von Spaltenmetadaten in BigQuery beschrieben und erklärt, wie Sie dedizierte Ressourcen zuweisen, um die Aktualität des Index und die Abfrageleistung zu verbessern.
BigQuery indexiert automatisch Metadaten für BigQuery-Tabellen mit mehr als 1 GiB. Diese Metadaten umfassen den Dateispeicherort, Partitionierungsinformationen und Attribute auf Spaltenebene, die BigQuery verwendet, um Ihre Abfragen zu optimieren und zu beschleunigen.
Standardmäßig ist die Metadatenindexierung in BigQuery ein kostenloser Hintergrundvorgang, für den keine Maßnahmen von Ihrer Seite erforderlich sind. Die Aktualität des Index hängt jedoch von den verfügbaren kostenlosen Ressourcen ab und es gibt keine Service Level Objectives (SLOs) für die Leistung. Wenn die Aktualität des Index für
Ihren Anwendungsfall entscheidend ist, empfehlen wir, eine
BACKGROUND Reservierung,
bei der Ressourcen für Hintergrundoptimierungsjobs freigegeben werden, zu konfigurieren.
Aktualisierungszeit des Metadatenindex ansehen
Wenn Sie die letzte Aktualisierungszeit des Metadatenindex einer Tabelle sehen möchten, fragen Sie die
LAST_METADATA_INDEX_REFRESH_TIME Spalte der
INFORMATION_SCHEMA.TABLE_STORAGE Ansicht ab.
Gehen Sie dazu so vor:
Rufen Sie in der Cloud de Confiance 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 Cloud de Confiance by S3NS Projekts in. 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 Spaltenmetadatenindex ansehen
Wenn Sie sehen möchten, ob der Spaltenmetadatenindex nach Abschluss eines Jobs verwendet wurde, prüfen Sie
die
TableMetadataCacheUsage Eigenschaft
der Job-Ressource. Wenn das Feld unusedReason leer ist (nicht ausgefüllt), wurde der Spaltenmetadatenindex verwendet. Wenn es ausgefüllt ist, enthält das zugehörige Feld explanation einen Grund dafür, warum der Spaltenmetadatenindex nicht verwendet wurde.
Sie können die Nutzung des Spaltenmetadatenindex auch mit dem
metadata_cache_statistics Feld in der
INFORMATION_SCHEMA.JOBS Ansicht ansehen.
Im folgenden Beispiel wird die Nutzung des Spaltenmetadatenindex für den Job my-job angezeigt:
SELECT metadata_cache_statistics FROM `region-US`.INFORMATION_SCHEMA.JOBS WHERE job_id = 'my-job';
Ein weiteres Beispiel: Im folgenden Beispiel wird die Anzahl der Jobs angezeigt, die den Spaltenmetadatenindex für die Tabelle my-table verwendet haben:
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;
Dedizierte Indexierungsressourcen einrichten
Wenn Sie Ressourcen für Aktualisierungen der Metadatenindexierung in Ihrem Projekt einrichten möchten, muss Ihrem Projekt zuerst eine Reservierung zugewiesen sein. Gehen Sie dazu so vor:
Nachdem Sie Ihre Reservierung eingerichtet haben, wählen Sie eine der folgenden Methoden aus, um Ihrem Metadatenindexierungsjob Slots zuzuweisen. Standardmäßig werden auf diese Weise zugewiesene Slots für andere Jobs freigegeben, wenn sie nicht verwendet werden. Weitere Informationen finden Sie unter siehe Inaktive Slots.
Console
Rufen Sie in der Cloud de Confiance Console die Seite Kapazitätsverwaltung auf.
Klicken Sie auf Reservierungsaktionen > Zuweisung erstellen.
Wählen Sie Ihr Reservierungsprojekt aus.
Legen Sie für Jobtyp den Wert Hintergrund 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 Verwaltungsprojekts , zu 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
CREATE ASSIGNMENT DDL-Anweisung, um einem Projekt eine Reservierung zuzuweisen.
Rufen Sie in der Cloud de Confiance 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 Verwaltungsprojekts , zu 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 mit den Tabellen. Dieses Projekt wird der Reservierung zugewiesen.
Klicken Sie auf Ausführen.
Informationen zu Indexierungsjobs ansehen
Nachdem Sie Ihre dedizierten Indexierungsjobs eingerichtet haben, können Sie Informationen
zu den Indexierungsjobs mit der
JOBS Ansicht ansehen.
Im folgenden SQL-Beispiel werden die fünf letzten Aktualisierungsjobs in
PROJECT_NAME angezeigt.
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
Der Benachrichtigungsprozess von Cloud Monitoring benachrichtigt Sie, wenn die Leistung von BigQuery nicht die festgelegten Kriterien erfüllt. Weitere Informationen finden Sie unter Benachrichtigungen – Übersicht. Bei der Metadatenindexierung können Sie Benachrichtigungen für die Slotnutzung und die Aktualität konfigurieren.
Benachrichtigung zur Slotnutzung
Diese Benachrichtigung wird gesendet, wenn die Hintergrundreservierung einen bestimmten Prozentsatz ihrer Zuweisung überschreitet. 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, dass Sie die Größe Ihrer Reservierung erhöhen.
So konfigurieren Sie diese Benachrichtigung für jede Hintergrundreservierung:
- Richten Sie einen Monitoring-Benachrichtigungskanal 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.
Benachrichtigung zur Aktualität
Diese Benachrichtigung wird gesendet, wenn die durchschnittliche Aktualität des Spaltenmetadatenindex im Vergleich zum vorhandenen Durchschnitt zu stark ansteigt. Der Standardgrenzwert wird ausgelöst, wenn der Durchschnitt über vier Stunden mehr als doppelt so hoch ist wie der vorherige Durchschnitt und dies länger als 30 Minuten der Fall ist. Wenn diese Benachrichtigung ausgelöst wird, empfehlen wir, die Größe Ihrer Reservierung zu erhöhen oder eine Hintergrundreservierung zu erstellen, falls Sie noch keine haben.
So konfigurieren Sie diese Benachrichtigung:
- Richten Sie einen Monitoring-Benachrichtigungskanal 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 Aktualität des Spaltenmetadatenindex – prozentualer Anstieg 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.
Beschränkungen
Leistungsverbesserungen bei Metadatenabfragen gelten nur für die Anweisungen SELECT, INSERT und
CREATE TABLE AS SELECT. Anweisungen der Datenbearbeitungssprache (Data Manipulation Language, DML) profitieren nicht von der Metadatenindexierung.
Nächste Schritte
- Informationen zum Aufrufen aller Jobs in Ihrem Projekt mit der
JOBSAnsicht - Informationen zum Aufrufen der Slotkapazität und -auslastung