如何将数据从 Redshift 迁移到 Snowflake?

2021年11月8日01:33:38 发表评论 1,045 次浏览

如何配置 Redshift Airbyte 源和 Snowflake Airbyte 目标,以及创建自动将数据迁移到 Snowflake 的 Airbyte 连接。

如何将数据从 Redshift 迁移到 Snowflake?

几十年来,数据仓库解决方案一直是企业报告和商业智能的支柱。但是,近年来,Amazon Redshift 和 Snowflake 等基于云的数据仓库变得非常流行。那么,为什么有人想要从一个基于云的数据仓库迁移到另一个?

答案很简单:更大的规模和灵活性。借助 Snowflake,用户可以通过自动添加节点来快速独立扩展数据和计算资源。使用 VARIANT 数据类型,Snowflake 还支持存储更丰富的数据,例如对象、数组和 JSON 数据。正如 Redshift 用户所知,调试 Redshift 也并不总是那么简单。有时,它超出了可能引发迁移愿望的功能差异。也许你的团队只是比 Redshift 更了解如何使用 Snowflake,或者你的组织可能希望标准化一种特定技术,那么如何将数据从 Redshift 迁移到 Snowflake

本秘籍将解释从 Redshift 迁移到 Snowflake 以使用 Airbyte 最大化你的业务价值所需采取的步骤。

Redshift数据迁移到Snowflake先决条件

1. 你需要让 Airbyte 来移动你的数据。要部署 Airbyte,请按照我们此处文档中的简单说明进行操作。 

2. Redshift Snowflake 都是 SaaS 服务,你需要在这些平台上拥有一个帐户才能开始使用。 

3. 当你使用 Redshift 创建数据仓库集群时,默认情况下它会在其中添加示例数据。我们的数据存储在我们在“dev ” 数据库中创建的“redshift-cluster 中。创建的集群可以在“Amazon Redshift > Clusters”下的仪表板上看到。要创建新集群,请单击下面突出显示的图标并继续操作。

如何将数据从 Redshift 迁移到 Snowflake?


4a. 对于 Destination,你需要在 Snowflake 中创建一个空的数据库和仓库来托管你的数据。为此,请单击导航栏中所示的数据库图标,然后单击“创建...”

如何将数据从 Redshift 迁移到 Snowflake?

为你的数据库提供一个名称。在下面的示例中,我们将数据库命名为“Snowflake_Destination”。

4b. 设置好数据库后,点击仓库图标,创建一个名为“COMPUTE_WH 的仓库。 在我们的示例中,我们使用了一个 x-small 计算实例。但是,你可以使用更大的实例类型或添加更多实例来扩展计算实例。这可以通过几次简单的单击来实现,并将在后面的部分中进行演示,以说明迁移的业务价值。现在你已具备开始迁移的所有先决条件。  

如何将数据从 Redshift 迁移到 Snowflake?

如何将数据从 Redshift 迁移到 Snowflake?下面是详细步骤:

第 1 步:在 Airbyte 中设置 Redshift 源

Redshift数据迁移到Snowflake:通过在 Web 浏览器中导航到http://localhost:8000来打开 Airbyte 。通过填写以下详细信息继续设置源:

如何将数据从 Redshift 迁移到 Snowflake?

在“设置源” Airbyte 屏幕中,我们在本示例中将源命名为“Redshift_Source ,但你可以根据需要将其更改为其他名称。我们选择了源类型为 Redshift。其余信息可以从 redshift-cluster 仪表板中获取,如下面屏幕截图中突出显示的部分所示。

如何将数据从 Redshift 迁移到 Snowflake?

除此之外,还需要在 Redshift 控制台中调整更多设置。例如,假设你在机器上本地运行 Airbyte 并连接到 Redshift。在这种情况下,你需要使你的集群可以通过互联网公开访问,以便 Airbyte 可以连接到它。你可以通过导航到 Redshift 控制台上的“操作”下拉菜单,单击“修改可公开访问的设置”并将其更改为启用(如果尚未启用)来执行此操作。

如何将数据从 Redshift 迁移到 Snowflake?

如何将数据从 Redshift 迁移到 Snowflake?接下来,转到 AWS 提供的 VPC 服务。你可以通过在搜索栏中搜索它来实现,如下所示。

如何将数据从 Redshift 迁移到 Snowflake?

如何将数据从 Redshift 迁移到 Snowflake?然后导航到左侧的“安全组” 选项卡以进入如下所示的页面以创建自定义入站和出站规则。例如,你需要在端口 5439 上创建自定义 TCP 规则,以允许来自本地 IP 地址的传入连接。规则保存后,它将以蓝色突出显示在仪表板上。 

