すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Git 統合

最終更新日:Nov 09, 2025

Flink コンソールは、GitHub、GitLab、Gitee などのリモート Git リポジトリとの統合をサポートしています。Realtime Compute for Apache Flink 開発コンソールを使用して、ジョブドラフトとフォルダをリモート Git リポジトリにプッシュしたり、リモートリポジトリからコードをプルしてジョブを開発およびデプロイしたりできます。この機能は、クラウド移行、共同開発、コード管理、品質保証、リスクガバナンス、ディザスタリカバリ、コンプライアンス管理など、さまざまなシナリオをサポートします。このトピックでは、Git を開発コンソールと統合する方法、およびコードをプルおよびプッシュする方法について説明します。

シナリオ

カテゴリ

シナリオ

推奨される操作

クラウド移行

Git を使用して、ローカルの Flink SQL コードを Alibaba Cloud Realtime Compute for Apache Flink などのクラウドクラスターに直接プッシュします。これにより、構成を手動でエクスポートおよびインポートする面倒な作業が不要になります。

  • 開発コンソールで一度コードをプルすると、その後のすべてのコード開発をコンソールで直接実行できます。

  • クラウドに移行した後は、プル操作のみを実行します。Git 内のファイルは変更されません。

共同開発とコード管理

  • チームコラボレーションと共有: チームメンバーは Git リポジトリを介してジョブドラフトとコードを共有し、一貫した開発ベースラインを確保できます。Git を使用して変更履歴を記録できます。

  • ブランチ管理と機能の反復: Git ブランチに基づいて feature/xxx などの独立した開発ブランチを作成し、並行開発とバグ修正をサポートできます。テスト後、ブランチをメインブランチにマージできます。

  • すべての SQL 変更を Git 経由で送信します。開発コンソールは、プルと認証にのみ使用します。

  • Git ブランチを使用して機能の反復を管理し、メインブランチの安定性を確保します。

品質保証とリスクガバナンス

  • コードレビューと検証: マージする前に Git プルリクエスト (PR) を介してコードレビューを開始できます。レビュー担当者は、開発コンソールでブランチを直接プルして、機能の正当性をテストおよび検証できます。

  • 履歴の追跡と問題の特定: Git コミットレコードを使用して Flink ジョブの変更を追跡し、問題の根本原因を迅速に見つけることができます。

  • すべての SQL 変更を Git 経由で送信します。開発コンソールは、プルと認証にのみ使用します。

  • Git コミットレコードを定期的にチェックして、変更が追跡可能であることを確認します。

ディザスタリカバリとコンプライアンス管理

  • ディザスタリカバリとバックアップ: Git は、分散バックアップを提供するリモートリポジトリとして機能します。これにより、開発コンソールでのファイルの偶発的な削除によって引き起こされる可能性のあるビジネスの中断を防ぎます。

  • 監査とコンプライアンス: Git ログを使用して、機密データ処理ルールの変更など、誰がいつジョブログを修正したかを記録できます。これは、コンプライアンス監査要件を満たすのに役立ちます。

  • すべての SQL 変更を定期的に Git にプッシュします。例外が発生した場合は、リポジトリから迅速に回復できます。

  • Git ログを使用してすべての主要な操作を記録し、監査要件への準拠を確保します。

前提条件

  • Flink ワークスペースが作成されていること。詳細については、「Realtime Compute for Apache Flink のアクティブ化」をご参照ください。

  • Git リポジトリ (GitHub、GitLab、Gitee、Apsara DevOps など) が作成されているか、リモート Git リポジトリへのアクセス権限があること。

  • Git リポジトリが IP ホワイトリストを使用している場合は、Flink ワークスペースのネットワークアドレスをホワイトリストに追加します。

  • コードリポジトリをアタッチする前に、NAT Gateway を有効にして、Flink ワークスペース VPC とインターネット間のネットワーク接続を確立します。

