Spaltendaten abfragen

Auf dieser Seite wird beschrieben, wie Sie Abfragen für spaltenorientierte Daten ausführen.

Spaltendaten abfragen

Mit dem Hinweis @{scan_method=columnar} kann eine Abfrage Spaltendaten lesen. Sie können den Hinweis scan_method auf Anweisungsebene oder auf Tabellenebene festlegen.

Mit den folgenden Abfragen können Sie beispielsweise Spaltendaten aus den Tabellen Singers und Messages lesen:

  • @{scan_method=columnar} SELECT COUNT(*) FROM Singers;
  • SELECT COUNT(*) FROM Singers @{scan_method=columnar};
  • @{scan_method=columnar} SELECT m.MsgBlob FROM Messages WHERE m.id='1234';

Spaltenbasierte Spanner-Daten mit föderierten BigQuery-Abfragen abfragen

Wenn Sie spaltenbasierte Spanner-Daten aus BigQuery lesen möchten, können Sie entweder ein externes Dataset erstellen oder die Funktion EXTERNAL_QUERY verwenden.

Wenn Sie externe Datasets abfragen, werden automatisch spaltenweise Daten verwendet, sofern sie verfügbar und für Ihre Abfrage geeignet sind.

Wenn Sie die Funktion EXTERNAL_QUERY verwenden, fügen Sie den Hinweis @{scan_method=columnar} in die verschachtelte Spanner-Abfrage ein.

Im folgenden Beispiel gilt:

  • Das erste Argument für EXTERNAL_QUERY gibt die externe Verbindung und das Dataset an: my-project.us.albums.
  • Das zweite Argument ist eine SQL-Abfrage, mit der MarketingBudget aus der Tabelle AlbumInfo ausgewählt wird, wobei MarketingBudget kleiner als 500.000 ist.
  • Mit dem Hinweis @{scan_method=columnar} wird die externe Abfrage für das spaltenweise Scannen optimiert.
  • Mit der äußeren SELECT-Anweisung wird die Summe der MarketingBudget-Werte berechnet, die von der externen Abfrage zurückgegeben werden.
  • Mit der AS total_marketing_spend-Klausel wird der berechneten Summe ein Alias zugewiesen.
SELECT SUM(MarketingBudget) AS total_marketing_spend
FROM
  EXTERNAL_QUERY(
    'my-project.us.albums',
    '@{scan_method=columnar} SELECT AlbumInfo.MarketingBudget FROM AlbumInfo WHERE AlbumInfo.MarketingBudget < 500000;');

Nächste Schritte