adls 中包含 200 列的 csv 文件。仅从配置表中获取列的列表。配置表位于 Azure SQL.config 表中只有 10 个列名。如何在Azure datafactory中创建具有此场景的管道?
创建了一个查找活动以从 Azure SQL 配置表中获取列名称。 添加了 ForEach 活动来迭代列名称。 在 ForEach 活动中,创建了一个变量来存储当前列名称。 添加了复制活动以根据当前列名称过滤 CSV 文件。 它不起作用。
您可以使用数据流活动将所需的 10 列从 200 列 CSV 文件复制到 Azure SQL 表。根据您的要求,请按照以下步骤操作:
SELECT STRING_AGG(COLUMN_NAME, ',') AS ColumnNames
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Config';
这将产生如下所示的输出:
创建数据流如下:
Rule-based mapping
选择 +Add mapping
选项。columnlist
,然后使用下面的表达式从文件中选择所需的列:contains(split($columnlist,','), #item==name)
columnlist
。选择 pipeline expression
选项并使用下面的动态表达式:@activity('Lookup1').output.firstRow.ColumnNames