JIRAとは

ソフトウェア開発の分野では従来のウォーターフォール式の開発(システム全体に渡って要件定義、設計、実装といった各工程を段階的に進めていく手法)に代わってアジャイル式の開発(システムのうち、ある機能にフォーカスして小規模な要件定義、設計、実装をスピーディーに回す手法)が主流になりつつあります。

アジャイル開発では一つのプロジェクト内で小さな開発サイクルが同時並行的に進められるため、プロジェクト内でのタスクを漏らさず管理していくことが重要になってきます。JIRAはそのようなアジャイル開発をサポートするプロジェクト管理ツールです。JIRAの活用により近視眼的な開発ではなく決められたリリース日へ向けてプロジェクトの舵取りを行うことが可能となります。そしてJIRA上でのデータをデータベースにデータ分析基盤を構築し、分析することで、これから発生する予定工数や既に完了した実績の工数、そこからプロジェクト全体の進捗状況の管理を行うなどさらなる活用が可能です。

ですがこのようなデータ分析基盤へのデータの統合作業はその基盤の構築だけでなく、日々のメンテナス、データマネジメントなど依然としてハードルは高いです。

概要

今回はtrocco®というデータ分析基盤構築サービスを利用して簡単にJIRAのデータをGoogle BigQueryへ統合し、Looker Studio(旧:Googleデータポータル)で可視化するまでをやってみます。

なおtrocco®はJIRAへのほか多くの広告サービスやCRM、データベースのデータ統合をサポートしています。

JIRAのデータをGoogle BigQueryへ転送

ゴール

このようなJIRAのデータから

goal-1_jira.jpg

このようなグラフを30分くらいで完成させます。またグラフの完成後はtrocco®の機能を利用して自動でデータの更新が行われるようにします。

goal-2.jpg

こんな人におすすめ

  • JIRAのデータをデータ分析基盤に取り込み、データ分析を行いたい
  • JIRAのデータを日々CSVファイルにエクスポートして分析基盤に取り込む作業はもう面倒
  • データ分析に関係する作業に疲れている

1. DWH・データを同期する手段の決定

1-1. DHWの決定

まずはデータをどこに集約するか、DHW(データウェアハウス)を選定します。

  • Google BigQuery
  • Amazon Redshift
  • MySQL
  • PostgreSQL など

trocco®はいずれのサービスにも対応していますが、今回はGoogle BigQueryを利用することにします。

1-2. JIRAのデータをGoogle BigQueryに転送する4つの方法

Google BigQueryにデータを集約することが決まったので、次は転送するための手段を検討していきます。

1. JIRAのデータをCSV形式でエクスポートし、手動でGoogle BigQueryにアップロード
2. JIRAとGoogle BigQueryのAPIを利用し、自分で環境を構築
3. Embulkを利用し、自分で環境を構築
4. trocco®を利用し、画面上の設定のみで設定する。

1. は単発の実行ならともかく、アジャイル開発のスピード感に合わせて日々取り込み作業をすることを考えるとあまり現実的な手段とはいえないかもしれません。
2. は両サービスのAPIについてのキャッチアップ、自分でプログラムを書く手間、構築した基盤を維持改修していく手間が発生します。
3. も2と同様にEmbulkはについてある程度専門的な知識が必要になり、また自前で環境構築・運用を行う手間が発生します。加えてAPIを用いた連携と比べエラーの内容が少し専門的です。

今回はEmblukの課題も解決してくれて、プログラムを書かずに画面上の設定のみで作業が完結する、4.のtrocco®というを利用します。

2. trocco®でJIRA → Google BigQueryの転送自動化

2-0. 事前準備

データの転送に先立ってtrocco®のアカウントおよびJIRAのアカウントが必要です。
troccoは無料のトライアルも実施しているので、事前に申し込みをしておきましょう。

https://trocco.io/lp/index.html
(申し込みの際にこちらの記事を見たという旨を記載して頂ければその後のご案内がスムーズに行なえます。)

