Azure Synapse Link for SQL Server 2022 入门

本文为 Azure Synapse Link for SQL Server 2022 的分步入门指南。 有关概述,请参阅 Azure Synapse Link for SQL Server 2022

先决条件

  • 开始之前,请参阅创建新的 Azure Synapse 工作区以获取 Azure Synapse Link for SQL。 当前教程介绍如何在公共网络中创建 Azure Synapse Link for SQL。 本文假定你在创建 Azure Synapse 工作区时选择了“禁用托管虚拟网络”和“允许来自所有 IP 地址的连接”。 如果要为 Azure Synapse Link for SQL Server 2022 配置网络安全性,另请参阅为 Azure Synapse Link for SQL Server 2022 配置网络安全性

  • 创建 Azure Data Lake Storage Gen2 帐户,该帐户不同于使用 Azure Synapse Analytics 工作区创建的帐户。 你将使用此帐户作为登陆区域来暂存 SQL Server 2022 提交的数据。 有关详细信息,请参阅创建 Azure Data Lake Storage Gen2 帐户

  • 确保为 SQL Server 2022 数据库创建了主密钥。

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<a new password>'
    

创建目标 Azure Synapse SQL 专用池

  1. 打开 Synapse Studio

  2. 打开“管理”中心,转到“SQL 池”,然后选择“新建”。

    该屏幕截图显示了如何从 Synapse Studio 创建新的 Azure Synapse SQL 专用池。

  3. 输入唯一的池名称,使用默认设置,然后创建专用池。

  4. 在“数据”中心内的“工作区”下,新的 Azure Synapse SQL 数据库应列在“数据库”下。 在新的 Azure Synapse SQL 数据库中选择“新建 SQL 脚本”,然后选择“空脚本”。

    该屏幕截图显示了如何从 Synapse Studio 创建新的空 SQL 脚本。

  5. 若要为目标 Azure Synapse SQL 数据库创建主密钥,请粘贴以下脚本,然后选择“运行”。

    CREATE MASTER KEY
    

为源 SQL Server 2022 数据库创建链接服务

  1. 选择“管理”中心按钮,然后选择“链接服务”。

    从 Synapse Studio 转到链接服务。

  2. 按“新建”,选择“SQL Server”,然后选择“继续”。

    显示如何创建 SQL Server 链接服务的屏幕截图。

  3. 在“名称”框中,输入 SQL Server 2022 的链接服务的名称。

    该屏幕截图显示了在何处输入要连接的服务器和数据库名称。

    注意

    仅支持旧版本中的链接服务。

  4. 选择集成运行时时,请选择自承载集成运行时。 如果你的 Azure Synapse 工作区没有可用的自承载集成运行时,请创建一个。

  5. (可选)执行以下操作创建自承载集成运行时以连接到源 SQL Server 2022:

    a. 选择“新建”。

    该屏幕截图显示了如何创建新的自承载集成运行时。

    b. 选择“自承载”,然后选择“继续”。

    c. 在“名称”框中,输入自承载集成运行时的名称,然后选择“创建”。

    该屏幕截图显示了在何处输入自承载集成运行时名称。

    现在,有一个自承载集成运行时可在你的 Azure Synapse 工作区中使用。

    d. 按照提示下载、安装和使用密钥以在 Windows 计算机上注册集成运行时代理,该代理可直接访问 SQL Server 2022 实例。 有关详细信息,请参阅创建自承载集成运行时 - Azure 数据工厂和 Azure Synapse

    该屏幕截图显示了在何处下载、安装和注册集成运行时。

    e. 选择“关闭” 。

    获取集成运行时的状态。

    f. 转到监视页,然后选择“刷新”来获取集成运行时的最新状态,从而确保自承载集成运行时正在运行。

  6. 继续输入链接服务的其余信息,包括用于连接到 SQL Server 2022 实例的“SQL Server 名称”、“数据库名称”、“身份验证类型”、“用户名”和“密码”。

    注意

    建议对此连接启用加密。 为此,请将值为 trueEncrypt 属性添加为附加连接属性。 此外,根据服务器配置,将 Trust Server Certificate 属性设置为 truefalse。 有关详细信息,请参阅启用数据库引擎的加密连接

  7. 选择“测试连接”,确保自承载集成运行时可以访问 SQL Server 实例。

  8. 选择“创建”。

    新的链接服务将连接到工作区中可用的 SQL Server 2022 实例。

    该屏幕截图显示了在何处查看链接服务连接。

    注意

    此处创建的链接服务并非专用于 Azure Synapse Link for SQL。 具有相应权限的任何工作区用户都可以使用它。 请花些时间来了解可能有权访问此链接服务及其凭据的用户的范围。 有关 Azure Synapse 工作区中的权限的详细信息,请参阅 Azure Synapse 工作区访问控制概述 - Azure Synapse Analytics

