#SQLの機能を利用して定期取込み自動化
##1 特に下記新機能を使ってみたい
列名 | 型 |
---|---|
TABLE_SCHEMA | STRING |
TABLE_NAME | STRING |
TABLE_ROWS | INT64 |
TABLE_COMMENT | STRING |
###4 実行SQL |
transfer.sql
/*1 日付変数を定義*/
DECLARE yyyymmdd INT64 DEFAULT 20210601;
SET yyyymmdd = (SELECT CAST(FORMAT_DATE("%G%m%d",CURRENT_DATE() -1) as INT64)) ;
/*2 GCSとの外部接続テーブル作成*/
EXECUTE IMMEDIATE format("""
CREATE OR REPLACE EXTERNAL TABLE <外部接続テーブル名>(TABLE_SCHEMA STRING,TABLE_NAME STRING,TABLE_ROWS INT64,TABLE_COMMENT STRING)
OPTIONS
(uris=["gs://<パケット名>/<フォルダ名>/table_%d.csv"], skip_leading_rows=1,format=CSV)
""", yyyymmdd);
/*3 外部接続テーブルから、実テーブル作成*/
EXECUTE IMMEDIATE format("""
CREATE OR REPLACE TABLE `<project名>`.test.table_%d
as (select * from <外部接続テーブル名>)
""", yyyymmdd);