我是 Snowflake 数据仓库的新手,想使用雪管加载数据并从包含多个文件夹(每个数据库一个)的外部阶段(S3 存储桶)自动摄取数据,并且在这些文件夹中有多个文件,每个表有 1 个文件。不同文件夹中的文件将在不同时间更新,我目前正在使用自动摄取将 S3 转到 SQS 再到 Snowpipe。
我的示例 S3 存储桶设置如下:
myS3bucket.s3amazonaws.com
/db1
account.csv
product.csv
/db2
invoice.csv
employees.csv
我目前的理解是,我将为每个表创建一个管道,因此 account.csv 将与 1 个管道相关,该管道将填充帐户表,然后 product.csv 将与另一个管道相关以填充产品表等。
目前,如果我将新文件添加到存储桶中,因为通知在存储桶上,所以看起来所有管道都会被触发。
我的问题是:
- 添加新文件时触发所有管道是否正确?我是否需要将 db1 和 db2 设置为不同的外部阶段,所以如果我将文件添加到 db1 文件夹,那么只会读取链接到该外部阶段的管道?
- 我读过 SNS 可以使用,但不确定它如何用于雪管。S3 是否发送消息以便它可以确定调用哪个管道并将消息散播到该管道?
- 有没有比我上面使用的更好的方法?
谢谢你的帮助