创建链接服务以连接到 Azure Data Lake Storage Gen2 上的登陆区域

  1. 转到新创建的 Azure Data Lake Storage Gen2 帐户,选择“访问控制(IAM)”,选择“添加”,然后选择“添加角色分配”。

    该屏幕截图显示了 Data Lake Storage Gen2 帐户的“访问控制 (IAM)”窗格。

  2. 为所选角色选择“存储 Blob 数据参与者”,选择“托管标识”,然后在“成员”下选择 Azure Synapse 工作区。 添加此角色分配可能需要几分钟时间。

    显示如何添加角色分配的屏幕截图。

    注意

    确保已向用作登陆区域的 Azure Data Lake Storage Gen2 存储帐户授予 Azure Synapse 工作区托管标识权限。 有关详细信息,请参阅向 Azure Synapse 工作区中的托管标识授予权限 - Azure Synapse Analytics

  3. 在 Azure Synapse 工作区中打开“管理”中心,然后转到“链接服务”。

    显示如何转到链接服务的屏幕截图。

  4. 选择“新建”,然后选择“Azure Data Lake Storage Gen2”。

  5. 请执行以下操作:

    a. 在“名称”框中,输入登陆区域的链接服务的名称。

    b. 对于“身份验证方法”,请输入“托管标识”。

    c. 选择已创建的“存储帐户名称”。

  6. 选择“测试连接”,确保可以访问 Azure Data Lake Storage Gen2 帐户。

  7. 选择“创建”。

    新的链接服务将连接到 Azure Data Lake Storage Gen2 帐户。

    该屏幕截图显示了 Azure Data Lake Storage Gen2 的新链接服务。

    注意

    此处创建的链接服务并非专用于 Azure Synapse Link for SQL。 具有相应权限的任何工作区用户都可以使用它。 请花些时间来了解可能有权访问此链接服务及其凭据的用户的范围。 有关 Azure Synapse 工作区中的权限的详细信息,请参阅 Azure Synapse 工作区访问控制概述 - Azure Synapse Analytics

  1. 从 Synapse Studio 打开“集成”中心。

  2. 在“集成”窗格中,选择加号 (+),然后选择“链接连接”。

    该屏幕截图显示了“链接连接”按钮。

  3. 输入源数据库:

    a. 对于“源类型”,选择“SQL Server”。

    b,对于源“链接服务”,选择连接到 SQL Server 2022 实例的服务。

    c. 对于“表名称”,请从 SQL Server 实例中选择要复制到 Azure Synapse SQL 池的名称。

    d. 选择“继续”。

    该屏幕截图显示了输入源数据库详细信息的位置。

  4. 从“Synapse SQL 专用池”中选择目标数据库名称。

  5. 选择“继续”。

  6. 输入链接连接设置:

    a. 对于“链接连接名称”,请输入名称。

    b. 对于链接连接计算的“核心计数”,请输入核心数。 这些核心用于将数据从源移动到目标。 建议从少量开始,然后根据需要增加计数。

    c. 对于“链接服务”,请选择将连接到登陆区域的服务。

    d. 输入 Azure Data Lake Storage Gen2“容器名称或容器/文件夹名称”作为暂存数据的登陆区域文件夹路径。 必须先创建容器。

    e. 输入 Azure Data Lake Storage Gen2 共享访问签名令牌。 SQL 更改源需要该令牌才能在访问登陆区域。 如果 Azure Data Lake Storage Gen2 帐户没有共享访问签名令牌,可以通过选择“生成令牌”来创建一个。

    f. 选择“确定”。

    该屏幕截图显示了输入链接连接设置的位置。

    注意

    在此处选择的内核数将分配给引入服务,用于处理数据加载和更改。 它们不会影响目标专用 SQL 池配置。 如果因存储限制无法使用生成的 SAS 令牌连接到登陆区域,也可以尝试使用委派 SAS 令牌连接到登陆区域。

  7. 打开新的 Azure Synapse Link 连接后,现在可以更新目标表名称、分布类型和结构类型。

    注意

    • 如果数据包含 varchar(max)、nvarchar(max) 和 varbinary(max),请考虑为结构类型使用堆表。
    • 在启动链接连接之前,请确保已在 Azure Synapse SQL 专用池中创建了架构。 Azure Synapse Link for SQL 将在 Azure Synapse SQL 池中的架构下自动创建表。
  8. 在“针对现有目标表的操作”下拉列表中,如果目标中已存在该表,请选择最适合你的场景的选项。

    • 删除并重新创建表:将删除并重新创建现有目标表。
    • 非空表失败:如果目标表包含数据,则给定表的链接连接将失败。
    • 与现有数据合并:数据将合并到现有表中。

    注意

    如果要通过选择“与现有数据合并”将多个源合并到同一目标中,请确保源包含不同的数据,以避免冲突和意外结果。

  9. 指定是否要“跨表启用事务一致性”。

    • 启用此选项后,跨源数据库上多个表的事务始终在单个事务中复制到目标数据库。 但是,这将增加总体复制吞吐量的开销。
    • 禁用该选项后,每个表将在自己的事务边界中以并行连接的方式将更改复制到目标,从而提高整体复制吞吐量。

    注意

    如果你想要启用表之间的事务一致性,另请确保 Synapse 专用 SQL 池中的事务隔离级别为“读取提交的快照隔离”。

  10. 选择“全部发布”以保存与服务的新链接连接。