2-1. 転送元・転送先を決定

trocco®にアクセスし、ダッシュボード画面から「転送設定を作成」ボタンを押します。

2-1-1.png

転送元にJIRA、転送先にGoogle BigQueryを選択し、「この内容で作成」ボタンを押します。

2-1-2_jira.png

設定画面になるので、必要な情報を入力していきます。

2-2. JIRAとの連携設定

trocco®には社内のユーザー間でチームを作成し、チームで転送設定を共有するチーム機能があります。チームの他メンバーにも転送設定の内容がわかるよう転送設定の名前とメモを入力しておきます。

2-2-1_jira.png

転送設定の名前とメモを入力したら、「転送元の設定」内の「接続情報を追加」ボタンを押し、JIRAの接続情報の設定を行います。

2-2-2_jira.png

データを取得したいJIRAの情報を入力し、接続情報を作成します。

2-2-3_jira.jpg

2-3. JIRAからのデータ抽出設定

これでJIRAとの連携は完了です。
次にJIRAから取得するデータを設定します。

2-3-1_jira.png

カスタム変数を使うことでジョブ実行時に指定の値を置き換えることもできます。

以上でJIRA側の設定は完了です。
次は転送先のGoogle BigQueryの設定を行っていきましょう。

2-4. 転送先Google BigQueryの設定

転送元JIRAと同じ要領で設定していきます。
データセットとテーブルは好きな名前を入力していきます。自動生成オプションを有効にすれば、データセット・テーブルが自動作成されます。

また、カスタム変数を使うことにより、ジョブ実行時に指定の値に置き換えることができます。

BigQueryデータセットのロケーションを指定することができます。デフォルトはUSリージョンです。
東京リージョンを指定する場合はasia-northeast1を入力して下さい。

2-4-1.png

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

2-5. データのプレビュー

JIRAからどのようにデータが取得されるかプレビューで確認することが出来ます。プレビューに取得したいデータが表示されていなければ再度設定画面に戻り、転送設定をやり直します。

2-5-1_jira.jpg

2-6. スケジュール設定

「スケジュール・トリガー設定」タブを開きます。

2-6-1_jira.png

以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。

2-6-2_jira.jpg

2-7. 通知設定

今回の自動同期には、必須の設定ではないですが、通知タイプ・通知条件・通知先を選択し設定を保存することで、EmailまたはSlackに通知を行うことが出来ます。

2-7-1_jira.jpg

また、必要な時のみ実行したい場合は、手動で行うことも出来ます。
その場合は、転送設定詳細画面から「実行」ボタンを押して進めていきます。

2-7-2_jira.png

3. Google BigQueryの設定

Google BigQuery側で特に設定することはありませんが、Google BigQueryのコンソール画面からプレビューを確認してみるとたしかにデータが転送されています。

3_jira.jpg

4. Looker Studio(旧:Googleデータポータル)で可視化

Google BigQueryの画面から、「エクスポート > データポータル」を選択します。

4-1.png

以下のようなLooker Studioの画面に遷移します。
予定工数と実績工数の日次推移を可視化してみましょう。

4-2_jira.png

以下のようなグラフが出来上がります。
この画面はLooker Studioの「エクスプローラ」という機能になります。
「エクスプローラ」は定期的に閲覧するデータの変化の原因をアドホックに分析する際に使うイメージです。

4-3_jira.png

データポータルのトップ画面から、「レポート」を作成し、同様に予定工数と実績工数以外の進捗状況などのグラフ作成を行うと、ゴールとなるダッシュボードが完成します。

4-4.png
goal-2.jpg

まとめ

いかがでしたでしょうか。trocco®を利用することでJIRAの管理画面を触ることなく、簡単にデータを取得し、DWH(Google BigQuery)に統合、連携するLooker Studio(旧:Googleデータポータル)でデータの可視化ができました。

trocco®では、クレジットカード不要のフリープランをご案内しています。このようなデータのETLにご興味がある方はぜひこの機会に一度お試しください。

hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。