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 为 ...
随机推荐
- 提交 linux kernel 补丁流程备忘录
1. 订阅 linux 邮件列表 linux 邮件列表 Kernel Mailing Lists 是所有 linux kernel 开源贡献者协同工作的平台,可以通过向 VGER.KERNEL.ORG ...
- 深入了解Vue.js组件笔记
1.组件注册 Vue.component('name',{}) 创建的组件都是全局组件,它们在注册之后可以用在任何新创建的Vue根实例(new Vue)的模板中.第一个参数是组件的名字,第二个参数是一 ...
- Kubernetes Pod水平自动伸缩(HPA)
HPA简介 HAP,全称 Horizontal Pod Autoscaler, 可以基于 CPU 利用率自动扩缩 ReplicationController.Deployment 和 ReplicaS ...
- VS2010,VS2012,VS2013,VS2015等的自动提示不能默认选中的功能解决办法
很简单,只需要按 ctrl+alt+space 即可切换.
- How to read h5 file by Matlab
In matlab, one can use the following command to read h5 file data = h5read(filename,ds) data = h5rea ...
- 深入解读 ASP.NET Core 身份认证过程
长话短说:上文我们讲了 ASP.NET Core 基于声明的访问控制到底是什么鬼? 今天我们乘胜追击:聊一聊ASP.NET Core 中的身份验证. 身份验证是确定用户身份的过程. 授权是确定用户是否 ...
- 借助C++探究素数的分布
这里使用的区间是36,144,576,2304,9216,36864,147456,589824,2359296,9437184.至于这个区间是怎么得到的,感兴趣的同鞋可前往(https://www. ...
- PicGo图床与Typora(PicGo+Typora+GitHub的完整设置)
PicGo图床与Typora(PicGo+Typora+GitHub的完整设置) 如何更方便的用markdown写文章,接下来按照我的步骤来,你一定可以的,这个文章包含了GitHub图床配置.PicG ...
- CDH5部署三部曲之一:准备工作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- docker overlay原理
周末两天研究了一下docker overlay网络的原理,因为我本身对go语言不太熟悉,直接看docker官方的libnetwork库看不太懂,看linux内核的vxlan代码又粗心大意,导致有一个环 ...