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

在 Azure Data Factory 和 Synapse Analytics 中复制数据工具

适用于: Azure Data Factory Azure Synapse Analytics

提示

Microsoft Fabric 中的 Data Factory 是下一代 Azure Data Factory,具有更加简化的架构、内置人工智能和新功能。 如果不熟悉数据集成,请从Fabric数据工厂开始。 现有 ADF 工作负载可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。

“复制数据”工具可简化并优化将数据引入 Data Lake 的过程,这通常是端到端数据集成方案的第一步。 这可节省时间,尤其是首次使用服务引入数据源中的数据时。 下面是使用此工具的一些优势:

  • 使用复制数据工具时,无需了解链接服务、数据集、管道、活动和触发器的服务定义。
  • 对于将数据加载到 Data Lake 中,“复制数据”工具的流程非常直观。 该工具会自动创建将数据从所选源数据存储复制到所选目标/接收器数据存储所需的所有资源。
  • “复制数据”工具有助于在创作时验证正在引入的数据,从而在开始时避免出现任何潜在错误。
  • 如果您需要实现复杂的业务逻辑以便将数据加载到 data lake 中,仍可使用 UI 中的“按活动编辑”功能来编辑“复制数据”工具创建的资源。

下表提供了有关何时使用用户界面的“复制数据”工具或“按活动编写”的指南:

复制数据工具 每活动(复制活动)创作
需要轻松构建数据加载任务,而无需了解实体(链接的服务、数据集和管道等) 需要实现复杂而灵活的逻辑,将数据加载到 Lake 中。
需要将大量数据项目快速加载到数据湖中。 你想要将Copy activity与后续活动链接在一起,以便清理或处理数据。

若要启动复制数据工具,请在数据工厂或Synapse Studio UI 的主页上选择引入磁贴。

启动复制数据工具后,你将看到两种类型的任务:一种是 内置复制任务 ,另一种是 元数据驱动的复制任务。 内置复制任务会引导你在 5 分钟内创建管道来复制数据,无需了解实体。 元数据驱动的复制任务会简化创建参数化管道和外部控制表的历程,以便设法大规模复制大量对象(例如成千上万个表)。 在元数据驱动的复制数据中可以看到更多详细信息。

将数据加载到 Data Lake 中的直观流程

使用此工具,可通过一个直观的流程在数分钟内轻松地将数据从各种源移动到目标:

  1. 配置源设置。

  2. 配置“目标”的设置

  3. 配置复制操作的高级设置,如列映射、性能设置和容错设置。

  4. 指定数据加载任务的时间表。

  5. 查看要创建的实体的摘要。

  6. 编辑管道,根据需要更新复制活动的设置。

    该工具从设计之初就考虑到了大数据,支持多种数据和对象类型。 可利用该工具移动数百个文件夹、文件或表。 该工具支持自动数据预览、构架捕获和自动映射,以及筛选数据。

复制数据工具

自动数据预览

可从选定的源数据存储预览部分数据,这样便可验证正在复制的数据。 此外,如果源数据在文本文件中,“复制数据”工具会分析文本文件,以自动检测行和列分隔符以及架构。

文件设置

检测后,选择“预览数据”:

已检测的文件设置和预览

模式捕获和自动映射

在很多情况下,数据源的架构可能与数据目标的架构不同。 在这种情况下,需要将源架构中的列映射到目标架构中的列。

复制数据工具会监视和学习您在源存储和目标存储之间映射列时的行为。 从源数据存储中选择一个或几个列并将其映射到目标架构之后,“复制数据”工具开始分析从两侧选取的列对的模式。 然后,它将相同的模式应用到其余的列。 因此,只需单击几次,即可看到所有列已经按所需方式映射到目标。 如果对复制数据工具提供的列映射选择不满意,可以忽略它并继续手动映射列。 同时,“复制数据”工具不断学习和更新相关模式,最终达到所需的正确列映射模式。

注意

将数据从SQL Server或Azure SQL Database复制到Azure Synapse Analytics时,如果目标存储中不存在该表,则复制数据工具支持使用源架构自动创建表。

筛选数据

可筛选源数据,仅选择需要复制到接收器数据存储的数据。 筛选能够减少复制到接收器数据存储的数据量,从而增强复制操作的吞吐量。 复制数据工具提供了一种灵活的方法来使用 SQL 查询语言或Azure blob 文件夹中的文件筛选关系数据库中的数据。

筛选数据库中的数据

以下屏幕截图显示用于筛选数据的 SQL 查询。

筛选数据库中的数据

筛选Azure blob 文件夹中的数据

可在文件夹路径中使用变量来复制文件夹中的数据。 支持的变量包括:{year}、{month}、{day}、{hour} 和 {minute} 。 例如:inputfolder/{year}/{month}/{day}。

假设输入文件夹格式如下:

2016/03/01/01
2016/03/01/02
2016/03/01/03
...

选择文件或文件夹“浏览”按钮,浏览到其中一个文件夹(例如 2016-03-01-02>>>),然后选择“选择”。 文本框中应该会显示 2016/03/01/02。

然后,请用 {year} 代替 2016、{month} 代替 03、{day} 代替 01、{hour} 代替 02,并按 Tab 键 。 在“文件加载行为”部分选择“增量加载: 按时间分区的文件夹名称/文件名”并在“属性”页上选择“计划”或“翻转窗口”时,你应该看到用于选择这四个变量的格式的下拉列表:

筛选文件或文件夹

创建管道时,“复制数据”工具生成包含表达式、函数和系统变量的参数,用于表示 {year}、{month}、{day}、{hour} 和 {minute}。

调度选项

可以一次性运行复制操作,也可按计划运行(每小时、每天等)。 这些选项可用于跨不同环境(包括本地、云和本地桌面)的连接器。

一次性复制操作仅支持一次性将数据从源移动到目标。 它适用于任何大小的数据和任何受支持的格式。 使用预定的复制功能,您可以按照您指定的频率复制数据。 可使用丰富的设置(例如,重试、超时和警报)来配置计划的复制。

计划选项

请尝试以下使用“复制数据”工具的教程: