我目前有一个S3 bucket,里面有两种不同类型的JSON文件:resource.JSON和metadata.JSON
bucket foo:
- a/b/resource.json
- a/b/metadata.json
- c/d/resource.json
- c/d/metadata.json
我想将每个类型文件摄取到其相应的表(如resource.json->resource table、metadata.json-<metadata table(中,但每个bucket只能使用一个SQS队列。
假设我有一个bucket、两个stage、两个表、两个管道(每个JSON文件类型一个stage/pipe/table(,有没有办法将Snowflake配置为从S3 bucket中读取,并将每个文件的内容放入正确的表中?
现在我有这个:
雪花中的资源表:
- 来自a/b/resource.json的条目
- 来自a/b/metadata.json的条目
- 来自c/d/resource.json的条目
- 来自c/d/metadata.json的条目
雪花中的元数据表:
- 来自a/b/resource.json的条目
- 来自a/b/metadata.json的条目
- 来自c/d/resource.json的条目
- 来自c/d/metadata.json的条目
斜体:我不想在那些表中的条目
我想实现这个目标:
雪花中的资源表:
- 来自a/b/resource.json的条目
- 来自c/d/resource.json的条目
雪花中的元数据表:
- 来自a/b/metadata.json的条目
- 来自c/d/metadata.json的条目
我只需要将此行添加到每个管道的SQL中:PATTERN='.*/<metadata or resource>[.]json'
所以Pipe的SQL语句看起来是这样的:
COPY INTO <table> FROM (
SELECT <fields> FROM @<stage>
)
PATTERN='.*/<metadata or resource>[.]json';