查詢直欄資料

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

查詢欄狀資料

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;');

後續步驟