使用BigQuery数据传输功能时如何排除含_All_Data的文件名?
BigQuery Data Transfer 排除GCS中含指定字符串的文件解决方案
BigQuery的Data Transfer服务针对GCS源的URI模式遵循Google Cloud Storage的对象命名规则,不支持直接使用!这类否定符来排除文件。要实现提取2023目录下以filename_2023开头且不含_All_Data的文件,可按以下方式操作:
正确实现方式
方法1:使用URI前缀+排除规则组合
- 在"Cloud Storage URI"栏填写基础匹配前缀:
bucket/filepath1/2023/*/*/filename_2023 - 在任务创建的文件选择环节,找到"排除文件"选项,添加排除模式:
*_All_Data.csv
方法2:使用精确匹配模式(直接在URI中实现)
如果文件名的日期部分固定为4位数字,可直接用精确模式匹配目标文件,避开带_All_Data的文件:
bucket/filepath1/2023/*/*/filename_2023[0-9][0-9][0-9][0-9].csv
效果验证
符合要求的文件会被正常匹配:
bucket/filepath1/2023/05/03/filename_20230503.csvbucket/filepath1/2023/05/02/filename_20230502.csvbucket/filepath1/2023/03/03/filename_20230303.csv
带_All_Data的文件会被排除:
bucket/filepath1/2023/05/03/filename_20230503_All_Data.csvbucket/filepath1/2023/05/02/filename_20230502_All_Data.csvbucket/filepath1/2023/03/03/filename_20230303_All_Data.csv
注意事项
- BigQuery Data Transfer的GCS URI不支持复杂正则的否定匹配,必须通过单独排除规则或精确前缀/后缀匹配实现。
- 若文件名日期格式有变化(比如6位数字),需调整模式中的数字匹配部分,例如将
[0-9][0-9][0-9][0-9]改为[0-9][0-9][0-9][0-9][0-9][0-9]。
内容的提问来源于stack exchange,提问作者Ronald Dacayanan
相关产品推荐
相关产品推荐

