如何在Matillion中提取邮件附件并存储到Snowflake内部阶段?
处理邮件附件并存储到Snowflake内部阶段的Matillion实操步骤
一、Email Query后续的组件选择与配置
1. 用Email Attachment组件提取附件
- 直接衔接
Email Query组件的输出,这是Matillion专门用于提取邮件附件的组件 - 属性面板配置要点:
- 选择已配置好的IMAP连接
- 按需求筛选附件:可直接勾选目标类型(CSV、PDF、图片等),或用文件名通配符(如
*.csv、*.png)过滤 - 临时存储目录保持默认即可,Matillion会自动将附件暂存到本地临时路径,后续用于上传
2. 用Snowflake Stage或Put File组件上传到内部阶段
方式一:Snowflake Stage组件
- 先在Snowflake中创建目标内部阶段,示例SQL:
-- 针对CSV类文本文件 CREATE STAGE MY_CSV_STAGE FILE_FORMAT = (TYPE = 'CSV' SKIP_HEADER = 1); -- 针对PDF、图片等二进制文件 CREATE STAGE MY_BINARY_STAGE FILE_FORMAT = (TYPE = 'BINARY'); - 在Matillion组件中:
- 选择上述创建的内部阶段
- 将
Email Attachment输出的临时文件路径字段映射到组件的文件输入参数 - 配置上传模式(覆盖/追加),按需选择
方式二:Put File组件
- 直接指定
Email Attachment输出的临时文件路径,目标阶段设为你的Snowflake内部阶段 - 针对不同附件类型,补充对应的文件格式参数(如二进制文件设
TYPE='BINARY')
二、端到端作业流示例
- Email Query:配置IMAP连接,设置过滤规则(如未读邮件、特定主题)获取目标邮件列表
- Email Attachment:衔接上一步,提取符合条件的附件到临时目录
- Snowflake Stage/Put File:将临时目录中的附件上传到Snowflake内部阶段
- 可选:Python Script组件:如果需要预处理附件(重命名、格式转换等),可在上传前用该组件处理临时文件
三、关键注意事项
- 确保Matillion运行角色拥有Snowflake内部阶段的WRITE权限
- 非文本类附件(PDF、图片)必须对应
BINARY类型的文件格式阶段,避免上传失败 Email Attachment生成的临时文件会在作业结束后自动清理,无需手动操作
内容的提问来源于stack exchange,提问作者pradip patil
相关产品推荐
相关产品推荐

