{GCP BigQuery}ワイルドカード テーブルを使用した複数テーブルに対するクエリ

 

https://cloud.google.com/bigquery/docs/querying-wildcard-tables?hl=ja


ワイルドカード テーブルは、ワイルドカード式に一致するすべてのテーブルが結合されたものを表します。


-- 1. 前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-southeast1 --quiet
gcloud config set compute/zone asia-southeast1-a --quiet

gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com --project project01-9999999

gcloud components update


-- 2. BigQuery API有効化

gcloud services list --enabled


gcloud services enable bigquery.googleapis.com \
--project project01-9999999

 

-- 3. BigQueryデータセットを作成する

CREATE SCHEMA ds01;

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA
order by schema_name
;

 


-- 4. テストテーブルの作成


CREATE TABLE ds01.tab2020 ( col1 NUMERIC );
CREATE TABLE ds01.tab2021 ( col1 NUMERIC );
CREATE TABLE ds01.tab2022 ( col1 NUMERIC );
CREATE TABLE ds01.tab2023 ( col1 NUMERIC );
CREATE TABLE ds01.tab2024 ( col1 NUMERIC );
CREATE TABLE ds01.tab2025 ( col1 NUMERIC );
CREATE TABLE ds01.tab2026 ( col1 NUMERIC );
CREATE TABLE ds01.tab2027 ( col1 NUMERIC );
CREATE TABLE ds01.tab2028 ( col1 NUMERIC );
CREATE TABLE ds01.tab2029 ( col1 NUMERIC );

 


select * from ds01.INFORMATION_SCHEMA.TABLES
order by table_name
;

SELECT *
FROM ds01.INFORMATION_SCHEMA.COLUMNS
order by table_name,column_name
;

insert into ds01.tab2020 values(2020);
insert into ds01.tab2021 values(2021);
insert into ds01.tab2022 values(2022);
insert into ds01.tab2023 values(2023);
insert into ds01.tab2024 values(2024);
insert into ds01.tab2025 values(2025);
insert into ds01.tab2026 values(2026);
insert into ds01.tab2027 values(2027);
insert into ds01.tab2028 values(2028);
insert into ds01.tab2029 values(2029);


-- 5. 動作確認


select col1 from `ds01.tab202*`
order by col1;


select col1 from `ds01.tab202*`
where  _TABLE_SUFFIX in ('0','4')
order by col1;


-- 6. クリーンアップ

 

gcloud projects list

gcloud projects delete project01-9999999 \
--quiet