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

by 宮本航太 | February 10, 2021

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

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

backlog とは?

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

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

CData Sync とは?

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

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

本記事のシナリオ

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

手順

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

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

です。

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

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

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

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

https://jp.cdata.com/blog/2019-12-02-160226

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

www.cdatablog.jp

Backlog コネクタをCData Sync に追加

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

Backlog と入力するとアイコンが表示されますのでクリックします。

ダウンロード&インストールをクリックします。

その後再起動を行います。

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

URL とAPIkeyを入力し、Advanced タブをクリックします。

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

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

ここにセットします。

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

これで Backlog の接続情報が作成できました。

BigQuery の接続情報を作成

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

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

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

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

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

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

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

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

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

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

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

作成したジョブを実行

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

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

定期ジョブとして登録

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

おわりに

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