使用 Azure 数据工厂模板从数据库批量复制到 Azure 数据资源管理器
Azure 数据资源管理器是一个快速、完全托管的数据分析服务。 它可以实时分析从应用程序、网站和 IoT 设备等许多源流式传输的大量数据。
若要将数据从 Oracle 服务器、Netezza、Teradata 或 SQL Server 中的数据库复制到 Azure 数据资源管理器,你必须从多个表加载大量数据。 通常情况下,必须在每个表中对数据分区,以便使用多个线程从单个表并行加载行。 本文介绍一个可以在这些情况下使用的模板。
Azure 数据工厂模板是预定义的数据工厂管道。 这些模板可以帮助你快速开始使用数据工厂,缩短数据集成项目的开发时间。
可以使用 Lookup 和 ForEach 活动创建“从数据库批量复制到 Azure 数据资源管理器”模板。 为了更快地复制数据,可以使用模板针对每个数据库或每个表创建多个管道。
重要
请务必使用与所要复制的数据量相适应的工具。
- 使用“从数据库批量复制到 Azure 数据资源管理器”模板可将 SQL Server 和 Google BigQuery 等数据库中的大量数据复制到 Azure 数据资源管理器。
- 使用数据工厂复制数据工具可将少量或中等数量的数据复制到 Azure 数据资源管理器。
必备条件
创建 ControlTableDataset
ControlTableDataset 指示要将源中的哪些数据复制到管道中的目标。 行数指示复制这些数据所需的管道总数。 应将 ControlTableDataset 定义为源数据库的一部分。
以下代码演示了 SQL Server 源表格式的示例:
CREATE TABLE control_table (
PartitionId int,
SourceQuery varchar(255),
ADXTableName varchar(255)
);
下表描述了代码元素:
properties | 说明 | 示例 |
---|---|---|
PartitionId | 复制顺序 | 1 |
SourceQuery | 指示在管道运行时期间要复制哪些数据的查询 | select * from table where lastmodifiedtime LastModifytime >= ''2015-01-01 00:00:00''> |
ADXTableName | 目标表名称 | MyAdxTable |
如果你的 ControlTableDataset 采用不同的格式,请根据自己的格式创建相应的 ControlTableDataset。
使用“从数据库批量复制到 Azure 数据资源管理器”模板
在“开始”窗格中,选择“从模板创建管道”打开“模板库”窗格。
选择“从数据库批量复制到 Azure 数据资源管理器”模板。
在“从数据库批量复制到 Azure 数据资源管理器”窗格中的“用户输入”下,按如下所述指定数据集:
a. 在“ControlTableDataset”下拉列表中,选择控制表对应的链接服务,该表指示要将源中的哪些数据复制到目标,以及要将数据放在目标中的哪个位置。
b. 在“SourceDataset”下拉列表中,选择源数据库对应的链接服务。
c. 在“AzureDataExplorerTable”下拉列表中,选择“Azure 数据资源管理器”表。 如果该数据集不存在,请创建 Azure 数据资源管理器链接服务以添加该数据集。
d. 选择“使用此模板” 。
在画布中选择活动外部的某个区域,以访问模板管道。 选择“参数”选项卡并输入表的参数,包括“名称”(控制表名称)和“默认值”(列名称)。
在“Lookup”下,选择“GetPartitionList”以查看默认设置。 系统会自动创建查询。
选择命令活动“ForEachPartition”,选择“设置”选项卡,然后执行以下操作:
a. 在“批计数”中,输入从 1 到 50 的数字。 此数字确定了在达到 ControlTableDataset 行数之前,可并行运行的管道数。
b. 为确保管道批并行运行,请不要选中“顺序”复选框。
提示
最佳做法是并行运行多个管道,以加快数据复制速度。 若要提高效率,请将源表中的数据分区,并根据日期和表为每个管道分配一个分区。
选择“全部验证”以验证 Azure 数据工厂管道,然后在“管道验证输出”窗格中查看结果。
如果需要,请选择“调试”,然后选择“添加触发器”以运行该管道。
现在可以使用该模板有效地从数据库和表中复制大量数据。
相关内容
- 了解适用于 Azure 数据工厂中 Azure 数据资源管理器连接器。
- 在数据工厂 UI 中编辑链接服务、数据集和管道。
- 在 Azure 数据资源管理器 Web UI 中查询数据。