BigQuery:利用 Insert來更新資料表

許博淳
數據共筆
Published in
Apr 27, 2022

我們可以使用 Create or replace table來建立或重建表格(BigQuery:利用 Create or replace table創建表格),但如果只是要更新最新一段時間的資料,或是不想動到歷史資料可以做?

一樣使用 Create or replace table

使用 where條件來過濾要產生的時間範疇,再使用 Union all/Union distinct來合併表格

-- 將最新一週的資料撈出來,和上一週的資料合併
SELECT
*
FROM
data_source
WHERE
timestamp > "2022-01-01"
UNION DISTINCT
SELECT
*
FROM
table_last_week

這樣本質上沒有錯,但隨著既有的資料越來越大, Union 的成本就會提昇,所以可以用更聰明的方法。

Insert

Insert的寫法和 Create or replace table比又少寫了一些字,賺(誤)

Insert `dataset_name.user_using_time`()
AS
-- 原本的 Code
-- 最後記得加 ;

Insert 的寫法只需要花費運算出新資料的錢,至於既有的表格有多大,完全不影響。

--

--