ADF 大数据传输(Azure Blob File To Azure Sql)

ADF传输AzureBlob文件内容到AzureSql

  • 情景
  • 准备资源
    • Excel文件:
    • Blob容器:
    • Azure SQL:
    • ADF数据工厂:
      • 配置链接
        • 创建AzureBlob链接:
        • 创建Azure Sql链接
      • 创建数据集
        • Azure Blob数据集
        • Azure Blob数据集
        • AzureSql数据集
      • 新建数据流:
      • 调试:
      • 更新插入测试
      • 监视

ADF读取AzureBlob中文件的数据并导入到AzureSql中

情景

我们有一个Excel中有十几万条数据
然后我们需要传入AzureSql数据库,因为数据量比较大,所以我们使用数据工厂进行传输 。现在实现一个Demo,从Blob中读取一个文件然后使用ADF传输数据到AzureSql中,如果没有表则自动创建表,有表的话更新插入。
现在我们目标明确:

准备资源

源数据:Azure Blob文件,Azure Data Factory ,Azure Sql数据库

Excel文件:

我们先准备一个文件如下图:

ADF 大数据传输(Azure Blob File To Azure Sql)_第1张图片
ADF 大数据传输(Azure Blob File To Azure Sql)_第2张图片
‘End’表主要是验证更新插入,到时候应该是‘zhaoliu’的birth和phone被更改,’lslsls’和‘lisonglisong’新增。最后应该共有9条数据。

Blob容器:

我们创建一个名为‘adfdatasouce’的存储账户,然后再创建一个‘datasourcefile’的Blob容器来存储excel数据文件。
ADF 大数据传输(Azure Blob File To Azure Sql)_第3张图片
然后上传文件到Blob
ADF 大数据传输(Azure Blob File To Azure Sql)_第4张图片

Azure SQL:

准备AzureSql数据库。我们顺便配置一下防火墙方便访问,勾选允许Azure服务访问。(如果是全网访问可以设置范围”0.0.0.0 —— 255.255.255.255“)
ADF 大数据传输(Azure Blob File To Azure Sql)_第5张图片
ADF 大数据传输(Azure Blob File To Azure Sql)_第6张图片

ADF数据工厂:

创建一个名为ADFTranslateData的数据工厂,然后点击‘启动工作室’
ADF 大数据传输(Azure Blob File To Azure Sql)_第7张图片

配置链接

转到工作室之后我们开始链接AzureBlob和Azure SQL打通两端。
ADF 大数据传输(Azure Blob File To Azure Sql)_第8张图片

创建AzureBlob链接:

ADF 大数据传输(Azure Blob File To Azure Sql)_第9张图片
然后我们给定一个链接的名称然后选定订阅,下拉找到我们实现创建好的存户账户。所有的填好之后我们可以点击测试链接,如果出现测试成功则说明链接成功。
ADF 大数据传输(Azure Blob File To Azure Sql)_第10张图片

创建Azure Sql链接

重新搜索AzureSql,然后点击创建
ADF 大数据传输(Azure Blob File To Azure Sql)_第11张图片
同样的我们给AzureSql一个链接名称然后选择订阅,选择我们的SQL服务器名称,数据库,用户名和密码,然后我们点击测试链接。
ADF 大数据传输(Azure Blob File To Azure Sql)_第12张图片
ADF 大数据传输(Azure Blob File To Azure Sql)_第13张图片

创建数据集

使用创建的链接创建两个数据集,我们转到创作,点击数据集右侧的‘…’->新建数据集
ADF 大数据传输(Azure Blob File To Azure Sql)_第14张图片

Azure Blob数据集

我们搜索AzureBlob,选中Azure Blob选择继续,我们数据源是Excel文件所以这里选择Excel,选中后选择继续
ADF 大数据传输(Azure Blob File To Azure Sql)_第15张图片
然后我们填写里面的参数
链接的服务是Azure Blob服务
文件路径就是我们存放数据源文件的Blob路径
工作表模式我们选择名称
我们可以选择start初始的那份数据
将第一行作为页眉:假如不勾选的话,会将第一列 列名插入到数据库中
ADF 大数据传输(Azure Blob File To Azure Sql)_第16张图片

Azure Blob数据集

同样的我们再来一个一样的AzureBlob 然后导入名为end的sheet表,这个数据集是我们第二次运行测试更新插入用作的数据源
ADF 大数据传输(Azure Blob File To Azure Sql)_第17张图片

