你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Azure SQL 数据库的 Azure Synapse Link 入门

本文提供适用于 Azure SQL 数据库的 Azure Synapse Link 的循序渐进入门指南。 有关此功能的概述,请参阅适用于 Azure SQL 数据库的 Azure Synapse Link

先决条件

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

  • 对于基于数据库事务单位 (DTU) 的预配,请确保你的 Azure SQL 数据库服务至少是标准层,至少具有 100 个 DTU。 不支持预配的 DTU 少于 100 个的免费、基本或标准层。

配置源 Azure SQL 数据库

  1. 登录 Azure 门户

  2. 转到你的 Azure SQL 逻辑服务器,选择“标识”,然后将“系统分配的托管标识”设置为“打开”。

    打开系统分配的托管标识的屏幕截图。

  3. 转到“网络”,然后选中“允许 Azure 服务和资源访问此服务器”复选框。

    显示如何使用 Azure 门户为 SQL 数据库配置防火墙的屏幕截图。

  4. 使用 Microsoft SQL Server Management Studio (SSMS) 或 Azure Data Studio 连接到逻辑服务器。 如果你希望 Azure Synapse 工作区使用托管标识连接到 Azure SQL 数据库,请在逻辑服务器上设置 Microsoft Entra 管理员权限。 若要在步骤 6 中应用特权,请使用相同的管理员名称以管理特权连接到逻辑服务器。

  5. 展开“数据库”,右键单击创建的数据库,然后选择“新建查询”。

    显示如何选择数据库和创建新查询的屏幕截图。

  6. 如果你希望 Azure Synapse 工作区使用托管标识连接到源 Azure SQL 数据库,请运行以下脚本,以便为托管标识提供对源数据库的权限。

    如果你希望 Azure Synapse 工作区通过 SQL 身份验证连接到源 Azure SQL 数据库,则可以跳过此步骤。

    CREATE USER <workspace name> FROM EXTERNAL PROVIDER;
    ALTER ROLE [db_owner] ADD MEMBER <workspace name>;
    
  7. 你可以使用自己的架构创建表。 以下代码只是 CREATE TABLE 查询的一个示例。 还可以在此表中插入一些行,以确保有可复制的数据。

    CREATE TABLE myTestTable1 (c1 int primary key, c2 int, c3 nvarchar(50)) 
    

创建目标 Azure Synapse SQL 池

  1. 打开 Synapse Studio

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

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

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

  4. 如果所需的架构在目标 Azure Synapse SQL 数据库中不可用,则需要创建一个架构。 如果架构是数据库所有者 (dbo),则可以跳过此步骤。

  1. 在 Azure 门户的左侧窗格中,选择“集成”。

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

    显示如何在 Synapse Studio 中选择新链接连接的屏幕截图。

  3. 在“源链接服务”下,选择“新建”。

    显示如何选择新链接服务的屏幕截图。

  4. 输入源 Azure SQL 数据库的信息。

    • 选择与你的 Azure SQL 数据库对应的订阅、服务器和数据库。
    • 执行下列任一操作:
      • 若要使用工作区的托管标识将 Azure Synapse 工作区连接到源数据库,请将“身份验证类型”设置为“托管标识”。
      • 若要改用 SQL 身份验证并且你知道要使用的用户名和密码,请选择“SQL 身份验证”。

    显示如何输入服务器和数据库详细信息以创建新链接服务的屏幕截图。

    注意

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

  5. 选择“测试连接”,确保正确配置防火墙规则并且工作区可以成功连接到源 Azure SQL 数据库。

  6. 选择“创建”。

    注意

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

  7. 选择要复制到 Azure Synapse 工作区的一个或多个源表,然后选择“继续”。

    注意

    一次只能在一个链接连接中启用指定的源表。

  8. 选择目标 Azure Synapse SQL 数据库和池。

  9. 为 Azure Synapse Link 连接提供名称,并选择链接连接计算的核心数。 这些核心用于将数据从源移动到目标。

    注意

    • 在此处选择的内核数将分配给引入服务,用于处理数据加载和更改。 它们不会影响源 Azure SQL 数据库配置或目标专用 SQL 池配置。
    • 我们建议从较少的核心开始,以后再根据需要增加核心数量。
  10. 选择“确定”。

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

    注意

    • 如果数据包含 varchar(max)、nvarchar(max) 和 varbinary(max),请考虑为结构类型使用堆表
    • 在启动链接连接之前,请确保已在 Azure Synapse SQL 专用池中创建了架构。 Azure Synapse Link for SQL 将在 Azure Synapse SQL 专用池中的架构下自动创建表。

    显示在 Synapse Studio 中的哪个位置编辑 Azure Synapse Link 连接的屏幕截图。

  12. 在“针对现有目标表的操作”下拉列表中,如果目标中已存在该表,请选择最适合你的场景的选项。

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

    注意

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

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

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

    注意

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

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

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

注意

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

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

  1. 转到“监视”中心,然后选择“链接连接”。

    显示如何从监视中心监视 Azure Synapse Link 连接状态的屏幕截图。

  2. 打开启动的 Azure Synapse Link 连接并查看每个表的状态。

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

查询复制的数据

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

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

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

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

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

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

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

  1. 打开“集成”中心。

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

  3. 执行以下操作之一:

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

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

    注意

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

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

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

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

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

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

    注意

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