Azure Data PlatformETL工具(11)——ADF 数据流
Posted 發糞塗牆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Data PlatformETL工具(11)——ADF 数据流相关的知识,希望对你有一定的参考价值。
本文属于【Azure Data Platform】系列。
接上文:【【Azure Data Platform】ETL工具(10)——ADF 集成运行时(Integration Runtimes,IR)
本文介绍ADF 的数据流
前言
跟【Azure Data Platform】ETL工具(5)——使用Azure Data Factory数据流转换数据不同,前面说的是快速搭建一个Data Flow并做一些简单的操作,本文尝试进行一些深入的介绍。
Azure 提供了一个叫Databricks的服务,是一个对数据进行统一和分析的平台。但是Databricks需要一定程度的编码。与之相比,ADF 的Data flow是一个code-free的可视化工具。同时底层使用着Databricks集群,这比直接使用Databricks更加友好和高效(在某些方面)。
可以把Dataflow作为一个常规的pipeline活动来运行。上一文介绍过的IR就可以用来运行这些Data flow。 可以使用默认的“AutoResolveIntegrationRuntime”,也可以自己创建一个新的IR。
选择创建新的IR,一方面可以保障数据合规性,另外一方面可以自定义一些配置,比如集群大小(最小8个核心), 生存时间(用来指定data flow运行完毕只有,最长保留多久,时间越久费用越高)。
演示
下面通过例子介绍一些Data flow的概念。 首先创建一个文件放到blob storage上。内容就4行,列出我个人现在用到的Azure resources。 并且存储成一个txt文件名为“DataflowDemo.txt”。然后会将它拆分成两列,一列是序号,一列是资源名。最后写入到SQL DB中。
Resources
- ADF
- SQL DB
- SQL DW
- Blob Storage
上传文件:
创建一个数据流,命名为chap11demo:
配置源,命名为“readfromBlob”,新建一个链接服务,链接服务可以重用原有的,也可以新建,为了演示方便,这里新建一个,多重复一些步骤会更加深刻。首先我新建了一个blog storage,名为as4adf(手误), 然后在连接服务里面选择它,如下图所示,并且选择“AutoResolveIntegrationRuntime”,因为只是演示,没必要使用过多配置的IR,每一次配置,尽量要点击一下【测试连接】确保配置是没问题的。
下一步是配置属性,每个链接服务,根据选择的服务类型,会有不同的属性设置,因为源文件第一行不是数据本身,所以勾选【第一行作为页眉】,如果有些数据,最后一行也不是,那么就要对数据进行二次处理。
配置源数据集:
配置后点击一下预览数据看看结果是否合理。
回到源界面,要拆分列,我们使用派生列功能,点击图标的“+”,选择“派生列”
然后对最下方的列表达式进行编定义:
表达式:split(Resources, ‘.’)[1] , 即以“.”为分隔符,获取第一个索引位,注意列名不能用中文:
然后获取资源名称:trim(replace(Resources,concat(indexName,’.’),’’))
注意传入流,也就是输入参数是否正确:
最后配置目标源(接收器),这里我们使用一个SQL DB来存储
在配置接收器的时候,可以选择更新方法及表操作,如果实操的话可以发现,当表操作选择“重新创建表”或“截断表”,上面的操作会有对应的变化。
ADF 使用一个临时表把数据存起来,然后再更新目标表。如果要传输大量数据,可能需要取消勾选【使用TempDB】并指定用户库中的一个schema用来存储临时数据。因为对于SQL Server而言,TempDB的性能并不优于用户数据库,过度使用TempDB对性能没有什么帮助。而且一个实例只有一个TempDB,空间问题也是要注意的。
配置完后,可以通过【数据流调试】进行调试,没有问题的话就可以进行下一步:
要实际运行Data flow,需要用一个管道包住,我们通过新建一个pipeline,然后把这里创建的data flow直接拖进去即可。
运行管道后可以看到数据已经进入了表里面:
如果想知道这个数据流怎么运行的,通过下图的按钮进入:
这里会有一些较为尝试的运行情况:
总结
在本文中,更为深入地演示了数据流的使用。当然还有更多高级应用,后面继续进行演示。
以上是关于Azure Data PlatformETL工具(11)——ADF 数据流的主要内容,如果未能解决你的问题,请参考以下文章
Azure Data PlatformETL工具(19)——Azure Databricks
Azure Data PlatformETL工具(20)——创建Azure Databricks
Azure Data PlatformETL工具(20)——创建Azure Databricks
Azure Data PlatformETL工具——重新认识Azure Data Factory