【Azure 架构师学习笔记】-Azure Synapse -- Link for SQL 实时数据加载

本文属于【Azure 架构师学习笔记】系列。

本文属于【Azure Synapse】系列。

前言

Azure Synapse Link for SQL 可以提供从SQL Server或者Azure SQL中接近实时的数据加载。通过这个技术,使用SQL Server/Azure SQL中的新数据能够几乎实时地传送到Synapse(SQL DW)中。然后进行后续的数据分析。

这个过程通过change feed技术最小化对Azure SQL/SQL Server的影响。

在这个移动过程中,会使用ADLS Gen2 作为暂存,然后再加载到Synapse dedicated pool中。在初始化阶段,先会全量加载然后后续再进行增量加载。

实操

假定已经有了一个Azure SQL ,和Synapse workspace, 前者相对简单,下面演示创建Synapse workspace的简要步骤,因为这是演示所以会跳过一些正式环境中必须的配置。

创建Synapse workspace

从下图可以看出它会要求创建或使用现有的一个ADLS Gen2,并指定File System name(Container)

搭建连接

登陆进去之后,从【管理】-> 【Linked Services】->【新建】-> 选择Azure SQL:

输入信息之后,从【集成/Integrate】中新建一个Link connection。

在新建过程中如果看到下面报错"The selected source cannot be used without a system-assigned managed identity",意味着你需要启用源系统的sysem MI。

在下图所示的地方启用。

刷新之后可以看到报错信息消失。但是此时源系统还没有表。

登陆Azure SQL, 然后建一个测试表:

sql 复制代码
Create Table Orders(
OrderID [int] IDENTITY(1,1) NOT NULL,
Product_Name VARCHAR(20),
Quantity INT,
Price Float,
CONSTRAINT [PK_x] PRIMARY KEY CLUSTERED
(
OrderID ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

并插入一些测试数据。

在Synapse中再次刷新可以看到新建的表出现了。

建立专用SQL pool

成本考虑选择最低配。

可以选择连续运行或者按计划运行。

配置好之后,点击【start】启动,首次运行需要点时间。这个过程也会在Synapse中自动创建目标表。

等待初始化完毕之后可以在下图中查询到数据同步情况。

我们尝试在源系统删除一行数据之后再次查询发现数据是可以同步的。

再次测试:

结果依然可以同步。

注意事项

  1. 源数据表必须有主键。
  2. 对于源表启用了CDC(Change Data Capture) , Temporal history table, Always Encrypted, In-Memory OLTP, Column store Index, Graph等,都不支持Azure Synapse Link for SQL, 简单来说就只能用于常规未进行处理的表。
  3. 在同步过程中,表名会与源系统一致,但是架构名则只是dbo, 所以对于那些非dbo的表,需要提前建立。
  4. 慎重停止Link Connection,因为需要删除目标表,并且后续重新搭建和同步。
  5. 由于数据是分布式处理,所以如果使用了类似row_number()等窗口函数,序号可能会与源不一致。
相关推荐
编码者卢布29 分钟前
【Azure AI Search】Index的字段使用默认Analyzer(standard.lucene) 和 en.microsoft 有什么不同?
microsoft·lucene·azure
weixin_307779132 天前
在 Azure 上构建数据库路由与异构整合层:原理、方案与最佳实践
数据库·人工智能·后端·云计算·azure
2601_961875243 天前
法考资料全套2026|客观题|主观题|资料已整理
阿里云·云计算·腾讯云·azure·七牛云存储·csdn开发云·火山引擎
xhtdj3 天前
Build 2026:Azure API Management 推出统一模型 API 并新增 MCP 内容安全能力
人工智能·安全·azure
JimCarter5 天前
使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上
docker·azure·树莓派·devops·orangepi·香橙派·raspberrypi
2601_961875245 天前
高考真题电子版|2025高考全科真题分类PDF
金融·pdf·云计算·azure·七牛云存储·交友·高考
热爱学习的小翁同学6 天前
Azure Automation Runbook 获取托管标识的访问令牌(Access Token)
microsoft·azure
编码者卢布11 天前
【Azure App Service】应用服务中的SNAT (Source Network Address Translation 源网络地址转化)
microsoft·azure
编码者卢布15 天前
【Azure App Service】应用服务(Web App)里的 SNAT 端口 vs 出站连接数:到底是谁限制了谁?
flask·azure·web app
Lucky_Turtle19 天前
【Azure】微软云文件存储
microsoft·flask·azure