注意

  • ジョブタイプ: 現在、SQL ジョブのみが Git 統合をサポートしています。

  • バインディングの制限:

    • プロジェクト管理者 (オーナー) または同等の権限を持つメンバーのみが、Flink プロジェクトにアタッチされた Git リポジトリ情報を構成および編集できます。

    • 各プロジェクトは、1 つのコードリポジトリと 1 つのブランチにのみアタッチできます。複数の Git リポジトリまたは同じリポジトリの複数のブランチを管理するには、ブランチごとに個別のプロジェクトを作成する必要があります。プロジェクトの作成方法の詳細については、「プロジェクトの管理」をご参照ください。

  • フォルダレベル: 最大 7 階層までネストされた SQL フォルダをプルできます。Git 内の SQL ファイルが 7 階層より深い場合、開発コンソールにプルすることはできません。

  • Git システムと開発コンソールで同じファイルを同時に編集しないでください。同じファイルが両方で変更された場合、開発コンソールで変更をプッシュまたはプルすると競合チェックがトリガーされます。その後、手動で競合を解決する必要があります。Flink プラットフォームは、次のように競合を処理します。

    操作タイプ

    競合解決メカニズム

    プル操作

    システムは、競合しない更新を SQL ドラフトに自動的に適用し、競合する特定のファイルを通知します。続行する前に、競合を手動で解決する必要があります。

    プッシュ操作

    1. [変更をプッシュ] をクリックします。システムはメッセージ [リモートリポジトリに更新があります。更新をプルしてから再試行してください] を表示します。

    2. プルプロセス中に競合が見つかった場合は、手動で解決してプルを完了する必要があります。

    3. 競合が解決された後、変更を再度プッシュします。

    重要

    競合を手動で解決する前に、重要なデータをバックアップしてください。たとえば、example.sql ファイルをローカルマシンにコピーできます。Flink プラットフォームは完全なロールバックをサポートしていません。操作の影響を評価し、誤った操作による元に戻せない結果を避けるために、注意して進めてください。

  • Git で SQL ドラフトの構成情報を含む JSON ファイルのみを操作する場合、開発コンソールでのプル動作は次のルールに従います。

    • JSON ファイルの追加または削除: 開発コンソールは、対応する SQL ドラフトを追加または削除して変更を同期しません。

    • JSON ファイルの変更: 開発コンソールは、同じ名前の SQL ドラフトの構成情報を更新して変更を同期します。

ステップ 1: プロジェクトの Git リポジトリを構成する

  1. (オプション) ネットワーク接続を確認します。

    GitHub または GitLab リポジトリの場合、NAT Gateway を有効にして、Git リポジトリと Flink ワークスペース間のネットワーク接続を確保する必要があります。そうしないと、ネットワークの問題で Flink プロジェクトをアタッチできない場合があります。ネットワーク接続の詳細については、「ネットワーク接続方法の選択」および「接続テストを実行する方法」をご参照ください。

  2. Realtime Compute for Apache Flink 開発コンソールに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. ターゲットワークスペースの [アクション] 列で、[コンソール] をクリックします。

  3. プロジェクトの Git リポジトリを構成します。

    1. ページの右上隅で、プロフィール写真をクリックし、[ユーザー情報] をクリックしてプロジェクトリストページに移動します。

      image

    2. ターゲットプロジェクトの [アクション] 列で、[Git リポジトリ構成] をクリックします。

      image

    3. Git 構成情報を入力します。

      image

      構成項目

      説明

      リポジトリタイプ

      GitHub、GitLab、Gitee がサポートされています。

      リポジトリ URL

      完全なリポジトリのアドレス。HTTP または HTTPS で始まり、.git で終わり、64 文字以内である必要があります。

      ユーザー名

      Git プラットフォームのアカウントのユーザー名。ユーザーはターゲットリポジトリに対する権限を持っている必要があります。

      パーソナルアクセストークン

      ID 検証に使用されるアクセストークン。

      トークンの取得方法の詳細については、「パーソナルアクセストークンの管理 (GitHub)」または「パーソナルアクセストークン (GitLab)」をご参照ください

      ブランチ

      コードの独立した開発ライン。ブランチを使用して、さまざまな機能やバージョンの開発を分離します。

      プロジェクトは 1 つのブランチにのみアタッチできます。

    4. [OK] をクリックします。

      リポジトリをアタッチした後、新しいリポジトリまたはブランチに切り替えるには、まずプロジェクトリストからデタッチする必要があります。

      image

