Flink控制台支持与远程Git仓库(如GitHub、GitLab或Gitee)集成。您可以通过实时计算开发控制台推送作业草稿和文件夹到远端Git仓库,或从远端拉取代码进行作业开发与部署。该功能适用于业务上云、协同开发、代码管理、质量保障、风险控制、灾备及合规管理等多场景。本文将详细介绍如何在实时计算开发控制台上集成Git,并完成代码的拉取与推送操作。
使用场景
类别 | 使用场景 | 操作建议 |
迁移上云 | 将本地Flink SQL代码通过Git直接推送到云端集群(如阿里云实时计算Flink版),减少手动导出及导入配置的繁琐操作。 |
|
协同开发与代码管理 |
|
|
质量保障与风险控制 |
|
|
灾备与合规管理 |
|
|
前提条件
已创建Flink工作空间,详情请参见开通实时计算Flink版。
已创建Git仓库(GitHub、GitLab或Gitee等)或拥有远程Git仓库的访问权限。
如果Git仓库启用了IP白名单,请确保已将Flink工作空间的网络地址添加到Git仓库的允许列表中。
在进行代码仓库绑定前,请确保打开NAT网关实现实时计算Flink工作空间VPC网络和公网的连通。
注意事项
作业类型:目前仅SQL作业支持与Git对接。
绑定限制:
仅项目空间管理员(Owner)或拥有同等权限的成员,可以配置和编辑Flink项目空间中绑定的Git仓库信息。
每个项目空间仅支持绑定一个代码仓库和一个分支。若需要管理多个Git仓库或同一个Git仓库的多个分支,可通过创建不同项目空间来实现多分支的管理。项目空间创建方法详情,请参见管理项目空间。
文件夹层级:仅支持拉取四层以内的SQL文件夹。如果Git中SQL文件所在层级超过四层,则无法被拉取到实时计算开发控制台中。
请勿在Git系统与实时计算开发控制台中并行编辑同一个文件。若发生双方同时修改相同文件的情况,在实时计算开发控制台执行推送或拉取时,将触发冲突检查,此时需要您手动解决冲突。Flink平台冲突处理机制如下。
操作类型
冲突处理机制
拉取操作
系统会自动将无冲突的更新应用到SQL草稿中,同时提示具体冲突文件。您需手动解决冲突后方可继续操作。
推送操作
单击推送更改,系统会提示您远程仓库存在更新,请拉取更新后再试。
在拉取过程中,若发现冲突,需要您手动解决冲突后完成拉取。
冲突解决后,再次推送。
重要在手动解决冲突前,由于Flink平台不支持整体回滚,请备份重要数据(如将
example.sql
文件复制到本地),并评估操作影响,谨慎处理以避免误操作引发不可逆后果。当在Git上仅对JSON文件(包含SQL草稿的配置信息)进行操作时,实时计算开发控制台的拉取行为将遵循以下规则:
新增或删除JSON文件:实时计算开发控制台不会同步增加或删除对应的SQL草稿。
修改JSON文件:实时计算开发控制台会同步更新同名SQL草稿的配置信息。
步骤一:项目空间配置Git仓库
(可选)网络连通性检测。
对于GitHub或GitLab仓库,您需要打开NAT网关,确保Git仓库和Flink工作空间之间的网络连通性,否则可能会因网络问题导致无法成功绑定Flink项目空间。网络连接详情请参见网络连接选型和如何进行网络探测?
进入实时计算开发控制台。
登录实时计算管理控制台。
单击目标工作空间操作列下的控制台。
项目空间配置Git仓库。
单击页面右上角的用户头像后,单击用户信息,进入项目空间列表页面。
单击目标项目空间操作列下的Git仓库配置。
填写Git配置信息。
配置项
说明
仓库类型
支持GitHub、GitLab和Gitee。
仓库URL
完整的仓库地址,以HTTP或HTTPS开头且以
.git
结尾。用户名
Git平台的账号用户名,需要对目标仓库有权限。
Personal Access Token
访问令牌,用于身份验证。
获得Github Token信息详情请参见GiHub管理个人访问令牌、GitLab管理个人访问令牌和私人令牌。
分支
代码的独立开发线,用于隔离不同功能或版本的开发。
一个项目空间仅支持绑定一个分支。
单击确定。
绑定后,如需切换仓库或分支,需要在项目空间列表里先进行解绑后进行配置。
步骤二:进行拉取或推送操作
推送更改
将实时计算开发控制台上的SQL代码及配置信息提交上传到远程Git仓库,在提交前您可以查看差异。
在
页面,单击推送更改按钮,填写提交信息后,单击提交并推送。
变更文件的右侧会展示本次变更是新增(A)、修改(M)或删除(D),您可以单击对应的字母查看变更。
在Git上查看推送结果文件内容。
推送过来的Git上的文件说明详情如下。
变更类型
说明
Git文件变更图示
新增
一个SQL草稿推送到Git后会有2个同名不同类型文件:
文件名.sql
:sql代码。文件名.json
:SQL草稿的配置信息。包括作业名称、作业草稿ID、流批属性和引擎版本号。
更新
仅更新对应的SQL代码或SQL草稿配置信息。
修改SQL
修改引擎版本
拉取更改
将Git仓库上的SQL信息拉取到实时计算开发控制台。
在
页面,单击同步更改按钮。同步更改按钮右侧提会显示最后一次同步的时间。如果不是最新时间,您可以单击同步更改按钮。
如果Git有更新,会在拉取按钮旁边提示远程有更新。
在
页面,单击拉取更改按钮。【可选】如果系统提示存在冲突,请手动解决冲突,否则可跳过此步骤。
当实时计算开发控制台与远端Git同时修改了同一文件时,可能会发生内容冲突。Flink系统会将没有冲突的文件更新到实时计算开发控制台,并提示您冲突文件的具体信息。此时,您需要单击解决按钮,根据实际情况完成冲突处理。解决完成后,请单击已解决,然后单击继续以完成操作。
重要在解决冲突前,由于Flink平台不支持整体回滚,请备份重要数据(如将
example.sql
文件复制到本地),并评估操作影响,谨慎处理以避免误操作引发不可逆后果。单击解决后,进入冲突处理页面。您可以根据实际业务需求,逐个选择接受相应的修改内容。
按钮
含义
Accept Current Change
接受当前更改。
Accept Incoming Change
接受传入更改。
Accept Both Change
接受双方变更。
查看与修改拉取的SQL文件。
当页面上方提示成功拉取远程仓库更新后,ETL草稿页面会自动刷新,展示拉取到的SQL草稿。
拉取完成后,SQL草稿页面会提示当前作业已被Git锁定。您需要点击解锁,方可对作业进行修改或删除。
相关文档
Git常见操作(克隆仓库、提交代码、创建Pull Request等),详情请参见Using GitHub、Use GitLab或Using Gitee或Use GitLab。
Git使用CI/CD构建应用程序详情,请参见GitLab CI/CD快速入门、GitHub Actions快速入门或Gitee CI/CD流水线。