Blob-Speicherdaten abfragen

In diesem Dokument wird die Abfrage von Daten beschrieben, die in einer BigLake-Tabelle von Azure Blob Storage gespeichert sind.

Hinweis

Prüfen Sie, ob die Blob Storage BigLake-Tabelle vorhanden ist.

Erforderliche Rollen

Zum Abfragen von Blob-Speicher-BigLake-Tabellen muss der Aufrufer der BigQuery API die folgenden Rollen haben:

  • BigQuery-Verbindungsnutzer (roles/bigquery.connectionUser)
  • BigQuery Datenbetrachter (roles/bigquery.dataViewer)
  • BigQuery-Nutzer (roles/bigquery.user)

Der Aufrufer kann Ihr Konto oder ein Dienstkonto für Blob-Speicherverbindungen sein. Abhängig von Ihren Berechtigungen können Sie diese Rollen selbst zuweisen oder Ihren Administrator bitten, sie Ihnen zu gewähren. Weitere Informationen zum Gewähren von Berechtigungen finden Sie unter Zuweisbare Rollen für Ressourcen aufrufen.

Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die genauen Berechtigungen anzuzeigen, die zum Abfragen von BigLake-Tabellen in Blob Storage erforderlich sind:

Erforderliche Berechtigungen

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

BigLake-Tabellen in Blob Storage abfragen

Nachdem Sie eine Blob Storage-BigLake-Tabelle erstellt haben, können Sie sie mit der GoogleSQL-Syntax abfragen, so als wäre sie eine BigQuery-Standardtabelle.

Die im Cache gespeicherten Abfrageergebnisse werden in einer temporären BigQuery-Tabelle gespeichert. Informationen zum Abfragen einer temporären BigLake-Tabelle finden Sie unter Temporäre BigLake-Tabelle abfragen. Weitere Informationen zu den Einschränkungen und Kontingenten in BigQuery Omni finden Sie unter Einschränkungen und Kontingente.

Verwenden Sie beim Erstellen einer Reservierung in einer BigQuery Omni-Region die Enterprise Edition. Informationen zum Erstellen einer Reservierung mit einer Version finden Sie unter Reservierungen erstellen.

Führen Sie eine Abfrage der Tabelle "Blob Storage BigLake" aus:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT * FROM DATASET_NAME.TABLE_NAME;

    Ersetzen Sie Folgendes:

    • DATASET_NAME: der Name des Datasets, das Sie erstellt haben
    • TABLE_NAME: der Name der BigLake-Tabelle, die Sie erstellt haben

    • Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

Temporäre Tabelle abfragen

BigQuery erstellt temporäre Tabellen zum Speichern von Abfrageergebnissen. Sie können das Abfrageergebnis aus temporären Tabellen mit der Google Cloud Console oder der BigQuery API abrufen.

Wählen Sie eine der folgenden Optionen aus:

Console

Wenn Sie eine BigLake-Tabelle abfragen, die auf externe Cloud-Daten verweist, können Sie die in der Google Cloud Console angezeigten Abfrageergebnisse aufrufen.

API

So fragen Sie eine BigLake-Tabelle mithilfe der API ab:

  1. Erstellen Sie ein Jobobjekt.
  2. Rufen Sie die Methode jobs.insert auf, um die Abfrage asynchron auszuführen, oder die Methode jobs.query, um die Abfrage synchron auszuführen. Übergeben Sie dabei das Job-Objekt.
  3. Lesen Sie Zeilen mit jobs.getQueryResults, indem Sie die angegebene Jobreferenz übergeben, und mit tabledata.list, indem Sie die angegebene Tabellenreferenz des Abfrageergebnisses übergeben.

Pseudospalte _FILE_NAME abfragen

Auf externen Datenquellen basierende Tabellen enthalten die Pseudospalte _FILE_NAME. In dieser Spalte wird der vollqualifizierte Pfad zu der Datei angegeben, zu der die Zeile gehört. Diese Spalte ist nur für Tabellen verfügbar, die auf externe Daten verweisen, die in Cloud Storage, Google Drive, Amazon S3 oder Azure Blob Storage gespeichert sind.

Der Spaltenname _FILE_NAME ist reserviert, d. h. Sie können keine Spalte mit diesem Namen in Ihren Tabellen erstellen. Zur Auswahl des Werts _FILE_NAME müssen Sie ein Alias verwenden. Die folgende Beispielabfrage zeigt, wie Sie _FILE_NAME auswählen, indem Sie der Pseudospalte den Alias fn zuweisen.

  bq query \
  --project_id=PROJECT_ID \
  --use_legacy_sql=false \
  'SELECT
     name,
     _FILE_NAME AS fn
   FROM
     `DATASET.TABLE_NAME`
   WHERE
     name contains "Alex"' 

Ersetzen Sie Folgendes:

  • PROJECT_ID ist eine gültige Projekt-ID. Dieses Flag ist nicht erforderlich, wenn Sie Cloud Shell verwenden oder in der Google Cloud CLI ein Standardprojekt einrichten.
  • DATASET ist der Name des Datasets, in dem die permanente externe Tabelle gespeichert ist.
  • TABLE_NAME ist der Name der permanenten externen Tabelle.

Wenn die Abfrage ein Filterprädikat in der Pseudospalte _FILE_NAME hat, versucht BigQuery, beim Lesen Dateien zu überspringen, die nicht dem Filter entsprechen. Ähnliche Empfehlungen wie beim Abfragen von nach Aufnahmezeit partitionierten Tabellen mithilfe von Pseudospalten gelten bei der Erstellung von Abfrageprädikaten mit der Pseudospalte _FILE_NAME.

Nächste Schritte