你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过使用数据工厂映射数据流来处理定长文本文件

适用于: Azure 数据工厂 Azure Synapse Analytics

通过在 Microsoft Azure 数据工厂中使用映射数据流,可以从定宽的文本文件转换数据。 在以下任务中,我们将为不带分隔符的文本文件定义数据集,然后基于序号位置设置子字符串拆分。

创建管道

  1. 选择“+新建管道”以创建新管道。

  2. 添加一个数据流活动,该活动将用于处理定宽的文件:

    Fixed Width Pipeline

  3. 在数据流活动中,选择“新建映射数据流”。

  4. 添加源、派生列、选择和接收器转换:

    Fixed Width Data Flow

  5. 配置源转换以使用新的数据集,该数据集将是带分隔符的文本类型。

  6. 不要设置任何列分隔符或标头。

    现在,我们将为该文件的内容设置字段起点和长度:

    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    1234567813572468
    
  7. 在源转换的“投影”选项卡上,应该可以看到名为“Column_1”的字符串列。

  8. 在派生列中,创建一个新列。

  9. 我们将为列指定简单名称,如 col1。

  10. 在表达式生成器中,键入以下内容:

    substring(Column_1,1,4)

    derived column

  11. 对需要解析的所有列重复步骤 10。

  12. 选择“检查”选项卡以查看将要生成的新列:

    inspect

  13. 使用选择转换来删除不需要转换的任何列:

    select transformation

  14. 使用接收器将数据输出到文件夹:

    fixed width sink

    下面是输出的效果:

    fixed width output

现在,将定宽数据拆分,每个有四个字符,并分配到 Col1、Col2、Col3、Col4 等。 根据前面的示例,将数据拆分为四列。

后续步骤

  • 使用映射数据流转换来生成数据流逻辑的其余部分。