このページでは、列データに対してクエリを実行する方法について説明します。
列形式のデータをクエリする
@{scan_method=columnar}
クエリヒントを使用すると、クエリで列形式のデータを読み取ることができます。scan_method
ヒントは、ステートメント レベルまたはテーブル レベルで設定できます。
たとえば、次のクエリを使用して、Singers
テーブルと Messages
テーブルから列データを読み取ることができます。
@{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
を指定します。- 2 番目の引数は、
MarketingBudget
が 50 万未満のAlbumInfo
テーブルからMarketingBudget
を選択する SQL クエリです。 @{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;');
次のステップ
- カラム型エンジンについて学習する。
- カラム型エンジンを有効にする方法を学習する。
- カラム型エンジンをモニタリングする方法を確認する。