【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()等窗口函数,序号可能会与源不一致。
相关推荐
jack@london12 天前
Azure 将文本转换为语音
microsoft·音频·azure
戴着眼镜看不清15 天前
GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
gpt·openai·azure·通义千问·api中转
界面开发小八哥25 天前
界面控件DevExtreme中文教程 - 如何与Amazon S3和Azure Blob存储集成?
microsoft·azure·ui开发·用户界面·devextreme
全云在线allcloudonline1 个月前
Azure OpenAI 服务上线具有音频和语音功能的 GPT-4o-Realtime-Preview,免费申请试用
microsoft·azure
Ares-Wang1 个月前
Asp.Net Core 发布 IIS、docker、Azure、文件夹、AAS、ASF、AWM等
docker·asp.net·azure
NineData1 个月前
Zilliz获Forrester报告全球第一;OB支持向量能力;Azure发布DiskANN;阿里云PG发布内置分析引擎
microsoft·阿里云·azure·aurora·zilliz·云数据库技术·rds mysql
Dlimeng1 个月前
在 Azure OpenAI 上利用 GPT-35-Turbo 和 GPT-4 开启 AI 创新之旅
人工智能·python·ai·语言模型·gpt-3·openai·azure
MicrosoftReactor1 个月前
技术速递|Java on Azure Tooling 8月更新 - Java 体验在 Azure 容器应用程序正式发布
java·容器·azure
Azure DevOps1 个月前
Azure DevOps Server:不能指派新增的用户
运维·microsoft·flask·azure·devops
Monee..1 个月前
【azure-openai】批量翻译demo【python】【gradio】
python·azure·gradio