繁体   English   中英

BigQuery:将动态文件夹名称插入到 EXPORT DATA 语句中

[英]BigQuery: Insert dynamic folder name into an EXPORT DATA statement

我正在尝试在数据导出时动态设置文件夹名称。
下面创建一个名为“@date”的文件夹并且不输入实际的日期变量。

是否可以将动态值插入到 uri 中?

EXECUTE IMMEDIATE 

"EXPORT DATA OPTIONS(uri='gs://bucket/folder/@date/*.csv',  format='CSV',   overwrite=true,  header=true,  field_delimiter=',') AS SELECT field1, field2 FROM `dataset.table` ORDER BY field1 LIMIT 10"

USING CAST(CURRENT_DATE() AS STRING) as date;

我的答案可能不适合您的答案,但可能会帮助遇到我的情况的其他人,其中必须将带有 GCS 路径的文件名作为输入参数传递,如下所示:

StoredProcedures_Offers(filePath STRING)

那么这个filePath需要传递到EXPORT DATA OPTIONS uri 部分,如下所示:

EXPORT DATA OPTIONS( uri=""||filePath||"", format='JSON', overwrite=true) AS

注意:在答案中排除查询部分只是为了突出显示 EXPORT 部分

尝试连接

EXECUTE IMMEDIATE CONCAT(
    "EXPORT DATA OPTIONS(uri='gs://bucket/folder/",
    CAST(CURRENT_DATE() AS STRING),
    "/*.csv',  format='CSV',   overwrite=true,  header=true,  field_delimiter=',') AS SELECT field1, field2 FROM `dataset.table` ORDER BY field1 LIMIT 10"
)

我找到了另一种插入格式化时间戳的方法,感觉更简单。
'|| 时间戳||' 下面的uri中的部分

"EXPORT DATA OPTIONS ( uri='gs://bucket/folder-
'|| FORMAT_TIMESTAMP("%F-%T", TIMESTAMP_ADD(Current_TIMESTAMP(), INTERVAL 10 HOUR)) ||'
-*.csv',  format='CSV',   overwrite=true,  header=true,  field_delimiter=',') AS SELECT field1, field2 FROM `dataset.table` "

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM