[英]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.