是否有办法将所有数据库从源SQL Server按原样加载到数据湖?我尝试用他的表加载每个数据库,但我询问是否有一种方法可以将所有数据库按原样加载到数据湖
3bygqnnd1#
将所有数据库从SQL加载到ADLG2的方法之一是使用Azure Data Factory
Azure Data Factory
按照以下过程将所有数据库从SQL加载到ADLG2:1.首先创建一个管道并在其中执行脚本活动添加与master数据库链接的服务选择脚本Query并给予以下查询:
Query
SELECT name, database_id, create_date FROM sys.databases;
1.然后获取ForEach活动,并使用int将其设置给予Items,以便获取脚本活动的输出
ForEach
@activity('Script1').output.resultSets[0].rows
1.在每个活动中,取一个lookup活动,使用动态值为数据库创建和添加链接服务
lookup
在该数据集中添加Db name参数
Noe将此参数值发送到链接的服务属性,如下所示
指令集查找活动设置
SELECT table_Schema, TABLE_NAME, TABLE_CATALOG FROM information_Schema.tables WHERE TABLE_TYPE = 'BASE TABLE'sql
1.现在执行执行管道活动,单击“新建”,在管道中创建数据类型为arraylookupOP参数,并在执行管道中将该值作为查找的输出传递给它,如@activity('Lookup1').output.value
array
lookupOP
@activity('Lookup1').output.value
指令集
1.在该新管道中,获取ForEach活动并传递我们作为项创建的参数
指令集1.对于每个活动,获取一个拷贝活动,对于源数据集,在SQL数据库上使用我们之前创建的动态值创建链接服务
指令集在此数据集中,为数据库名称、表名称和架构名称创建参数
文件现在将这些动态值添加到链接的服务属性和表名称、表模式
复制活动源设置:
在接收数据集中创建参数
现在将这些动态值添加到文件夹名、文件名
复制活动接收器设置
输出
创建数据库名称的文件夹,并在该文件夹中加载该特定数据库的表
1条答案
按热度按时间3bygqnnd1#
将所有数据库从SQL加载到ADLG2的方法之一是使用
Azure Data Factory
按照以下过程将所有数据库从SQL加载到ADLG2:
1.首先创建一个管道并在其中执行脚本活动添加与master数据库链接的服务选择脚本
Query
并给予以下查询:1.然后获取
ForEach
活动,并使用int将其设置给予Items,以便获取脚本活动的输出1.在每个活动中,取一个
lookup
活动,使用动态值为数据库创建和添加链接服务在该数据集中添加Db name参数
Noe将此参数值发送到链接的服务属性,如下所示
指令集
查找活动设置
1.现在执行执行管道活动,单击“新建”,在管道中创建数据类型为
array
lookupOP
参数,并在执行管道中将该值作为查找的输出传递给它,如@activity('Lookup1').output.value
指令集
1.在该新管道中,获取
ForEach
活动并传递我们作为项创建的参数指令集
1.对于每个活动,获取一个拷贝活动,对于源数据集,在SQL数据库上使用我们之前创建的动态值创建链接服务
指令集
在此数据集中,为数据库名称、表名称和架构名称创建参数
文件
现在将这些动态值添加到链接的服务属性和表名称、表模式
复制活动源设置:
在接收数据集中创建参数
现在将这些动态值添加到文件夹名、文件名
复制活动接收器设置
输出
创建数据库名称的文件夹,并在该文件夹中加载该特定数据库的表