Snowflake-S3:将两种类型的文件(来自同一个S3存储桶)放入两个不同的表中



我目前有一个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';

最新更新