Azure Data Factory(二)复制数据
一,引言
上一篇主要只讲了Azure Data Factory的一些主要概念,今天开始新的内容,我们开始通过Azure DevOps 或者 git 管理 Azure Data Factory 中的源代码,同时创建 Pipleline 将 Azure Blob1 的 Container 的数据通过 Copy Data 复制到 Azure Blob2的 Container中。我选择的是Azure DevOps 作为代码管理的工具
--------------------我是分割线--------------------
1,Azure Data Factory(一)入门简介
2,Azure Data Factory(二)复制数据
二,正文
1,Azure DevOps 创建项目
首先我们得在Azure DevOps 上创建一个项目
Azure DevOps 地址:dev.azure.com,点击 “Sign in to Azure DevOps” 进行登陆,首次登陆的话,需要新创建一个组织,这里我就不过多演示了。
输入项目名称 “CnBateBlogWeb_Proj”,选择项目的是否 “公开/私有”,点击 “+ Create project” 进行创建项目。
我们可以看到项目的Repos信息,复制当前项目的Git仓库地址链接备用
2,创建 Azure Blob 存储和Azure Data Factory
Azure Portal 中点击 “Create a resource”,选择 “Storage Account” 进行创建数据源以及目标源
Storage account name:“cnbateblogwebaccount1dev”
Location:“East Aisa”
"Performance":“Standard”
Account kind:“BlobStorage”
其他的选择默认,点击 “Review + create” 进行创建预校验。
校验成功后,点击 “Create” 进行创建操作
接下来,使用同样的步骤创建目标源Storage Account----- "cnbateblogweb2dev"
cnbateblogweb1dev 的 Azure Blob Storage 初始化数据,选择 “Blob service =》Containers” ,点击“+ Container” 添加 Container
Name 输入 “resformfoler” 其他选择默认,点击 “Create” 进行创建。
点击进去当前 “resformfolder” 容器
选择上传,我这里只是作为演示上传一个 txt 文本文件,实际项目中当前数据应该为 Azure Factory 的数据源。
以下是我上传的文件----“AZ-300考试说明.txt”
回到 ”cnbateblogwebaccount2dev“ 中,新建容器-----”restofolder“
最后,创建搜索 “Data Factory”
Resource group 选择 :“Web_Test_DF_RG”
Region :‘East Asia“
Name:”ADF-CnBateBlogWeb-Dev“
其他选择默认,点击 ”Next:Git configuration“ 配置 git 代码管理信息
选择 “Configure Git later”,稍后进行配置,点击 ”Review+create“ 进行创建预校验
建议完成后,点击 ”Create“ 进行创建
3,配置 Azure Data Factory
配置 Azure DevOps
点击进去新创建的叫 ”ADF-CnBateBlogWeb-Dev“,点击图中圈起来的 ”Author & Montor“ 跳转到作业和监控页面
点击图中箭头指向的地方,进行先配置代码管理设置
选择 ”Source control =》Git configuration“ ,点击 ”Set up code repository“ 进行配置
选择 ”Azure DevOps Git“
选择Azure DevOps 所在目录
选择账号 ”allenMaster“
选择项目 ”CnBateBlogWeb_Proj“
Git repository name 选择:”Use existing“(使用现有),也就是”CnBateBlogWeb_Proj“
Collaboration branch(协作分支):”master“
Publish branch(发布分支):”adf_publish“
其他选择默认后,点击 ”Apply“ 进行应用
设置完毕后,会弹出,需要让我们设置 Azure Data Factory 的工作分支,我们选择 ”Use existing“,选择 ”master“ 进行保持操作
配置 Data Factory Pipeline
首选,我们需要新建分支,就如同我们写代码一样,都新建自己的 ”feature branch“。经开发,测试完成后,再 "merge" 到 "master" 分支。Azure Data Factor 也是一样,我们需要有一个很规范的操作流程。
点击 "+ New branch",进行新创建分支
输入分支名称 ”allen/Feature-1“,点击 ”Save“ 进行保存操作。
可以看到当前工作环境在我们自己的”allen/Feature-1“ 开发分支上
点击图中的 ”+“ ,先添加 pipeline 信息
可以看到图中,我们可以更改 pipeline 的名称,我这里就不再进行修改,继续使用默认的名称 ”pipeline1“,在 ”Activities(活动)“ 下的搜索框搜索 ”Copy Data“ 具体的活动,然后将 ”Copy Data“ 拖拽到 pipeline 设计器的图中。关于Name,我们可以进行改名操作。这里我也不进行改名操作。
配置 Data Factory DataSets
点击 ”Source“ 切换到设置数据源页面,点击 ”+ New“ 添加新的数据源。
选择 ”Azure Blob Storage“,点击 ”Continue“
选择”Binary(二进制)“文件,点击 ”Continue“
将 Name 修改为 ”FromBinaryData“,Linked service(链接服务)选择创建新的:”+ New“
关于配置链接服务
Name 修改为:”CnBateFromBlobStorage“
Azure subscription 选择 之前创建 Blob Storage 的订阅
Storage account name 选择:”cnbateblogwebaccount1dev“
点击 ”Create“ 进行创建,确认。
创建好链接服务后,我们需要设置其 ”File path(文件路径)“,点击图中箭头所指的位置,进行设置
点击 ”resformfolder“ 选择容器,点击 ”OK“ 进行确认操作(我们不需要设置具体的某个文件,我们的目标就是将 ”resformfoler“ 当前容器下的所有文件 复制到目标源的容器中)
设置完成后,点击 ”OK“ 进行确认
同时,我们设置完成后,打开进行测试刚刚设置的链接服务,以保证能正常,成功的连接到 Blob Storage。
最后,回到 pipeline中,选择 "Sink",设置目标源,几乎是同样操作,我们需要将 "cnbateblogwebaccount2dev" 设置为目标源,具体参数,请看下图
设置完毕后,我们回到pipeline1 中,点击 ”Save all“ 进去全部保存操作。
Data Factory 的验证、测试
接下来,我们要对 ADF 中配置的 pipeline 进程校验操作,点击 ”validate all“,可以看到右边现在未发现错误
最后,就是调试,手动点击 ”Debug“ 进行测试pipiline,同时可以在底部看到输入当前pipeline 运行状态。
同时,我们也可以看到在 ”cnbateblogwebaccount2dev“ 这个Blob Storage 的 ”restofolder“ 这个容器中也出现了之前在数据源 Blob Storage 的 ”resformfolder“ 容器中的文件
测试完毕后,我们可以将当前自己分支上的代码合并到 ’master” 分支,并进行分布操作
输入当前合并分支的Title,已经完成/修改了那些功能等,这些操作我就不一一演示了,大家可以对照自己实际开发工程中关于代码提交的流程,点击“Create”
先进行同意此次 合并请求,再点击 完成合并请求
点击 “Complete merge” 完成合并操作
测试,我们通过代码,也可以看到当前master 分支上已经有了我们开发好,验证好的代码
回到Azure Data Factory 中,提到 “allen/Feature-1” 分支不存在,让我们重新选择工作的分支,(因为刚刚在合并代码的时候,我们勾选了“合并后删除此分支”的选项)我们继续选择 “master” 分支
切换到 “master” 分支后,就需要进行发布操作(注意,我们确保合并到master 分支的代码是完全校验过,测试过的),发布完成后,其实当前Data Factory 的pipiline 是不会不会进行触发的,除非我们进行,手动 “Debug”/设置 “trigger”
点击 “Add trigger” 设置触发器
Name:“CtriggernBate_CopyData_Trigger”
Type 选择:“Schedule”
Start date "11/02/2020 3:40 PM"
time zone(时区):“UTC+8”
Recurrence 设置为 每5分钟 循环一次
勾选 ”Specify an end date(指定截至日期)“
End on(截至):”11/02/2020 4:00 PM“
点击 ”OK“ 进行添加,保存操作
设置完触发器后,再进行发布操作
最后,我们可以看到当前pipeline的运行状态
OK,今天的分享到此结束,*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(由于时间的关系,集成CI/CD放到下一篇进行讲解)
三,结尾
今天实地的演示了一下将 Blob Storage1 容器中的数据通过Azure Data Factory 复制到 Blob Storage2 容器中,同时也很粗糙的使用Azure DevOps 作为 ADF的代码管理工具。通过验证,测试将开发好的分支代码合并到master分支上,在通过master 分支进行发布pipeline。最近经过设置Trigger,进行发布,定时进行触发pipeline,经过 监视器观察每次管道运行状态。
作者:Allen
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
Azure Data Factory(二)复制数据的更多相关文章
- Azure Data Factory(一)入门简介
一,引言 今天分享一个新的Azure 服务-----Azure Data Factory(Azure 数据工厂),怎么理解,参考根据官方解释-----数据工厂解释:大数据需要可以启用协调和操作过程以将 ...
- Azure Data Factory(三)集成 Azure Devops 实现CI/CD
一,引言 由于上一节文章内容过长,无法分享Azure Data Factory 的持续集成,持续发布.今天将着重介绍一下在使用 Azure DevOps Pipeline 发布,自动进行持续集成,并且 ...
- Azure Data Factory(四)集成 Logic App 的邮件通知提醒
一,引言 上一篇有介绍到使用Azure Data Factory 复制数据,然后有集成 Azure DevOps 实现CI/CD,但是对于真正的项目来说,这些肯定是不够的,比如说在执行 Azure P ...
- Azure Data Factory(五)Blob Storage 密钥管理问题
一,引言 之前讲解的ADF 集成Azure DevOps 实现CI/CD,在 Releases Pipeline 阶段,我们是将两个 Blob Storage 的链接字符串复制.粘贴到 "O ...
- ADF 第一篇:Azure Data Factory介绍
Azure Data Factory(简写 ADF)是Azure的云ETL服务,简单的说,就是云上的SSIS.ADF是基于云的ETL,用于数据集成和数据转换,不需要代码,直接通过UI(code-fre ...
- 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现
在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...
- Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage
一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...
- 构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)
背景 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 数据湖的核心功能, ...
- Azure Storage 利用 azCopy 复制迁移数据
一,引言 前两天遇到了Azure Blob Storage 需要迁移到另外的一个 Azure Blob Storage 中.手动下载.上传已经无法满足了,得另寻一种方式了 AzCopy.Azure 为 ...
随机推荐
- Spring Boot 第三弹,一文带你了解日志如何配置?
前言 日志通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 今天就来介绍一下Spring Boot中的日志如何配置. Spr ...
- Layman ThinkPHP 中 where条件 or,and 同时使用
Eg:('a'=1 and 'b'=2) or ('c'=3 and 'd'=4) and 'e'=5 解决方法 $condition1['a'] = 1; $condition1['b'] = 2; ...
- Java中 util 包 Calendar类制作万年历(不用自己写方法,直接用Java写好的包中的类的方法)
代码前需要了解的关于Calendar类的内容: 1.在util包中,首先要知道Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象.Calendar 的 ...
- 【Go语言入门系列】Go语言工作目录介绍及命令工具的使用
[Go语言入门系列]前面的文章: [保姆级教程]手把手教你进行Go语言环境安装及相关VSCode配置 [Go语言入门系列](八)Go语言是不是面向对象语言? [Go语言入门系列](九)写这些就是为了搞 ...
- phpstorm中配置使用svn详细步骤
一.搭建SVN环境 1.下载VisualSVN Sever.下载地址:https://www.visualsvn.com/server/download/ 2.安装VisualSVN Server. ...
- node-macaddress
下载 node-macaddressnode-macaddress 检索Linux.OS X和Windows中的MAC地址. 关于MAC地址的一个常见误解是,每个主机只有一个MAC地址, 虽然一个主机 ...
- TP5自定义路由,为了安全性
1,入口文件index.php,不要指定任意模块,不然,自定义路由,就不会有任何效果哦 2,在配置文件 route.php 中引进 use think\Router 自带路由文件 3,将路由进 ...
- docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc
之前安装的版本是docker 1.3,并运行了容器jenkins 现在把docker升级版本为docker-ce 19.03 再使用docker ps发现之前的jenkins容器已经退出了 启动容器: ...
- 【自学编程】新手经常遇到的10大C语言基础算法,珍藏版源码值得收藏!
算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.本文是近百个C语言算法系列的第二篇,包括了经典的Fibonacci数 ...
- tensorflow 出现KeyError: 'tulips\\8689672277_b289909f97_n.jpg'报错
在学习tensorflow基础教程-图像章节过程中,按照官网教程学习的时候出现了以下报错 一开始很迷茫,按着教程走怎么会这样呢 ,上网查资料也没找到找到,没办法,只好自己找原因,根据提示KeyErro ...