Snowflake上でのデータ変換処理の開発をGUIベースで行えるCoalesceとGitHub上のリモートリポジトリを連携してみた #SnowflakeDB

2022.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

※本エントリは、Snowflakeをもっと使いこなそう! Advent Calendar 2022の24日目の記事となります。

さがらです。

Snowflake上でのデータ変換処理の開発をGUIベースで行えるCoalesceとGitHub上のリモートリポジトリを連携してみたので、その内容をまとめてみます。

Coalesceとは

Coalesceは、Snowflakeに特化したGUIのデータ変換処理のサービスです。

ちょうど昨日、Coalesceの概要について記した上でQuickStartGuideを試したブログを執筆しておりますので、ぜひこちらも併せてご覧ください!

Git連携機能について

Coalesceには、GitHubなどのリモートGitリポジトリサービスと連携することでバージョン管理が出来る機能があります。

具体的には、Coalesce上で定義されたノード、サブグラフ、ジョブ、などの全ての情報がYAMLファイルに変換され、バージョン管理だけでなく、開発したパイプラインの本番環境へのデプロイなどにも使用可能です。

Git連携機能については、下記のDocに詳細が記されていますので、こちらも併せてご覧ください。

CoalesceとGitHub上のリモートリポジトリを連携してみる

では、下記のDocに沿ってCoalesceとGitHub上のリモートリポジトリを連携してみます!

GitHub上でリモートリポジトリを作成

始めに、GitHub上でCoalsceと連携させるリモートリポジトリを作成しておきます。

作成したあと、以下のHTTPSでのリモートリポジトリへのURLが後でCoalesceと連携する際に必要となります。

GitHubユーザーのAccess Tokenの生成

Coalesceに連携させたいGitHubユーザーのAccess Tokenを生成します。

こちらは下記のGitHub公式Docの手順に沿って対応すればOKです。

Scopesについては、repoに関する全ての権限が付与されていればOKです。

Coalesce上で連携設定

続いて、取得したAccess Tokenを用いて、Coalesce上のユーザーと連携設定を行います。

Coalesceの画面右上の人形のアイコンをクリックし、User Settingsを開きます。

Git Settingsから、以下の情報を入力し、Save and Cloneを押します。これで連携設定は完了です!

  • Repo URL:GitHub上で作成したリモートリポジトリへのURL
  • Git Account:GitHub上のユーザー名
  • Author Name:Coalesce上でGit周りの操作を行う際のユーザー名
  • AUthor Email:Coalesce上でGit周りの操作を行う際のユーザーのアドレス
  • Token:GitHub上で生成したAccess Token

Coalesce上でGit周り操作してみる

では、連携したGitHubのリモートリポジトリを用いて、Coalesce上でブランチを切って開発し、mainブランチにMergeするまでの一連の流れを試してみます。

まず、Coalesce上でGit周りの操作を行うには、Buildの画面の左下のGitのアイコンをクリックします。

昨日のブログで検証した内容がまだCommitされていないため、CommitとPushをしてみます。ちなみに、GUI上で定義したものはすべてYAMLファイルとなり、画面右側にDiffと併せて表示することもできます。

Gitの画面のBranchesタブでは、各ブランチごとにCommitした内容と、新しくブランチを切ることもできます。

試しに、先程Commitした内容からブランチを切ってみます。対象のCommitの行において、New Branchを押してみます。

別のポップアップ画面が出てくるため、Branch Nameに任意の名前を入れて、Branch and Checkoutを押します。

これで、現在のブランチが先程作成したdevelopになりました。

ここで、既存のファイルを少し編集してみます。STG_NATIONにおいて、N_NAME列のLOWER("NATION"."N_NAME")という記述をなくしてみました。

この上でCoalesce上のGitの画面を見てみると、YAML上の定義も変わっていることがDiffのおかげですぐにわかります。

では、この内容をmainブランチにMargeしていきたいと思います。

まず、開発した内容をCommit and Pushします。

続いて、mainブランチにdevelopブランチで開発した内容をマージします。

まずBranchesタブにて、Selected Branchmainブランチを選択し、右のCheck Out Latestを押します。これでCurrent Branchをmainブランチの一番新しいコミットの内容に切り替えます。

続いて、Selected Branchdevelopに切り替えて、先程コミットした内容の行でMergeを押します。

すると、「developブランチの指定したコミット内容を、mainブランチにMergeするよ」という画面に切り替わりますので、Mergeを押します。これで、developブランチで開発した内容を、mainブランチにMergeすることが出来ました!

最後に

Snowflake上でのデータ変換処理の開発をGUIベースで行えるCoalesceとGitHub上のリモートリポジトリを連携して、ブランチを切って開発し、mainブランチにMergeするまでの一連の流れも試してみました。

GUIベースのデータ変換のサービスでGit周りに連携しているというのは非常に珍しいですよね!実際ニーズも多い機能だと思いますので、ありがたいですね。