SQL Server 将所有数据库从源加载到ADLG2(Azure Data Lake gen2)

raogr8fs  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(134)

是否有办法将所有数据库从源SQL Server按原样加载到数据湖?
我尝试用他的表加载每个数据库,但我询问是否有一种方法可以将所有数据库按原样加载到数据湖

3bygqnnd

3bygqnnd1#

将所有数据库从SQL加载到ADLG2的方法之一是使用Azure Data Factory

按照以下过程将所有数据库从SQL加载到ADLG2:
1.首先创建一个管道并在其中执行脚本活动添加与master数据库链接的服务选择脚本Query并给予以下查询:

SELECT name, database_id, create_date  
    FROM sys.databases;

1.然后获取ForEach活动,并使用int将其设置给予Items,以便获取脚本活动的输出

@activity('Script1').output.resultSets[0].rows

1.在每个活动中,取一个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


指令集

1.在该新管道中,获取ForEach活动并传递我们作为项创建的参数


指令集
1.对于每个活动,获取一个拷贝活动,对于源数据集,在SQL数据库上使用我们之前创建的动态值创建链接服务


指令集
在此数据集中,为数据库名称、表名称和架构名称创建参数


文件
现在将这些动态值添加到链接的服务属性和表名称、表模式

复制活动源设置:

在接收数据集中创建参数

现在将这些动态值添加到文件夹名、文件名

复制活动接收器设置

输出

创建数据库名称的文件夹,并在该文件夹中加载该特定数据库的表

相关问题