没有合适的资源?快使用搜索试试~ 我知道了~
数据集成工具:Azure Data Factory:5.使用映射数据流进行数据转换.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 6 浏览量
2024-09-02
20:08:58
上传
评论
收藏 30KB DOCX 举报
温馨提示
数据集成工具:Azure Data Factory:5.使用映射数据流进行数据转换.docx
资源推荐
资源详情
资源评论
1
数据集成工具:Azure Data Factory:5.使用映射数据流进行
数据转换
1 理解映射数据流
1.1 映射数据流的概念
映射数据流是 Azure Data Factory 中用于数据转换的一种强大工具。它允许
用户通过图形界面设计数据转换逻辑,而无需编写复杂的代码。映射数据流支
持多种数据转换操作,如选择、过滤、聚合、连接等,可以处理结构化和半结
构化数据,如 CSV、JSON、Parquet 等格式。
映射数据流的核心是数据流活动,它运行在 Azure Data Factory 的专用集成
运行时(IR)上,可以利用多核并行处理和内存优化,以提高数据处理的性能
和效率。数据流活动可以作为数据工厂管道的一部分,与其他活动(如复制、
查找、执行存储过程等)组合使用,形成复杂的数据处理流程。
1.2 映射数据流与数据流的区别
映射数据流与 Azure Data Factory 中的另一种数据转换工具——数据流(也
称为“数据流活动”),在概念上是相同的,但它们在处理数据的方式上有所不
同:
� 映射数据流:使用基于列的转换,这意味着数据流中的每个转换
操作都是针对数据集中的列进行的。映射数据流适用于处理结构化数据,
如关系型数据库中的数据,或 CSV、JSON 等格式的文件数据。它支持丰
富的数据转换操作,如选择、过滤、聚合、连接等。
� 数据流(非映射):使用基于行的转换,这意味着数据流中的每个
转换操作都是针对数据集中的行进行的。非映射数据流适用于处理非结
构化或半结构化数据,如文本文件、日志文件等。它支持的数据转换操
作相对简单,如行过滤、行选择等。
下面通过一个具体的示例来说明如何使用映射数据流进行数据转换:
假设我们有一个 CSV 文件,包含以下数据:
id, name, age, city
1, Alice, 30, New York
2, Bob, 25, Los Angeles
3, Charlie, 35, Chicago
我们想要从这个 CSV 文件中选择 name 和 city 两列,并将结果写入一个新
的 CSV 文件中。在 Azure Data Factory 中,我们可以使用映射数据流来实现这个
需求。
1. 创建数据流:在数据工厂中,选择“数据流”选项,创建一个新
的映射数据流。
2. 添加源:从左侧的工具栏中,将“源”拖到画布上,然后选择
2
CSV 文件作为源数据集。
3. 添加接收器:同样地,从工具栏中,将“接收器”拖到画布上,
选择 CSV 文件作为目标数据集。
4. 添加转换:在源和接收器之间,添加一个“选择”转换操作,选
择 name 和 city 两列。
5. 连接数据集:使用画布上的连接线,将源连接到转换操作,再将
转换操作连接到接收器。
6. 运行数据流:保存数据流后,将其添加到一个管道中,然后运行
管道。
运行后,新的 CSV 文件将只包含 name 和 city 两列的数据:
name, city
Alice, New York
Bob, Los Angeles
Charlie, Chicago
1.3 映射数据流的使用场景
映射数据流适用于以下几种场景:
� 数据清洗:去除数据中的空值、重复值、异常值等,以提高数据
质量。
� 数据转换:将数据从一种格式转换为另一种格式,如从 CSV 转换
为 JSON,或从 JSON 转换为 Parquet。
� 数据聚合:对数据进行分组和聚合,以生成汇总数据,如计算每
个城市的平均年龄。
� 数据连接:将多个数据集连接在一起,以生成更完整或更丰富的
数据集,如将用户数据和订单数据连接在一起,生成用户订单数据。
映射数据流的这些功能,使得它成为数据集成和数据处理领域的一个重要
工具,特别是在处理大规模数据时,其性能和效率优势更加明显。
2 数据集成工具:Azure Data Factory:使用映射数据流进行
数据转换
2.1 创建映射数据流
2.1.1 在 Azure Data Factory 中创建数据流
Azure Data Factory (ADF) 是一个云端数据整合服务,用于编排和自动化数据
集成工作流。映射数据流是 ADF 中用于数据转换的强大工具,它允许用户以图
形化界面设计数据转换逻辑,而无需编写复杂的代码。
3
2.1.1.1 步骤 1:创建数据流
1. 登录到 Azure Portal。
2. 选择你的 Data Factory 实例。
3. 点击“Author & Monitor”。
4. 在“Author”选项卡中,选择“Data flows”。
5. 点击“+ New”,创建一个新的映射数据流。
2.1.1.2 步骤 2:添加源和接收器
在数据流设计器中,你可以通过拖放操作添加源和接收器。源是数据的起
点,接收器是数据的终点。例如,你可以从 Azure SQL Database 中读取数据,
然后将其写入 Azure Blob Storage。
2.1.1.3 步骤 3:配置转换步骤
在源和接收器之间,你可以添加各种转换步骤,如选择、过滤、聚合等,
以处理和转换数据。
2.1.2 示例:使用映射数据流进行数据转换
假设我们有一个销售数据表,需要从 Azure SQL Database 中读取,然后进
行一些数据清洗和转换,最后将结果写入 Azure Blob Storage。
2.1.2.1 数据源:Azure SQL Database
表结构如下:
� SalesID (int)
� ProductName (varchar)
� Quantity (int)
� Price (decimal)
� SaleDate (datetime)
2.1.2.2 数据接收器:Azure Blob Storage
我们将转换后的数据以 CSV 格式存储。
2.1.2.3 数据转换逻辑
1. 选择特定列:只选择 ProductName、Quantity 和 Price。
2. 过滤:只保留 Quantity 大于 10 的记录。
3. 聚合:按 ProductName 分组,计算每个产品的总销售额。
4
2.1.2.4 实现步骤
1. 创建数据流:按照上述步骤创建一个新的映射数据流。
2. 添加源:从“Source”面板中拖动“SQL Server source”到画布上。
3. 配置源:设置 SQL Server 连接,输入 SQL 查询语句。
SELECT ProductName, Quantity, Price, SaleDate
FROM Sales
4. 添加转换:在源节点上,点击“+”,选择“Select”,然后选择
“Filter”和“Aggregate”。
5. 配置转换:
o Select:选择 ProductName、Quantity 和 Price。
o Filter:添加条件 Quantity > 10。
o Aggregate:设置 ProductName 为分组键,Price * Quantity
为聚合表达式,计算总销售额。
6. 添加接收器:从“Sink”面板中拖动“Blob storage sink”到画布
上。
7. 配置接收器:设置 Blob Storage 连接,选择容器和文件路径,设
置文件格式为 CSV。
2.1.3 代码示例
虽然映射数据流主要通过图形界面操作,但下面是一个使用 ADF REST API
创建映射数据流的示例代码:
import requests
import json
#
设置
ADF REST API
的
URL
和认证
url = "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource
GroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineNam
e}/activities/{activityName}?api-version=2018-06-01"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {accessToken}'
}
#
定义数据流的
JSON
结构
data_flow = {
"name": "SalesDataTransformation",
"properties": {
"type": "MappingDataFlow",
"typeProperties": {
"sources": [
{
"dataset": {
剩余16页未读,继续阅读
资源评论
kkchenjj
- 粉丝: 2w+
- 资源: 5479
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的直播数据可视化系统.zip
- (源码)基于Spring Boot和Vue的CRM客户管理系统.zip
- (源码)基于C#的影院票务管理系统.zip
- (源码)基于JSP和Java的校园论坛管理系统.zip
- (源码)基于Spring Boot和MyBatisPlus的在线茶叶销售系统.zip
- (源码)基于Avalonia框架的ECS管理系统.zip
- (源码)基于C#和STM32的WiFi无线门禁考勤系统.zip
- (源码)基于SSM框架的客户管理系统.zip
- (源码)基于Arduino的齿轮状态指示系统.zip
- (源码)基于Android的影院管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功