Flink控制台支援與遠程Git倉庫(如GitHub、GitLab或Gitee)整合。您可以通過Realtime Compute開發控制台推送作業草稿和檔案夾到遠端Git倉庫,或從遠端拉取代碼進行作業開發與部署。該功能適用於業務上雲、協同開發、代碼管理、品質保障、風險控制、災備及合規管理等多情境。本文將詳細介紹如何在Realtime Compute開發控制台上整合Git,並完成代碼的拉取與推送操作。
使用情境
類別 | 使用情境 | 操作建議 |
遷移上雲 | 將本地Flink SQL代碼通過Git直接推送到雲端叢集(如阿里雲Realtime ComputeFlink版),減少手動匯出及匯入配置的繁瑣操作。 |
|
協同開發與代碼管理 |
|
|
品質保障與風險控制 |
|
|
災備與合規管理 |
|
|
前提條件
已建立Flink工作空間,詳情請參見開通Realtime ComputeFlink版。
已建立Git倉庫(GitHub、GitLab、Gitee或雲效以及其他Git協議代碼倉庫等)或擁有遠程Git倉庫的存取權限。
如果Git倉庫啟用了IP白名單,請確保已將Flink工作空間的網路地址添加到Git倉庫的允許清單中。
在進行代碼倉庫綁定前,請確保開啟NAT Gateway實現Realtime ComputeFlink工作空間VPC網路和公網的連通。
注意事項
作業類型:目前僅SQL作業支援與Git對接。
綁定限制:
僅專案空間管理員(Owner)或擁有同等許可權的成員,可以配置和編輯Flink專案空間中綁定的Git倉庫資訊。
每個專案空間僅支援綁定一個代碼倉庫和一個分支。若需要管理多個Git倉庫或同一個Git倉庫的多個分支,可通過建立不同專案空間來實現多分支的管理。專案空間建立方法詳情,請參見管理專案空間。
檔案夾層級:僅支援拉取七層以內的SQL檔案夾。如果Git中SQL檔案所在層級超過七層,則無法被拉取到Realtime Compute開發控制台中。
請勿在Git系統與Realtime Compute開發控制台中並行編輯同一個檔案。若發生雙方同時修改相同檔案的情況,在Realtime Compute開發控制台執行推送或拉取時,將觸發衝突檢查,此時需要您手動解決衝突。Flink平台衝突處理機制如下。
操作類型
衝突處理機制
拉取操作
系統會自動將無衝突的更新應用到SQL草稿中,同時提示具體衝突檔案。您需手動解決衝突後方可繼續操作。
推送操作
單擊推送更改,系統會提示您遠程倉庫存在更新,請拉取更新後再試。
在拉取過程中,若發現衝突,需要您手動解決衝突後完成拉取。
衝突解決後,再次推送。
重要在手動解決衝突前,由於Flink平台不支援整體復原,請備份重要資料(如將
example.sql檔案複製到本地),並評估操作影響,謹慎處理以避免誤操作引發無法復原後果。當在Git上僅對JSON檔案(包含SQL草稿的配置資訊)進行操作時,Realtime Compute開發控制台的拉取行為將遵循以下規則:
新增或刪除JSON檔案:Realtime Compute開發控制台不會同步增加或刪除對應的SQL草稿。
修改JSON檔案:Realtime Compute開發控制台會同步更新同名SQL草稿的配置資訊。
步驟一:專案空間配置Git倉庫
(可選)網路連通性檢測。
對於GitHub或GitLab倉庫,您需要開啟NAT Gateway,確保Git倉庫和Flink工作空間之間的網路連通性,否則可能會因網路問題導致無法成功綁定Flink專案空間。網路連接詳情請參見網路連接選型和如何進行網路探測?
進入Realtime Compute開發控制台。
單擊目標工作空間操作列下的控制台。
專案空間配置Git倉庫。
單擊頁面右上方的帳戶圖片後,單擊使用者資訊,進入專案空間列表頁面。

單擊目標專案空間操作列下的Git倉庫配置。

填寫Git配置資訊。

配置項
說明
倉庫類型
支援GitHub、GitLab和Gitee。
倉庫URL
完整的倉庫地址,以HTTP或HTTPS開頭且以
.git結尾,且不得超過64個字元。使用者名稱
Git平台的帳號使用者名稱,需要對目標倉庫有許可權。
Personal Access Token
存取權杖,用於身分識別驗證。
獲得Github Token資訊詳情請參見GiHub管理個人存取權杖或GitLab管理個人存取權杖
分支
代碼的獨立開發線,用於隔離不同功能或版本的開發。
一個專案空間僅支援綁定一個分支。
單擊確定。
綁定後,如需切換倉庫或分支,需要在專案空間列表裡先進行解除綁定後進行配置。

步驟二:進行拉取或推送操作
推送更改
將Realtime Compute開發控制台上的SQL代碼及配置資訊提交上傳到遠程Git倉庫,在提交前您可以查看差異。
在頁面,單擊推送更改按鈕,

填寫提交資訊後,單擊提交並推送。
變更檔案的右側會展示本次變更是新增(A)、修改(M)或刪除(D),您可以單擊對應的字母查看變更。

在Git上查看推送結果檔案內容。

推送過來的Git上的檔案說明詳情如下。
變更類型
說明
Git檔案變更圖示
新增
一個SQL草稿推送到Git後會有2個同名不同類型檔案:
檔案名稱.sql:sql代碼。檔案名稱.json:SQL草稿的配置資訊。包括作業名稱、作業草稿ID、流批屬性和引擎版本號碼。

更新
僅更新對應的SQL代碼或SQL草稿配置資訊。
修改SQL

修改引擎版本

拉取更改
將Git倉庫上的SQL資訊拉取到Realtime Compute開發控制台。
在頁面,單擊同步更改按鈕。
同步更改按鈕右側提會顯示最後一次同步的時間。如果不是最新時間,您可以單擊同步更改按鈕。

如果Git有更新,會在拉取按鈕旁邊提示遠程有更新。

在頁面,單擊拉取更改按鈕。
【可選】如果系統提示存在衝突,請手動解決衝突,否則可跳過此步驟。
當Realtime Compute開發控制台與遠端Git同時修改了同一檔案時,可能會發生內容衝突。Flink系統會將沒有衝突的檔案更新到Realtime Compute開發控制台,並提示您衝突檔案的具體資訊。此時,您需要單擊解決按鈕,根據實際情況完成衝突處理。解決完成後,請單擊已解決,然後單擊繼續以完成操作。
重要在解決衝突前,由於Flink平台不支援整體復原,請備份重要資料(如將
example.sql檔案複製到本地),並評估操作影響,謹慎處理以避免誤操作引發無法復原後果。
單擊解決後,進入衝突處理頁面。您可以根據實際業務需求,逐個選擇接受相應的修改內容。

按鈕
含義
Accept Current Change
接受當前更改。
Accept Incoming Change
接受傳入更改。
Accept Both Change
接受雙方變更。
查看與修改拉取的SQL檔案。
當頁面上方提示成功拉取遠程倉庫更新後,ETL草稿頁面會自動重新整理,展示拉取到的SQL草稿。
拉取完成後,SQL草稿頁面會提示當前作業已被Git鎖定。您需要點擊解鎖,方可對作業進行修改或刪除。

相關文檔
Git常見操作(複製倉庫、提交代碼、建立Pull Request等),詳情請參見Using GitHub或Use GitLab。
Git使用CI/CD構建應用程式詳情,請參見GitLab CI/CD快速入門或GitHub Actions快速入門。
