1

我想从 Azure Blob 存储中获取文件并使用 Matillion ETL 工具将它们写入雪花表。在 Matillion 中,默认设置为 AWS。适用于 Azure 的文档很少。我的 Matillion 帐户是通过 Snowflake 连接的合作伙伴帐户。

我尝试创建新项目并在其中选择了 Azure。然后在 Azure 中,我创建了新的应用注册,并从那里获取了客户端 ID 和密钥。但是,当我在 Matillion 中输入所有这些信息时,它会显示 - Blob Storage: Check Credentials。

我附上快照以供参考。

在此处输入图像描述

请告诉我如何将 Azure 连接到 Matillion。

4

1 回答 1

2

我相信通过 Snowflake Partner Connect 上的 Matillion ETL,您总能获得 AWS 托管的实例。因此,如果您直接通过 Matillion 本身启动了 Azure 托管的 Matillion ETL 实例,您将不会找到 Azure Blob 存储负载组件。

相反,您需要执行两个步骤:

  1. 使用数据传输组件将文件从 Azure Blob 存储复制到 AWS S3 存储桶
  2. 使用 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。

于 2021-10-29T15:56:45.807 回答