选择“启动”,然后等待几分钟以完成数据复制。

注意

链接连接首先会从源数据库执行完整的初始加载,然后通过 SQL Server 2022 中的更改源功能加载增量更改源。 有关详细信息,请参阅 Azure Synapse Link for SQL 更改源

可以监视 Azure Synapse Link 连接的状态,查看正在初始复制哪些表(快照),以及查看哪些表处于连续复制模式(复制)。

  1. 转到 Azure Synapse 工作区的“监视”中心,然后选择“链接连接”。

  2. 打开已启动的链接连接并查看每个表的状态。

  3. 在连接监视视图中选择“刷新”,以观察任何状态更新。

    监视链接连接。

查询复制的数据

等待几分钟,然后进行检查,以确保目标数据库包含所需的表和数据。 查看 Azure Synapse SQL 专用池目标存储中的可用数据。 现在,还可以浏览目标 Azure Synapse SQL 专用池中的复制表。

  1. 在“工作区”下的“数据”中心中,打开目标数据库。

  2. 在“表”下,右键单击其中一个目标表。

  3. 选择“新建 SQL 脚本”,然后选择“前 100 行”。

  4. 运行此查询以查看目标 Azure Synapse SQL 专用池中的复制数据。

  5. 还可以使用 Microsoft SQL Server Management Studio (SSMS) 或其他工具查询目标数据库。 将工作区的 SQL 专用终结点用作服务器名称。 该名称通常为 <workspacename>.sql.azuresynapse.azure.cn。 通过 SSMS 或其他工具进行连接时,添加 Database=databasename@poolname 作为额外的连接字符串参数。

若要在 Synapse Studio 中添加或移除表,请执行以下操作:

  1. 在 Azure Synapse 工作区中,打开“集成”中心。

  2. 选择要编辑的链接连接,然后将其打开。

  3. 执行以下操作之一:

    • 若要添加表,请选择“新建表”。
    • 若要删除表,请选择其旁边的垃圾桶图标。

    显示用于添加或删除表的链接连接窗格的屏幕截图。

    注意

    可以在链接连接正在运行时直接添加或删除表。

若要在 Synapse Studio 中停止 Azure Synapse Link 连接,请按照以下步骤操作:

  1. 在 Azure Synapse 工作区中,打开“集成”中心。

  2. 选择要编辑的链接连接,然后将其打开。

  3. 选择“停止”以停止链接连接,这会停止复制数据。

    该屏幕截图显示了用于停止链接连接的窗格。

    注意

    • 如果在停止某个链接连接后重启它,它首先会从源数据库执行完整的初始加载,然后进行增量更改源加载。
    • 如果你选择“与现有数据合并”作为针对现有目标表的操作,则当你停止链接连接并重新启动它时,在此期间从源中删除的记录不会从目标中删除。 在这种情况下,为了确保数据一致性,请考虑使用暂停/恢复而不是停止/启动,或者在重新启动链接连接之前清理目标表。

轮换登陆区域的共享访问签名令牌

SQL 更改源需要共享访问签名令牌才能访问登陆区域并在其中推送数据。 该令牌设置了一个到期日期,因此需要在到期日期之前轮换该令牌。 否则,Azure Synapse Link 无法将数据从 SQL Server 实例复制到 Azure Synapse SQL 专用池。

  1. 在 Azure Synapse 工作区中,打开“集成”中心。

  2. 选择要编辑的链接连接,然后将其打开。

  3. 选择“轮换令牌”。

    该屏幕截图显示了轮换共享访问签名令牌的位置。

  4. 若要获取新的共享访问签名令牌,请选择“自动生成”或“手动输入”,然后选择“确定”。

    该屏幕截图显示了如何获取新的共享访问签名令牌。

    注意

    如果因存储限制无法使用生成的 SAS 令牌连接到登陆区域,也可以尝试使用委派 SAS 令牌连接到登陆区域。

后续步骤

如果使用 SQL Server 2022 以外的数据库,请参阅: