在 Google Storage 中,我有一个存储桶,其中一个文件夹包含文件,一个子文件夹包含相同类型的文件,如下所示:
bucket1
|_ folder1
| |_ fileD.csv
| |_ fileE.csv
|_ fileA.csv
|_ fileB.csv
|_ fileC.csv
当我这样做时,bq load --source_format=CSV my.table gs://bucket1/*.csv它还会加载吗?fileD.txtfileE.csv
在 Google Storage 中,我有一个存储桶,其中一个文件夹包含文件,一个子文件夹包含相同类型的文件,如下所示:
bucket1
|_ folder1
| |_ fileD.csv
| |_ fileE.csv
|_ fileA.csv
|_ fileB.csv
|_ fileC.csv
当我这样做时,bq load --source_format=CSV my.table gs://bucket1/*.csv它还会加载吗?fileD.txtfileE.csv
你的问题的答案是肯定的。
实际上,GCS将文件和目录都视为相似的对象。表示下面的路径,例如引用名称以gs://my-bucket/directory1/开头并以.csv结尾的对象
gs://my-bucket/directory1/*.csv
现在假设我们在存储桶my-bucket中只有目录directory1
在这种情况下,以下任何路径都会带来相同的结果:
gs://my-bucket/directory1/*.csv
gs://my-bucket/direct*.csv
gs://my-bucket/directory1/*
gs://my-bucket/d*.csv
gs://my-bucket/*.csv
[...]
最后,假设我们在存储桶my-bucket中有目录directory1和directory1_test
在这种情况下,让我们看看它是如何工作的:
仅参考第一个目录:
gs://my-bucket/directory1/*.csv
仅引用第二个目录:
gs://my-bucket/directory1_*.csv
gs://my-bucket/directory1_t*.csv
gs://my-bucket/directory1_teste*.csv
gs://my-bucket/directory1_teste/*.csv
[...]
引用两个目录:
gs://my-bucket/directory1*.csv
鉴于此,您应该更多地考虑对象文件名,而不是目录和子目录。