关于 Openflow Connector for SQL Server

备注

使用该连接器需遵守 连接器条款

本主题介绍 Openflow Connector for SQL Server 的基本概念、工作流程和限制。

Openflow Connector for SQL Server 可将 SQL 服务器数据库实例连接到 Snowflake,并近乎实时或按指定计划从选定表中复制数据。

如果您希望实现以下功能,可以使用此连接器:

  • 将 Microsoft SQL Server 数据的 CDC 复制到 Snowflake,实现全面集中报告

工作流程

  1. SQL 服务器数据库管理员需执行以下任务:

    1. 配置 SQL 服务器复制设置,并对数据库和表启用变更跟踪。

    2. 为连接器创建凭据。

    3. (可选)提供 SSL 证书。

  2. Snowflake 账户管理员需执行以下任务:

    1. 为连接器创建服务用户、数据仓库和用于复制的目标数据库。

    2. 安装连接器。

    3. 为连接器流程定义指定所需的参数。

    4. 运行流程。在 Openflow 中运行时,连接器执行以下操作:

      1. 创建一个架构,用于日志表。

      2. 创建与源表对应的架构和目标表,用于复制。

      3. 按照表复制生命周期启动复制流程,详见 如何复制表 部分。

如何复制表

表的复制分为以下几个阶段:

  1. 架构自检:连接器会发现源表中的列、包括列名和数据类型,然后根据 Snowflake 和连接器的限制来验证它们。验证失败会导致此阶段失败,并且周期完成。如果成功完成该阶段,连接器将创建一个空目标表。

  2. 快照加载:连接器将源表中的所有可用数据复制到目标表中。如果此阶段失败,则不会再复制任何数据。成功完成后,源表中的数据将在目标表中可用。

  3. 增量加载连接器跟踪源表中的更改并将这些更改应用到目标表。此过程将一直持续,直到从复制中移除该表。如果该阶段失败,将永久停止源表的复制,直到问题解决。

备注

临时故障(例如连接错误)不会停止表的复制。但是,永久性故障(例如不支持的数据类型)会停止对表进行复制。如果永久性故障导致表无法复制,请将该表从要复制的表列表中移除。解决了导致失败的问题后,可以将该表重新添加到要复制的表列表中。

支持的 SQL 服务器版本

下表列出了经过测试和官方支持的 SQL 服务器版本。

平台

服务/版本

版本/层级

支持

本地

Microsoft SQL Server 2022 (https://www.microsoft.com/sql-server)

Developer、Enterprise、Standard

✔ 支持

Microsoft SQL Server 2019

Developer、Enterprise、Standard

✔ 支持

Microsoft SQL Server 2017

Developer、Enterprise、Standard

✔ 支持

Microsoft SQL Server 2016

Developer、Enterprise、Standard

✔ 支持

Microsoft SQL Server 2014

全部

Not tested

Microsoft SQL Server 2012

全部

Not tested

Azure

Azure SQL 数据库 (https://learn.microsoft.com/azure/azure-sql/database/?view=azuresql)

所有实例类型

✔ 支持

Azure SQL 托管实例 (https://learn.microsoft.com/azure/azure-sql/managed-instance/?view=azuresql)

所有实例类型

✔ 支持

Azure VM 上的 SQL Server

全部

Not tested

AWS

AWS RDS for SQL Server (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html)

所有实例类型

✔ 支持

SQL Server for Amazon EC2

全部

Not tested

Google Cloud

Google Cloud SQL for SQL Server

全部

Not tested

Openflow 要求

  • 运行时大小必须至少为“Medium”。复制大容量数据时请使用更大的运行时环境,尤其是在行大小较大的情况下。

  • 该连接器不支持多节点 Openflow 运行时。使用 Min nodes 配置此连接器的运行时,并将 Max nodes 设置为 1

限制

  • 连接器仅支持使用用户名和密码的方式进行身份验证,以连接 SQL 服务器。

  • 该连接器仅复制受 Snowflake 支持的数据类型的表。有关这些数据类型的列表,请参阅 数据类型摘要

  • 连接器要求每个复制的表都有主键。

  • 当在源数据库添加一个带默认值的 NOT NULL 新列时,连接器不会更新 Snowflake 数据库中已有的记录。

  • 当在 Column Filter JSON 的包含列表中添加新列时,连接器不会更新 Snowflake 数据库中已有的记录。

  • 在源数据库中删除某列后,再用相同名称添加回该列,后续的额外删除操作会导致错误。

  • 在 Column Filter JSON 中包含某列后又将其排除,后续再次尝试包含该列会导致错误。

  • 该连接器支持源表架构更改,但不支持更改主键定义、数字列的精度或小数位数。

  • 该连接器不支持截断表操作。

备注

通过将这些特定列排除在复制范围之外,可以绕过影响某些表列的限制。

后续步骤

设置 Openflow Connector for SQL Server

语言: 中文