ステップ 2: 変更をプルまたはプッシュする

変更をプッシュする

開発コンソールからリモート Git リポジトリに SQL コードと構成情報をプッシュします。プッシュする前に差分を表示できます。

  1. [データ開発] > [ETL] ページで、[変更をプッシュ] をクリックします。

    image

  2. [コミットメッセージ] を入力し、[コミットしてプッシュ] をクリックします。

    変更の種類は、変更されたファイルの右側に表示されます: 追加 (A)、変更 (M)、または削除 (D)。対応する文字をクリックして変更を表示できます。

    image

  3. Git でプッシュされたファイルの内容を表示します。

    image

    次の表に、Git にプッシュされたファイルを示します。

    変更タイプ

    説明

    Git ファイル変更の例

    追加

    SQL ドラフトを Git にプッシュすると、同じ名前で異なるタイプの 2 つのファイルが作成されます:

    • filename.sql: SQL コード。

    • filename.json: SQL ドラフトの構成情報。これには、ジョブ名、ジョブドラフト ID、ストリームまたはバッチプロパティ、および DPI エンジンバージョン番号が含まれます。

    image

    更新

    対応する SQL コードまたは SQL ドラフト構成情報のみが更新されます。

    • SQL の変更

      image

    • DPI エンジンバージョンの変更

      image

変更をプルする

Git リポジトリから開発コンソールに SQL 情報をプルします。

  1. [データ開発] > [ETL] ページで、[変更を同期] をクリックします。

    最後の同期の時刻が [変更を同期] ボタンの右側に表示されます。時刻が最新でない場合は、[変更を同期] をクリックします。

    image

    Git に更新がある場合、プルボタンの横に [リモートに更新があります] メッセージが表示されます。image

  2. [データ開発] > [ETL] ページで、[変更をプル] をクリックします。

    • 競合するファイルがない場合は、ステップ 4 に進んでプルされたファイルを表示できます。

    • 競合するファイルがある場合は、まず ステップ 3 の指示に従って競合を解決する必要があります。

      image

  3. (オプション) システムが競合の存在を通知した場合は、手動で競合を解決します。それ以外の場合は、このステップをスキップします。

    開発コンソールとリモート Git リポジトリの両方で同じファイルが変更された場合、コンテンツの競合が発生します。Flink システムは、競合していないファイルで開発コンソールを更新し、競合しているファイルに関する情報を通知します。競合を解決するには、[解決] をクリックし、必要に応じて競合を処理します。競合を解決した後、[解決済み] をクリックし、次に [続行] をクリックして操作を完了します。

    重要

    競合を解決する前に、重要なデータをバックアップしてください。たとえば、example.sql ファイルをローカルマシンにコピーできます。Flink プラットフォームは完全なロールバックをサポートしていません。操作の影響を評価し、誤った操作による元に戻せない結果を避けるために、注意して進めてください。

    image

    [解決] をクリックすると、競合解決ページが表示されます。ビジネスニーズに基づいて、適切な変更を 1 つずつ承認できます。

    image

    ボタン

    意味

    現在の変更を承認

    現在の変更を承認します。

    受信した変更を承認

    受信した変更を承認します。

    両方の変更を承認

    両方の変更を承認します。

  4. プルされた SQL ファイルを表示および変更します。

    ページの先頭にメッセージ [リモートリポジトリから更新を正常にプルしました] が表示されると、[ETL] ドラフトページが自動的に更新され、プルされた SQL ドラフトが表示されます。

    プルが完了すると、SQL ドラフトページに現在のジョブが Git によってロックされていることが示されます。ジョブを変更または削除する前に、[クリックしてロック解除] する必要があります。

    image

参考資料