Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  《Windows Azure Platform 系列文章目录

 

  之前在别的项目中遇到了类似的问题,SQL Server虚拟机中的订单数据,每天产生的数据约千万级别,数据库已经达到了5TB级别。之前需要人工对于SQL Server Table进行归档,费时费力。

  我们可以利用Azure Data Factory,把SQL Server虚拟机的表,导入到Azure Storage中。

 

  主要概念:

  (1)ADF是云端的ETL工具

  (2)Apache Parquet,列存储,高压缩比,数据保存在Azure Storage中

  (3)Parquet Viewer,Windows下查看Parquet数据的工具:https://github.com/mukunku/ParquetViewer

 

  主要步骤:

  1.准备Azure虚拟机,安装SQL Server 2016,把数据插入到SQL Server表中,我们这里的sample data有411万行

  

  2.设置虚拟机的1433端口号,设置Source Service Tag为AzureCloud。允许Azure Cloud服务访问。

  

  3.创建Azure Data Factory。步骤略。

  3.设置ADF的源数据,如下图:

  

 

  4.选择类型为SQL Server

  

 

  5.设置链接到SQL VM的链接字符串信息。如下图:

  

 

  6.选择SQL Server Table表,或者执行T-SQL语句

  

 

  7.然后我们设置目标数据

  

 

  8.创建1个Azure Storage。再创建blob container,步骤略。

  9.设置目标数据类型,为Azure Blob Storage

  

 

  10.选择数据格式,为Parquet。如下图:

  

 

  11.选择到Azure Storage Account的Container Name,并设置新创建的Parquet文件名为ADF执行成功的时间。

  @formatDateTime(addhours(utcnow(),8),'yyyy-MM-ddTHH:mm:ss')

  请注意:ADF执行的时间为UTC时区,我们需要把UTC时区转化为UTC+8北京时区

  

 

  12.配置完毕后,我们可以通过debug进行调试

  

  

  13.执行完毕后,我们可以在Azure Storage中,查看到执行成功后的Parquet文件,文件夹以yyyy-MM-ddTHH:mm:ss格式进行命名

  

 

  14.如果调试成功,我们可以设置触发器,设置每天执行。

  

  

  15.设置每天执行一次

  

  

  16.最后,我们可以点击上图的Publish All,把这个ADF发布

  

 

 

  最后执行结果:

  1.411万行数据,总计花费56分钟,数据可以复制到Azure Storage

  2.Parquet格式的文件,总大小为4.25 GB

  3.SQL Server虚拟机磁盘在ADF执行过程中,Disk Read 1分钟内峰值2GB。Network Out峰值为2GB

  

  4.执行完毕后,可以通过ParquetViewer,查看存储在Azure Storage的文件。

 

 

  

posted on 2020-08-10 18:20  Lei Zhang的博客  阅读(968)  评论(0编辑  收藏  举报