查詢欄狀資料

本頁說明如何對欄狀資料執行查詢。

查詢欄狀資料

@{scan_method=columnar} 查詢提示可讓查詢讀取資料欄資料。您可以在陳述式層級資料表層級設定 scan_method 提示。

舉例來說,您可以使用下列查詢,從 SingersMessages 資料表讀取資料欄資料:

  • @{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';

使用 BigQuery 聯合查詢查詢 Spanner 資料欄式資料

如要從 BigQuery 讀取 Spanner 欄位式資料,可以建立外部資料集,或使用 EXTERNAL_QUERY 函式。

查詢外部資料集時,如果系統偵測到適合查詢的直欄式資料,就會自動使用。

如果使用 EXTERNAL_QUERY 函式,請在巢狀 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;');

後續步驟