当前位置: 首页 > news >正文

【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, 然后建一个测试表:

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()等窗口函数,序号可能会与源不一致。
http://www.lryc.cn/news/307255.html

相关文章:

  • k8s(5)
  • 【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例
  • Sentinel 动态规则扩展
  • UE5 UE4 自定义插件自动开启关联插件(plugin enable)
  • Android摄像头横屏的时候_人脸预览横向显示_问题解决---Android原生开发工作笔记164
  • 网络安全防御保护 Day6
  • 自动驾驶消息传输机制-LCM
  • 架构设计实践:熟悉架构设计方法论,并动手绘制架构设计图
  • 【推荐算法系列十六】:协同过滤
  • linux动态库加载相关
  • python 基础绘图函数 实例
  • 28. 找出字符串中第一个匹配项的下标(力扣LeetCode)
  • 1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
  • 洛谷C++简单题小练习day21—梦境数数小程序
  • LabVIEW高精度闭式微小型循环泵性能测试
  • 同局域网共享虚拟机(VMware)
  • docker学习快速入门
  • 大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)
  • GSVA -- 学习记录
  • 基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。
  • Docker基础篇(六) dockerfile体系结构语法
  • 【Python编程+数据清洗+Pandas库+数据分析】
  • 网络安全之防御保护8 - 11 天笔记
  • LiveGBS流媒体平台GB/T28181功能-查看国标设备下通道会话列表直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话
  • Python和Jupyter简介
  • Linux——静态库
  • fastjson序列化MessageExt对象问题(1.2.78之前版本)
  • osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)
  • ElasticSearch之找到乔丹的空中大灌篮电影
  • CSS @符规则(@font-face、@keyframes、@media、@scope等)