| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【Azure Data Platform】ETL工具(13)——ADF并行加载多个文件 -> 正文阅读 |
|
[大数据]【Azure Data Platform】ETL工具(13)——ADF并行加载多个文件 |
前言在一个数据类的IT项目中,从多个位置(云和本地或者云中很多存储)中的多个文件导入到一个数据库,比如Azure SQL DB,是很常见的需求。各种可变因素都会导致手工操作变得很困难。因此,借助上文的参数化,还有之前演示的一些内容,来个相对贴近实战的演示。 相对于前面用txt文件,csv文件更加常见,所以本文使用csv来做演示,但是在实际项目中,ADF的数据集并不需要关注到这么精确。毕竟混用的常见的,过度确定也将带来很多不便。不仅文件类型,连列的描述,数据类型等,也不需要非常明确地定义。可以通过占位符来替代一下文件之间的不同处,比如分隔符。 另外使用For Each 这个活动,可以遍历元数据并同时加载多个文件。把这些信息组合成在一起之后,可以创建一个以元数据驱动的管道来动态地加载多个文件。 环境准备这里准备三个csv文件,第一个文件放10行数据,以“;”为分隔符。 第二个文件存放5行数据,以“;”为分隔符。第三个文件存放5行数据,为了模拟来自于其他系统,所以以逗号“,”为分隔符。并且序号是连续的。 这里新建一个ADLS, 并且创建两个文件夹到container下面,一个叫douhao, 一个叫fenhao。
初始化数据:
创建目标表:
搭建ADF在环境准备好只有,就开始ADF方面的开发了。 step 1 创建数据集如果不用参数化,那就要创建4个数据集,2个针对ADLS上的数据源,2个针对SQL DB上的表。但是参数化之后,可以只使用2个数据集即可,一个针对ADLS的数据源,另外一个针对SQL DB上的表。在运行的时候从参数表中获取所需的信息。 跳过页首,并且只指定container即可: 上一文说过,参数化之后,架构部分应该清空: 这次对文件路径中的目录进行动态化:
然后配置列分隔符,注意要先点击【编辑】,才能出现“添加动态内容”,不然就只能是选择: 配置好之后如下: 源配置好了,接下来配置目的地的数据集,也就是这里的SQL DB。前面已经演示过很多次,这里就逐步演示。
Step 2 配置管道首先我们需要读取配置表,相应的ADF 活动就是lookup。 中文版叫“查找” 我们可以使用这个SQL查询信息:
然后添加“ForEach”活动,并且通过拖动Lookup的绿色图标连到ForEach 活动中:
对ForEach添加活动:
配置完后,进行调试: 实际上有两个并行操作: 1.ForEach 循环将并行分别处理每个 ADLS上的文件夹(分号文件与逗号文件)。 总结通过这种元数据驱动,可以基本上只更改配置表中的配置信息,即可应对同一行为的大量文件。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:56:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |