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 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 spaltenorientierte 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_QUERYgibt die externe Verbindung und das Dataset an:my-project.us.albums. - Das zweite Argument ist eine SQL-Abfrage, mit der
MarketingBudgetaus der TabelleAlbumInfoausgewählt wird, wobeiMarketingBudgetkleiner 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 derMarketingBudget-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
- Weitere Informationen zur spaltenbasierten Engine
- Weitere Informationen zum Aktivieren der spaltenorientierten Engine
- Spaltenorientierte Engine überwachen