在Azure Data Factory中读取ADLS非结构化文本并传入存储过程
可以通过Azure Data Factory实现该需求,具体操作步骤如下:
配置ADLS数据源
在ADF中创建指向目标ADLS存储账户的「Azure Data Lake Storage Gen2」数据源,确保ADF具备该存储账户的读取权限(可通过托管标识、SAS密钥或服务主体配置)。用Lookup活动读取完整文本
添加Lookup活动,将数据源指定为目标TXT文件,在活动的查询设置中输入:SELECT * FROM OPENROWSET(BULK '/your-folder-path/sample.txt', FORMATFILE = 'NULL', SINGLE_CLOB) AS [FileContent]这段查询会把整个TXT文件的内容读取为单个字符串,结果会存在Lookup活动的输出里,后续可以通过表达式
@activity('Lookup读取文件').output.firstRow.FileContent获取完整文本。通过存储过程活动传递内容
添加存储过程活动,配置好目标数据库的链接服务:- 在存储过程的参数配置中,把对应输入参数的值设置为上述Lookup活动的输出表达式。比如存储过程有一个
@FullFileContent的参数,就将参数值设为@activity('Lookup读取文件').output.firstRow.FileContent - 注意要确保存储过程的参数类型支持大文本(比如SQL Server中用
NVARCHAR(MAX))
- 在存储过程的参数配置中,把对应输入参数的值设置为上述Lookup活动的输出表达式。比如存储过程有一个
特殊场景处理
如果TXT文件体积过大,Lookup活动可能出现性能瓶颈,这时可以先通过Copy活动把文件内容写入数据库临时表,再让存储过程读取临时表数据;或者借助Azure Function活动读取大文件后再传递给存储过程。
内容的提问来源于stack exchange,提问作者skoundin
相关产品推荐
相关产品推荐

