我相信通过 Snowflake Partner Connect 上的 Matillion ETL,您总能获得 AWS 托管的实例。因此,如果您直接通过 Matillion 本身启动了 Azure 托管的 Matillion ETL 实例,您将不会找到 Azure Blob 存储负载组件。
相反,您需要执行两个步骤:
- 使用数据传输组件将文件从 Azure Blob 存储复制到 AWS S3 存储桶
- 使用 S3 加载组件将数据从 S3 复制到雪花中
数据传输组件必须以某种方式在 Azure 中进行身份验证,因此有一个先决条件(看起来您已经开始了)
转到“项目/管理凭据”对话框,然后创建一个新的 Azure 用户定义的凭据...
... 环境
- 租户 ID:您可以从 Azure Active Directory 中找到并查看基本信息
- 客户 ID:来自您的应用注册
- 密钥:来自您的应用注册中的“证书和机密”
- 加密类型是指 Matillion ETL 存储密码的方式。如果您有主密钥,则可以使用编码或 KMS。
您必须确保在按测试时收到“Blob 存储:成功”消息。看起来这就是你卡住的步骤。
仅当您授予 Contributor 对至少一个存储帐户的访问权限时,测试才会通过。您可以从 Azure 控制台的存储帐户/您的存储帐户/访问控制 (IAM)/授予对此资源的访问权限/添加角色分配下执行此操作
授予贡献者访问由上述凭据标识的应用程序注册的权限。
设置新的 Azure 用户定义凭据后,在 Matillion ETL UI 中,您需要转到您的环境(左下角)并将 Azure 凭据设置为您的新凭据,如下所示。
完成后,创建一个数据传输组件
- 将 Source Type 设置为 Azure Blob Storage,然后按 Blob Location 属性上的浏览按钮。它应该列出应用注册已被授予访问权限的所有存储帐户(下面的屏幕截图中只有一个)
- 找到要加载的 blob
- 将 Target Type 设置为 S3,然后选择 Target Object Name 和 Target URL
运行数据传输组件以将文件从 Azure 存储复制到 S3 存储。之后,您将能够使用 S3 Load 组件将数据从 S3 复制到 Snowflake。