カスタムフローのバージョン管理¶
Openflowは、GitHubレジストリクライアントを含むレジストリクライアントをサポートしています。レジストリクライアントを使用すると、Gitリポジトリを使用してカスタムフロー定義を保存し、バージョン管理することができます。これにより、分岐、プルリクエスト、コードレビュー、環境昇格などの標準的なソフトウェア開発ライフサイクル(SDLC)プラクティスが実施可能になります。
一般的なワークフローは次のとおりです。
本番フローの定義を表す``main``ブランチを維持します。
新しい開発のための機能ブランチを作成します。
Openflowキャンバスで変更を開発し、コミットします。
プルリクエストを開き、Flow Diffで確認して、マージします。
前提条件¶
フロー定義を保存するためのGitHubリポジトリ。
``repository``へのアクセス権が設定されているGitHub個人用アクセストークン。
OpenflowキャンバスにアクセスできるOpenflowランタイム。
ランタイム統合オブジェクトに対する適切なSnowflakeロール権限。
ステップ1:GitHubレジストリクライアントを作成する¶
ステップ2:新しいフローを作成してバージョン管理する¶
Openflowキャンバスで、フロー用の新しいプロセスグループを作成します。
フローを構築: プロセッサーを追加し、接続を構成して、データパイプラインを設定します。
プロセスグループを右クリックして、:ui:`Start Version Control`を選択します。
:ref:`ステップ1 <label-openflow_git_create_registry_client>`で構成したGitHubレジストリクライアントを選択します。
フロー名と初期コミットメッセージを入力します。
保存すると、フロー定義がGitHubリポジトリにコミットされます。GitHubのリポジトリをチェックすることで確認できます。
ステップ3:ブランチを使用して変更を管理する¶
開発ブランチを作成する¶
GitHubリポジトリで、新しいブランチ(例: ``dev``または``feature/add-new-table``のような機能ブランチ)を作成します。
ブランチでインポートして開発する¶
Openflowキャンバスで、ツールバーからキャンバスに:ui:`Import from Registry`アイコンをドラッグすることにより、GitHubレジストリから新しいプロセスグループにフローをインポートします。
インポートする際に、作業対象のターゲットブランチ(例:
dev)を選択します。プロセスグループ内のフローに変更を加えます。
Openflowで変更をコミットします。これにより、更新されたフロー定義がGitHubで選択されたブランチにプッシュされます。
プルリクエスト経由でレビューしてマージする¶
ステップ4:Snowflake Flow Diffを設定する(GitHubアクション)¶
Snowflake Flow Diffは、プルリクエストの会話でパイプラインの変更の視覚的な差異を直接レンダリングすることで、フローの変更内容を人間が判読できるようにするGitHubアクションです。
ワークフローファイルを設定する¶
GitHubリポジトリでファイル:file:`.github/workflows/flowdiff.yml`を作成します。
`Snowflake Flow Diffリポジトリ<https://github.com/Snowflake-Labs/snowflake-flow-diff>`_からワークフロー構成をコピーする(READMEの使用法セクションを参照)。
ワークフローファイルをコミットしてプッシュする。
フロー変更を確認する¶
プルリクエストを開くと、フローの差異アクションが自動的に実行されます。
プルリクエストの:ui:`Conversations`タブに移動して、Flow Diffによる分析内容が表示されるのを待ちます。
分析結果は、未加工のJSON差異ではなく、フローの変更内容の視覚的かつ人間が判読可能な比較を示します。
環境全体でパラメーターを管理する¶
Openflowはパラメーターを使用して、異なるランタイム間で環境固有の値(接続文字列、認証情報、テーブル名など)を管理します。
次の概念を念頭に置いてください。
パラメーターは、プロセスグループと1対1でマッピングされているパラメーターコンテキストにグループ化されます。
パラメーターコンテキストの継承により、親コンテキストで共有パラメーターを定義し、子コンテキストで特定の値をオーバーライドできます。これは、開発、ステージング、本番環境全体でフローを昇格させる際に有効です。
パラメーターコンテキストはシークレットマネージャーと統合して、機密性の高い認証情報をフロー定義に保存することなく安全に処理できます。
推奨されるSDLCワークフロー¶
開発環境:開発者は、機能ブランチを作成し、フローを構築または変更して、機能ブランチに対してOpenflowキャンバスで変更をコミットします。
コードレビュー:GitHubでプルリクエストを開きます。Snowflake Flow Diffを使用して判読しやすいレビューを生成します。
メインにマージ:承認後、プルリクエストを``main``ブランチにマージします。
本番環境に昇格:本番環境ランタイムで、プロセスグループを更新し、``main``から最新バージョンをプルします。
パラメーター化:パラメーターコンテキストを使用して、フロー定義自体を変更することなく、環境固有の構成を処理します。