CData Software Blog

クラウド連携のCData Software の技術ブログです。

Backlogで管理している課題をBigQueryに連携してみる:CData Sync

こんにちは!CData Software Japanの宮本です!

今回はプロジェクト管理ツールの Backlog で管理している課題を、ELT ツールのCData Sync を使って外部DBにレプリケートする方法をご紹介します。
f:id:sennanvolar44:20210203155153p:plain

backlog とは?

開発からマーケティング、人事・総務まで様々な職種で使われているプロジェクト管理ツールです。プロジェクト全体の進捗から個人の進捗、タスク管理、バグ管理などを一元管理できるようになっています。
https://backlog.com/ja/ f:id:sennanvolar44:20210203151720p:plain

また、他のツールとの連携も行えるようになっていて、Backlog を中心に他ツールとのコラボレーションが可能になっています。
f:id:sennanvolar44:20210203151206p:plain

CData Sync とは?

さまざまな SaaS データをオンプレ、クラウドのデータベースへレプリケートできるWebアプリケーションです。特徴としてはノーコードでジョブを作成して実行することができるところになりますが、SQLSaaS データを取得することができるので柔軟にデータをデータベースに連携することができます。
https://www.cdata.com/jp/ f:id:sennanvolar44:20200501163232p:plain

CData Sync はWindows 上で実行できる.NET エディション、JVM 上で実行できるJava エディション、あとはAmazon AMI でも提供していますので、さまざまな環境で利用することができます。

本記事のシナリオ

本記事では backlog に登録されている課題やコメントを全て外部のDBに定期的にレプリケートしてみます。外部のDB として今回は BigQuery を使用しますが、MySQLOracleSQLServer といった RDB への連携ももちろんOKです。
f:id:sennanvolar44:20210203155153p:plain

手順

本シナリオを実現するのに必要なものは、

  • Backlog のAPIKey
  • BigQuery
  • CData Sync (30日間の無償トライアルあり)

です。

ではCData Sync のインストールから実際に始めていきましょう。

CData Sync製品のインストール&アクティベート

今回はWindows OS上で使える .NET エディションのCData Sync をインストールしていきます。

インストール方法からアクティベートまではこちらをご参照ください。

www.cdatablog.jp

もし、Javaエディションを利用する場合はこちらの記事を参考にインストールしてみてください。

www.cdatablog.jp

Backlog コネクタをCData Sync に追加

コネクタの追加方法は簡単です。CData Sync の画面にて「接続 → データソース → +」でクリックします。
f:id:sennanvolar44:20210203220436p:plain

Backlog と入力するとアイコンが表示されますのでクリックします。
f:id:sennanvolar44:20210203220934p:plain

ダウンロード&インストールをクリックします。
f:id:sennanvolar44:20210203221042p:plain

その後再起動を行います。
f:id:sennanvolar44:20210203221245p:plain

再起動後に接続タブをクリックしますと Backlog アイコンが追加されていますので、アイコンをクリックします。
f:id:sennanvolar44:20210203221511p:plain

URL とAPIkeyを入力し、Advanced タブをクリックします。
f:id:sennanvolar44:20210203221726p:plain

※APIKey取得方法はこちらをご参照ください。
www.cdatablog.jp

ここではプロジェクトIDを設定します。
プロジェクトIDは Backlog のプロジェクト設定画面の URL に表示されています。 f:id:sennanvolar44:20210203222039p:plain

ここにセットします。
f:id:sennanvolar44:20210203222253p:plain

設定タブをクリックし、接続のテストボタンをクリックします。接続に成功しましたら右上の変更を保存ボタンをクリックします。
f:id:sennanvolar44:20210203222434p:plain

これで Backlog の接続情報が作成できました。
f:id:sennanvolar44:20210203223423p:plain

BigQuery の接続情報を作成

同じように設定していきますが、今度は同期タブをクリックしてから BigQueryのアイコンをクリックします。
f:id:sennanvolar44:20210203223744p:plain

プロジェクトIDやデータセットIDを設定しましたら、接続ボタンをクリックします。
f:id:sennanvolar44:20210203224153p:plain

対象のGCPアカウントを選択して接続の許可を行い接続自体が成功しましたら、変更を保存ボタンをクリックして保存します。
f:id:sennanvolar44:20210203224332p:plain

これでBigQueryの接続情報の作成が完了です。

BacklogからBigQueryへの連携ジョブを作成

それではジョブを作成していきます。まずはヘッダーにあるジョブボタンをクリックし作成画面に遷移します。
ジョブを追加ボタンをクリック後、任意のジョブ名を作成、ソースにBacklog、同期先にBigQueryを選択しましたら作成ボタンをクリックします。
f:id:sennanvolar44:20210203224828p:plain

テーブルを追加ボタンをクリックすると、Backlog が公開しているエンドポイントをもとにテーブル名にモデリングして表示していますので、今回は課題のIssues とコメントのIssueCommments にチェックを入れてテーブルを追加ボタンをクリックします。
f:id:sennanvolar44:20210203225226p:plain

モーダルから戻るとこのように自動的にクエリがセットされます。
f:id:sennanvolar44:20210203225435p:plain

ちなみに Issues テーブルは条件なしでそのまま全件取得できるのですが、 IssueComments はIssues のIDと紐づいており、必ず指定する必要があります。
その場合は以下のようなサブクエリで課題のIDを全件指定する方法で全件取得可能です。

REPLICATE [IssueComments] SELECT * FROM [IssueComments] where IssueId IN (select Id from Issues)

これを自動生成されたクエリの編集(クエリをクリック)で設定してあげると、このように設定されます。
f:id:sennanvolar44:20210203230301p:plain

作成したジョブを実行

左側のチェックボックスにチェックを入れて、実行ボタンをクリックすることでアドホックにレプリケートジョブを実行することができます。
成功するとこのように緑色の帯でメッセージが表示され、右側に処理した件数が表示されます。
f:id:sennanvolar44:20210203230726p:plain

BigQuery コンソールをみると、ちゃんとテーブルが作成されレコード自体も正しく入っているようです。 f:id:sennanvolar44:20210203232149p:plain

定期ジョブとして登録

スケジュールタブよりこのように実行スケジュールを設定することができます。このキャプチャでは毎週金曜の23時に実行するよう設定しています。
f:id:sennanvolar44:20210203232408p:plain

おわりに

いかがでしたでしょうか。Backlog のIssues と IssueComments をBigQueryにレプリケートを行ってみましたが、他のテーブル、他のデータベースでもご利用可能です。
今回ご紹介した CData Sync は30日間の無償利用が可能です。是非お試しください!
www.cdata.com