如何使用Azure Data Factory将SQL表数据按表分存至ADLS对应子文件夹
将ADLS中CSV文件分别移至对应子文件夹的方法
假设你的CSV文件名对应表名(如Table1.csv、Table2.csv、Table3.csv),以下是几种可行的操作方式:
方法1:Azure Storage Explorer 手动操作(适合少量文件)
- 打开Azure Storage Explorer,连接目标ADLS账户。
- 定位到存放CSV的文件夹,创建三个子文件夹:
Table1、Table2、Table3。 - 右键点击
Table1.csv,选择「移动」,指定目标为Table1子文件夹,确认完成。 - 重复上述步骤,分别移动
Table2.csv到Table2文件夹、Table3.csv到Table3文件夹。
方法2:Azure CLI 命令行操作(适合自动化/批量场景)
先确保已登录Azure CLI:
az login
替换<storage-account-name>、<container-name>、<source-folder>为实际值后执行:
- 创建子文件夹(也可省略此步,移动时会自动创建目录):
az storage fs directory create -n Table1 -f <container-name> --account-name <storage-account-name> az storage fs directory create -n Table2 -f <container-name> --account-name <storage-account-name> az storage fs directory create -n Table3 -f <container-name> --account-name <storage-account-name>
- 移动对应文件:
# 移动Table1.csv到Table1子目录 az storage fs file move -s <source-folder>/Table1.csv -d Table1/Table1.csv -f <container-name> --account-name <storage-account-name> # 移动Table2.csv到Table2子目录 az storage fs file move -s <source-folder>/Table2.csv -d Table2/Table2.csv -f <container-name> --account-name <storage-account-name> # 移动Table3.csv到Table3子目录 az storage fs file move -s <source-folder>/Table3.csv -d Table3/Table3.csv -f <container-name> --account-name <storage-account-name>
若源文件在容器根目录,<source-folder>可省略,直接写文件名。
方法3:Azure PowerShell 操作
先登录Azure账户:
Connect-AzAccount
替换参数后执行:
$storageAccountName = "<storage-account-name>" $containerName = "<container-name>" $ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount # 创建子目录 New-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table1" -Directory New-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table2" -Directory New-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table3" -Directory # 移动文件 Move-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table1.csv" -Destination "Table1/Table1.csv" Move-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table2.csv" -Destination "Table2/Table2.csv" Move-AzDataLakeGen2Item -Context $ctx -FileSystem $containerName -Path "Table3.csv" -Destination "Table3/Table3.csv"
方法4:Azure Data Factory 集成到ETL流水线
如果需要将文件移动纳入自动化流程:
- 创建Azure Data Factory资源,配置ADLS Gen2链接服务连接目标存储账户。
- 创建复制活动:
- 源数据集:指向CSV所在文件夹,选择对应文件(如
Table1.csv)。 - 目标数据集:指向
Table1子文件夹,保持文件名一致。
- 源数据集:指向CSV所在文件夹,选择对应文件(如
- 复制上述复制活动,分别配置
Table2.csv和Table3.csv的移动规则。 - 运行流水线完成文件迁移。
内容的提问来源于stack exchange,提问作者tornadoviking
相关产品推荐
相关产品推荐

