本文使用Azure Data Factory (ADF) 创建一个数据流将存储于Azure SQL表中的最新数据导出到Azure Data Lake storage中数据文件。
要完成这件事情需要以下几个组件
Azure Data Factory
Azure SQL
Azure storage account [public access]
本示例的
input: Azure SQL表
output: Azure Data Lake storage 数据文件
逻辑:获取表中的当前数据直接导出
1. 创建数据流 input、output 两端分别到Azure SQL和Azure Data Lake的连接信息
link service edit页面都有测试连接的按钮,确保连接都ok。
Linked Service
image.png
|
image.png
|
---|
2. 定义input、output的数据接口
image.png
2.1 定义input数据接口
image.png
2.2 定义output数据接口
image.png
3. 定义pipeline
由于这个数据处理逻辑简单,只需要从sql导出表到 csv文件,所以只在pipeline中使用了[Copy data] 这个组件
image.png
[Copy Data] 组件属性设置
-
Source
image.png -
Sink
image.png
4. 测试
点击Debug
image.png
image.png
检查blob storage
image.png
5. 发布
如果测试ok,别忘了把所有ADF中创建的组件以及对应properties设置都提交也就是publish。
如果设置了git账号,那么所有的改动都会写入git repository [TODO]
6. 将输出文件的名称加上时间戳
ADF中的组件也支持参数设置,可以让etl更灵活。
比如我需要将输出文件的名称加上时间戳。
image.png
image.png
7. 使用managed identity方式而不是使用public storage account
如果Storage Account不是public的,那么可以采用managed identity的方式
7.1 StorageAccount的修改
-
Storage account/networking/public network access 修改为如下信息
image.png -
Storage account/networking/Exceptions
image.png
7.2 Data Factory/Managed Identities
产生一个System assigned managed identities
Managed Identities
7.3 Storage Account 的ACL增加Sorage Blob Data Contributor role给ADF
image.png
image.png
image.png
7.2 Data Factory/linked service的修改
image.png