一,引言
上一篇主要只讲了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(二)复制数据
3,Azure Data Factory(三)集成 Azure Devops 实现CI/CD
二,正文
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,今天的分享到此结束,*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!