如何在Azure Data Factory复制活动中移除CSV后缀名至Azure SQL DB
解决方案
可以通过组合Azure Data Factory(ADF)的字符串处理函数实现需求,以下是两种可行的表达式:
方法1:使用split函数(适用于文件名仅含一个.的场景)
@replace(split(item().name, '.')[0], '-', '_')
split(item().name, '.'):将文件名按.分割为数组,示例中Sale-Internet-Header.csv会被拆分为['Sale-Internet-Header', 'csv'][0]:取数组第一个元素,即去除.csv后缀的文件名主体replace(..., '-', '_'):将文件名中的-替换为_,最终得到sales_internet_header
方法2:使用substring + lastIndexOf函数(更通用,支持文件名含多个.的场景)
@replace(substring(item().name, 0, lastIndexOf(item().name, '.')), '-', '_')
lastIndexOf(item().name, '.'):定位文件名中最后一个.的索引位置,示例中对应Sale-Internet-Header.csv里.的位置为20(从0开始计数)substring(item().name, 0, ...):从文件名开头截取到最后一个.之前的部分,得到Sale-Internet-Headerreplace(..., '-', '_'):完成-到_的替换,生成目标表名
将上述任一表达式替换原有接收器数据集的表达式,执行复制活动后,SQL表名将变为dbo.sales_internet_header。
内容的提问来源于stack exchange,提问作者Regazzi
相关产品推荐
相关产品推荐