如何将数据从 Redshift 迁移到 Snowflake?

自定义入站规则需要具有下图所示的规范。注意:出站规则也需要执行相同的步骤,然后你的 Redshift 源将准备好与 Airbyte 连接。

如何将数据从 Redshift 迁移到 Snowflake?

第 2 步:在 Airbyte 中设置雪花目的地

配置好Source后,进入Airbyte中的“设置目的地”页面配置目的地。 

Redshift数据迁移到Snowflake:与我们上一步类似,目的地名称是可自定义的。在本例中,我们使用了“Snowflake_Destination”。然后,我们选择了目标类型为 Snowflake。有关其他必填字段的详细信息,请参阅下图。

如何将数据从 Redshift 迁移到 Snowflake?

可以从你的 Snowflake 仪表板检索主机值。 

注意:对于此示例,我们在 Snowflake 中使用 SYSADMIN 角色,但强烈建议在 Snowflake 中创建一个自定义角色,并降低权限以与 Airbyte 一起使用。默认情况下,Airbyte 使用 Snowflake 的默认架构来写入数据,但如果你愿意,你可以将数据放入另一个架构中(例如我们的 REDSHIFT_SCHEMA)。当你想要将要迁移的数据与现有数据分开时,拥有单独的架构会很有帮助。最后,用户名和密码应根据创建 Snowflake 帐户期间的凭据设置。 

点击“设置目标”按钮,如果一切顺利,你应该会看到一条消息,告诉你所有连接测试都已通过。

步骤 3:设置连接

如何将数据从 Redshift 迁移到 Snowflake?设置目的地后,你将被定向到Airbyte 中的“设置连接”屏幕。在这一步中,你会注意到 Airbyte 已经检测到要迁移的表和模式。默认情况下,选择所有表进行迁移。但是,如果你只想迁移数据的子集,则可以取消选择要跳过的表。在此步骤中,你还可以指定详细信息,例如源和目标之间的同步频率。有多种时间间隔选项,如图所示 — 从 5 分钟到每小时。还可以通过为你的用例选择正确的同步模式来设置同步操作的粒度。阅读Airbyte 文档中的同步模式以获取更多详细信息。

如何将数据从 Redshift 迁移到 Snowflake?

指定所有自定义设置后,我们可以单击“设置连接”以启动从 Redshift 到 Snowflake 的数据迁移。一目了然,你将能够看到连接的上次同步状态以及上次同步发生的时间。 

如何将数据从 Redshift 迁移到 Snowflake?

这就是使用 Airbyte 将数据从 Redshift 移动到 Snowflake 是多么容易。但是,如果你想验证迁移是否已发生,请查看 Snowflake 中的目标数据库,你会注意到存在额外的数据表。

如何将数据从 Redshift 迁移到 Snowflake?

第 4 步:评估结果

成功迁移数据后,让我们评估激发迁移的 Snowflake 的关键特性。在 Snowflake 中,计算能力和存储是解耦的,使得 Snowflake 的存储容量不依赖于集群大小。此外,与 Redshift 繁琐的过程相比,Snowflake 使你只需单击三下即可扩展数据。

如何将数据从 Redshift 迁移到 Snowflake?

如下图所示,Airbyte 使用 VARIANT 数据类型将 JSON 数据加载到 Snowflake 表中。使用 Snowflake 强大的 JSON 查询工具,你可以处理存储在表中的 JSON 数据以及非 JSON 数据。另一方面,Redshift 对半结构化数据类型的支持有限,需要多个复杂的子表连接来生成报告视图。 

如何将数据从 Redshift 迁移到 Snowflake?

Redshift数据迁移到Snowflake的总结

如何将数据从 Redshift 迁移到 Snowflake?总而言之,这是我们在这个文章中所做的:

  1. 配置了一个 Redshift Airbyte 源 
  2. 配置了一个 Snowflake Airbyte 目的地 
  3. 创建了一个 Airbyte 连接,自动将数据从 Redshift 迁移到 Snowflake
  4. 使用 VARIANT 数据类型探索了 Snowflake 中易于使用的缩放功能和对 JSON 数据的支持 

我们知道,在时间紧迫的快速项目上工作的开发和运营团队需要积极开发 Airbyte 的开发人员快速回答他们的问题。他们还希望与“去过那里并做到过”的有经验的社区成员分享他们的经验。 

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: