カスタムフローのバージョン管理

Openflowは、GitHubレジストリクライアントを含むレジストリクライアントをサポートしています。レジストリクライアントを使用すると、Gitリポジトリを使用してカスタムフロー定義を保存し、バージョン管理することができます。これにより、分岐、プルリクエスト、コードレビュー、環境昇格などの標準的なソフトウェア開発ライフサイクル(SDLC)プラクティスが実施可能になります。

一般的なワークフローは次のとおりです。

  • 本番フローの定義を表す``main``ブランチを維持します。

  • 新しい開発のための機能ブランチを作成します。

  • Openflowキャンバスで変更を開発し、コミットします。

  • プルリクエストを開き、Flow Diffで確認して、マージします。

前提条件

  • フロー定義を保存するためのGitHubリポジトリ。

  • ``repository``へのアクセス権が設定されているGitHub個人用アクセストークン。

  • OpenflowキャンバスにアクセスできるOpenflowランタイム。

  • ランタイム統合オブジェクトに対する適切なSnowflakeロール権限。

ステップ1:GitHubレジストリクライアントを作成する

  1. GitHubでフロー定義を保存するためのリポジトリを作成します。

  2. GitHubでリポジトリへのアクセス許可を付与されている個人用アクセストークン(PAT)を生成します。

  3. Openflowキャンバスで、:ui:`Controller Settings`に移動して、新しいレジストリクライアントを作成します。

  4. タイプとして:ui:`GitHub Registry Client`を選択します。

  5. 次の対象を使用してレジストリクライアントを構成します。

    • ご自身のGitHubリポジトリURL。

    • GitHubリポジトリ所有者。

    • 認証用の個人アクセストークン。

ステップ2:新しいフローを作成してバージョン管理する

  1. Openflowキャンバスで、フロー用の新しいプロセスグループを作成します。

  2. フローを構築: プロセッサーを追加し、接続を構成して、データパイプラインを設定します。

  3. プロセスグループを右クリックして、:ui:`Start Version Control`を選択します。

  4. :ref:`ステップ1 <label-openflow_git_create_registry_client>`で構成したGitHubレジストリクライアントを選択します。

  5. フロー名と初期コミットメッセージを入力します。

保存すると、フロー定義がGitHubリポジトリにコミットされます。GitHubのリポジトリをチェックすることで確認できます。

ステップ3:ブランチを使用して変更を管理する

開発ブランチを作成する

GitHubリポジトリで、新しいブランチ(例: ``dev``または``feature/add-new-table``のような機能ブランチ)を作成します。

ブランチでインポートして開発する

  1. Openflowキャンバスで、ツールバーからキャンバスに:ui:`Import from Registry`アイコンをドラッグすることにより、GitHubレジストリから新しいプロセスグループにフローをインポートします。

  2. インポートする際に、作業対象のターゲットブランチ(例: dev)を選択します。

  3. プロセスグループ内のフローに変更を加えます。

  4. Openflowで変更をコミットします。これにより、更新されたフロー定義がGitHubで選択されたブランチにプッシュされます。

プルリクエスト経由でレビューしてマージする

  1. GitHubで、開発ブランチから``main``へのプルリクエストを開きます。

  2. 変更を確認します。Snowflake Flow DiffのGitHubアクション(:ref:`ステップ4 <label-openflow_git_flow_diff>`を参照)を使用して人間が判読できる差異を生成します。

  3. 承認されたら、プルリクエストをマージします。

  4. Openflowキャンバスに戻り、``main``プロセスグループを更新して、``main``ブランチから最新バージョンをプルします。

ステップ4:Snowflake Flow Diffを設定する(GitHubアクション)

Snowflake Flow Diffは、プルリクエストの会話でパイプラインの変更の視覚的な差異を直接レンダリングすることで、フローの変更内容を人間が判読できるようにするGitHubアクションです。

ワークフローファイルを設定する

  1. GitHubリポジトリでファイル:file:`.github/workflows/flowdiff.yml`を作成します。

  2. `Snowflake Flow Diffリポジトリ<https://github.com/Snowflake-Labs/snowflake-flow-diff>`_からワークフロー構成をコピーする(READMEの使用法セクションを参照)。

  3. ワークフローファイルをコミットしてプッシュする。

フロー変更を確認する

  1. プルリクエストを開くと、フローの差異アクションが自動的に実行されます。

  2. プルリクエストの:ui:`Conversations`タブに移動して、Flow Diffによる分析内容が表示されるのを待ちます。

  3. 分析結果は、未加工のJSON差異ではなく、フローの変更内容の視覚的かつ人間が判読可能な比較を示します。

環境全体でパラメーターを管理する

Openflowはパラメーターを使用して、異なるランタイム間で環境固有の値(接続文字列、認証情報、テーブル名など)を管理します。

次の概念を念頭に置いてください。

  • パラメーターは、プロセスグループと1対1でマッピングされているパラメーターコンテキストにグループ化されます。

  • パラメーターコンテキストの継承により、親コンテキストで共有パラメーターを定義し、子コンテキストで特定の値をオーバーライドできます。これは、開発、ステージング、本番環境全体でフローを昇格させる際に有効です。

  • パラメーターコンテキストはシークレットマネージャーと統合して、機密性の高い認証情報をフロー定義に保存することなく安全に処理できます。