Bigqueryで大きなデータを扱って分析をする時、何度もクエリを打つとお金がかかってしまうので一時テーブルを作って置きたくなることがよくあります。
しかし、一時テーブルを作るクエリを別で書くと、クエリの視認性が悪くなります。
また、一時テーブルは不要になったら削除したい。
そんな時使えるクエリです。
CREATE TABLE IF NOT EXISTS
をつかってすでに作成済みの場合はスキャンしないようにします。
CREATE TABLE
はAS
を利用すると直接クエリの中身をINSERTできます。
expiration_timestamp
を活用してテーブルの有効期限を設定します。
CREATE TABLE IF NOT EXISTS
toaru-data.tmp_id_401to420
OPTIONS(
expiration_timestamp=TIMESTAMP(DATE_ADD(CURRENT_DATE(), INTERVAL 2 WEEK))
)
AS
SELECT
i.app_user_id,
FROM `koukoku_log.ad_log` a
LEFT JOIN `koudou.user_view` i ON a.user_id = i.user_id
WHERE partition_datetime BETWEEN '2022-04-01' AND '2022-04-20'
AND koukoku_log.ad_id='hoge'
;
SELECT * FROM `toaru-data.tmp_id_401to420`