关于 Openflow Connector for SQL Server¶
备注
This connector is subject to the Snowflake Connector Terms.
本主题介绍 Openflow Connector for SQL Server 的基本概念、工作流程和限制。
Openflow Connector for SQL Server 可将 SQL 服务器数据库实例连接到 Snowflake,并近乎实时或按指定计划从选定表中复制数据。
如果您希望实现以下功能,可以使用此连接器:
将 Microsoft SQL Server 数据的 CDC 复制到 Snowflake,实现全面集中报告
工作流程¶
SQL 服务器数据库管理员需执行以下任务:
配置 SQL 服务器复制设置,并对数据库和表启用变更跟踪。
为连接器创建凭据。
(可选)提供 SSL 证书。
Snowflake 账户管理员需执行以下任务:
为连接器创建服务用户、数据仓库和用于复制的目标数据库。
安装连接器。
为连接器流程定义指定所需的参数。
运行流程。在 Openflow 中运行时,连接器执行以下操作:
创建一个架构,用于日志表。
创建与源表对应的架构和目标表,用于复制。
按照表复制生命周期启动复制流程,详见 如何复制表 部分。
如何复制表¶
表的复制分为以下几个阶段:
架构自检:连接器会发现源表中的列、包括列名和数据类型,然后根据 Snowflake 和连接器的限制来验证它们。验证失败会导致此阶段失败,并且周期完成。如果成功完成该阶段,连接器将创建一个空目标表。
快照加载:连接器将源表中的所有可用数据复制到目标表中。如果此阶段失败,则不会再复制任何数据。成功完成后,源表中的数据将在目标表中可用。
增量加载连接器跟踪源表中的更改并将这些更改应用到目标表。此过程将一直持续,直到从复制中移除该表。如果该阶段失败,将永久停止源表的复制,直到问题解决。
备注
临时故障(例如连接错误)不会停止表的复制。但是,永久性故障(例如不支持的数据类型)会停止对表进行复制。如果永久性故障导致表无法复制,请将该表从要复制的表列表中移除。解决了导致失败的问题后,可以将该表重新添加到要复制的表列表中。
支持的 SQL 服务器版本¶
下表列出了经过测试和官方支持的 SQL 服务器版本。
Platform |
Service/Version |
Edition/Tier |
支持 |
|---|---|---|---|
On-premises |
Microsoft SQL Server 2022 (https://www.microsoft.com/sql-server) |
Developer, Enterprise, Standard |
✔ Supported |
Microsoft SQL Server 2019 |
Developer, Enterprise, Standard |
✔ Supported |
|
Microsoft SQL Server 2017 |
Developer, Enterprise, Standard |
✔ Supported |
|
Microsoft SQL Server 2016 |
Developer, Enterprise, Standard |
✔ Supported |
|
Microsoft SQL Server 2014 |
全部 |
Not tested |
|
Microsoft SQL Server 2012 |
全部 |
Not tested |
|
Azure |
Azure SQL Database (https://learn.microsoft.com/azure/azure-sql/database/?view=azuresql) |
All instance types |
✔ Supported |
Azure SQL Managed Instance (https://learn.microsoft.com/azure/azure-sql/managed-instance/?view=azuresql) |
All instance types |
✔ Supported |
|
SQL Server on Azure VM |
全部 |
Not tested |
|
AWS |
AWS RDS for SQL Server (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) |
All instance types |
✔ Supported |
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 中包含某列后又将其排除,后续再次尝试包含该列会导致错误。
该连接器支持源表架构更改,但不支持更改主键定义、数字列的精度或小数位数。
该连接器不支持截断表操作。
备注
通过将这些特定列排除在复制范围之外,可以绕过影响某些表列的限制。