You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery是否有类似Snowflake COPY INTO的命令?支持S3加载与时间戳注入

BigQuery 实现类似 Snowflake COPY INTO 的自定义字段注入功能

BigQuery 没有和 Snowflake 完全一致的 COPY INTO 语法,但可以通过两种实用方式实现你需要的**注入当前时间戳(batchtimestamp)**的需求,同时完成S3文件的加载。

方法一:临时表中转(适合需要先校验原始数据的场景)

  1. 先创建临时表加载S3上的原始CSV数据
CREATE OR REPLACE TEMP TABLE temp_raw_data
OPTIONS (
  format = 'CSV',
  field_delimiter = ',',
  quote = '"'
) AS SELECT * FROM `s3://mys3.myfolder/something/blah/*`;
  1. 往目标表插入数据时追加batchtimestamp字段
INSERT INTO my_project.my_dataset.some_table (batchtimestamp, some_column, some_column2)
SELECT CURRENT_TIMESTAMP() AS batchtimestamp, some_column, some_column2
FROM temp_raw_data;

方法二:直接查询插入(简洁高效,适合无需中间校验的场景)

如果是直接覆盖目标表:

CREATE OR REPLACE TABLE my_project.my_dataset.some_table
AS SELECT
  CURRENT_TIMESTAMP() AS batchtimestamp,
  some_column,
  some_column2
FROM `s3://mys3.myfolder/something/blah/*`
OPTIONS (
  format = 'CSV',
  field_delimiter = ',',
  quote = '"'
);

如果是往已存在的表追加数据:

INSERT INTO my_project.my_dataset.some_table (batchtimestamp, some_column, some_column2)
SELECT
  CURRENT_TIMESTAMP() AS batchtimestamp,
  some_column,
  some_column2
FROM `s3://mys3.myfolder/something/blah/*`
OPTIONS (
  format = 'CSV',
  field_delimiter = ',',
  quote = '"'
);

说明:CURRENT_TIMESTAMP() 默认返回UTC时区的当前时间,你可以通过设置会话时区调整返回的时间戳时区。

内容的提问来源于stack exchange,提问作者dko512

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:32:18