能否通过Python版Azure SDK免脚本创建Dataflow?求含Source、Transformation、Sink的示例代码
可以使用Python版Azure SDK无脚本创建Dataflow
完全可以通过Azure Python SDK的azure-mgmt-datafactory库,以声明式方式创建包含Source、Transformation和Sink的Dataflow,无需编写Dataflow脚本行。
示例代码
首先安装依赖包:
pip install azure-mgmt-datafactory azure-identity
以下是完整的Dataflow创建代码,涵盖Blob存储源、过滤转换、Blob存储输出的流程:
from azure.identity import DefaultAzureCredential from azure.mgmt.datafactory import DataFactoryManagementClient from azure.mgmt.datafactory.models import ( DataFlow, DataFlowSource, DataFlowSink, FilterTransformation, DatasetReference, Expression ) # 替换为你的Azure资源信息 subscription_id = "<你的订阅ID>" resource_group_name = "<你的资源组名称>" factory_name = "<你的Data Factory名称>" dataflow_name = "UserFilterDataFlow" # 初始化Data Factory客户端 credential = DefaultAzureCredential() adf_client = DataFactoryManagementClient(credential, subscription_id) # 1. 定义Source:引用已创建的Blob源数据集 source = DataFlowSource( dataset_reference=DatasetReference(reference_name="SourceUserBlobDataset"), name="Source" ) # 2. 定义Transformation:过滤年龄大于18的用户数据 filter_transform = FilterTransformation( name="FilterAdultUsers", source=source.name, condition=Expression(value="greater(age, 18)") ) # 3. 定义Sink:引用已创建的Blob目标数据集 sink = DataFlowSink( dataset_reference=DatasetReference(reference_name="SinkAdultUserBlobDataset"), name="Sink" ) # 构建DataFlow对象 dataflow = DataFlow( sources=[source], sinks=[sink], transformations=[filter_transform] ) # 创建/更新Dataflow response = adf_client.data_flows.create_or_update( resource_group_name=resource_group_name, factory_name=factory_name, data_flow_name=dataflow_name, data_flow=dataflow ) print(f"Dataflow {dataflow_name} 创建完成,状态: {response.provisioning_state}")
代码说明
- Source:通过
DatasetReference直接引用Data Factory中已配置好的源数据集(示例为Blob存储数据集),无需编写脚本指定数据源细节。 - Transformation:使用
FilterTransformation类定义过滤逻辑,通过Expression传入Data Factory原生表达式实现数据筛选,替代脚本行。 - Sink:同样通过
DatasetReference引用目标数据集,将处理后的数据写入指定存储位置。
注意:需提前在Data Factory中创建好对应的源和目标数据集,代码中直接引用其名称即可。
内容的提问来源于stack exchange,提问作者sai kumar
相关产品推荐
相关产品推荐