AzureSql数据集

创建AzureSql数据集,同样我们搜索AzureSql然后选中AzureSql数据库
ADF 大数据传输(Azure Blob File To Azure Sql)_第18张图片
然后我们填写参数,表单填写即我们sql表。我们还没有所以这里空着就好了。
ADF 大数据传输(Azure Blob File To Azure Sql)_第19张图片

新建数据流:

我们之前做的所有的准备工作都是为了数据流,我们数据源是AzureBlob,目标是AzureSql

我们 点开数据源选中start的数据集
ADF 大数据传输(Azure Blob File To Azure Sql)_第20张图片
然后转到投影,转换字段格式,因为我们ADF读取AzureBlob,为了确保数据 传输不会报错默认读取的Blob文件数据的类型都是字符串类型,我们要想根据文件的数据结构建表必须要准确数据类型。
ADF 大数据传输(Azure Blob File To Azure Sql)_第21张图片
然后我们点击右下角小加号,选择Alter行
ADF 大数据传输(Azure Blob File To Azure Sql)_第22张图片
然后我们转到更改行设置,将Alter行条件改为:
ADF 大数据传输(Azure Blob File To Azure Sql)_第23张图片
设置目标接收器,点击右下角的加号,找到最下面的接收器:
ADF 大数据传输(Azure Blob File To Azure Sql)_第24张图片
然后选中我们的Sql数据库:
ADF 大数据传输(Azure Blob File To Azure Sql)_第25张图片
转到设置我们选择允许更新插入
ADF 大数据传输(Azure Blob File To Azure Sql)_第26张图片
然后我们下面的键列,(这就使我们更新插入所依据的主键)我们下拉可以找到我们Excel中的列。
ADF 大数据传输(Azure Blob File To Azure Sql)_第27张图片
这个数据流就完成了
ADF 大数据传输(Azure Blob File To Azure Sql)_第28张图片

调试:

我们找到管道,新建管道然后再活动里搜索数据流,将数据流组件拖到我们的工作画布中

ADF 大数据传输(Azure Blob File To Azure Sql)_第29张图片
转到设置,下拉选取我们的数据流
ADF 大数据传输(Azure Blob File To Azure Sql)_第30张图片
然后我们点击调试,发现它提示我们选择表
ADF 大数据传输(Azure Blob File To Azure Sql)_第31张图片
我们转到AzureSql的数据集,然后选中手动输入,我们可以定义一个表名(一定要先勾选,不然无法写入):
ADF 大数据传输(Azure Blob File To Azure Sql)_第32张图片
然后再点击调试,弹出的框中确定就好
ADF 大数据传输(Azure Blob File To Azure Sql)_第33张图片
就绪之后再次点击调试,可以看到我们的数据流正在运行:
ADF 大数据传输(Azure Blob File To Azure Sql)_第34张图片
不久后我们可以看到运行成功:
ADF 大数据传输(Azure Blob File To Azure Sql)_第35张图片
然后我们转到Sql数据库查询看看是否生成了userinfo表:
ADF 大数据传输(Azure Blob File To Azure Sql)_第36张图片

更新插入测试

可以看到没问题,不仅创建了表,而且准确创建了数据字段,ok,现在我们开始测试更新插入是否好用。返回到我们的ADF中:
这里测试我们为了节约直接修改数据流的源为‘End’的sheet:

ADF 大数据传输(Azure Blob File To Azure Sql)_第37张图片
然后在pipeline中再次运行pipeline
ADF 大数据传输(Azure Blob File To Azure Sql)_第38张图片

ADF 大数据传输(Azure Blob File To Azure Sql)_第39张图片
Ok,成功之后我们再次返回Azure SQL查询看看是不是像我们所预料的那样:
ADF 大数据传输(Azure Blob File To Azure Sql)_第40张图片
ADF 大数据传输(Azure Blob File To Azure Sql)_第41张图片
这里因为视图局限性结了两次图,但是结果无误。
ADF 大数据传输(Azure Blob File To Azure Sql)_第42张图片

监视

我们可以在ADF的监视器里面查看之前运行的pipeline记录:
ADF 大数据传输(Azure Blob File To Azure Sql)_第43张图片

你可能感兴趣的:(Azure,SQL,Azure,Blob,Azure,azure,sql,数据库)