本頁說明如何對欄狀資料執行查詢。
查詢欄狀資料
Spanner 查詢引擎會分析查詢,並在有利時自動選取資料欄格式。不過,某些查詢類別可能仍需要查詢提示,才能使用直欄格式。以下是使用 @{scan_method=columnar} 查詢提示的範例:
@{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';
此外,您也可以使用查詢提示 @{scan_method=no_columnar},明確停用自動選取直欄。
使用 BigQuery 聯合查詢查詢 Spanner 資料欄式資料
如要從 BigQuery 讀取 Spanner 資料欄式資料,可以建立外部資料集,或使用 EXTERNAL_QUERY 函式。
查詢外部資料集時,如果系統偵測到適合查詢的直欄式資料,就會自動使用。
如果您使用 EXTERNAL_QUERY 函式,Spanner 會自動使用直欄資料 (如適用且適合工作負載)。您也可以在巢狀 Spanner 查詢中加入 @{scan_method=columnar} 提示。
以下範例說明如何使用查詢提示:
EXTERNAL_QUERY的第一個引數會指定外部連線和資料集,即my-project.us.albums。- 第二個引數是 SQL 查詢,會從
AlbumInfo資料表選取MarketingBudget,其中MarketingBudget小於 500,000。 @{scan_method=columnar}提示會針對資料欄掃描,最佳化外部查詢。- 外部
SELECT陳述式會計算外部查詢傳回的值總和。MarketingBudget AS total_marketing_spend子句會為計算出的總和指派別名。
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;');