JIRAのデータをBigQueryに自動同期し、Googleデータポータル(旧Data Studio)で可視化する

## 概要
業務分析する際に、予定工数、実績工数、進捗状況などの分析が非常に重要です。
しかしそのような分析を行うには、お使いのタスク管理ツールのデータを抽出し、分析環境に統合する必要があります。
多くの場合、分析基盤へのデータ統合が手間のかかる作業となっていますが、この記事では出来るだけ省エネで分析の前処理を実現する方法を書いていきます。
今回はJIRAのデータをBigQueryに[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)を使ってデータを統合し、Googleデータポータル(旧Data Studio)で可視化するまでを行ってみます。

[troccoの使い方まとめ（CRM・広告・データベース他）]
(https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)

![jira-to-bq.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/f530e61d-8765-5212-ec2b-d347d0f66c76.png)
## ゴール
このようなJIRAのデータから
![goal-1_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/ebff1ebe-bbb3-c791-5846-a78b78b49447.jpeg)

こんなのを30分くらいで作り上げます（当然、作ったあとは自動で最新値が更新されるようにします）
![goal-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/4c45177f-f8a2-8575-e382-0087707196fa.jpeg)
## こんな人におすすめ
- JIRAのデータを分析基盤・DWHに取り込みたい方
- 分析基盤・DWHにJIRAのデータを毎回CSVエクスポートし取り込んでおり、時間の浪費に悩んでいる方 
- 様々なデータ取得の作業に疲れている方

## 1. DWHと同期する手段の選定
### 1-1. DHWの選定
まずはデータをどこに集約するか、DHW（データウェアハウス）を選定します。

- `Google BigQuery`
- `Amazon Redshift`
- `MySQL`
- `PostgreSQL` など

今回は`Google BigQuery`を利用することにします。
### 1-2. JIRAのデータをBigQueryに転送する4つの方法
BigQueryにデータを集約することが決まったので、次は転送するための手段を検討していきます。

**1.** JIRAのデータをCSV形式でエクスポートし、手動でBigQueryにアップロードする。
**2.** JIRAとBigQueryの各APIを、プログラムを書いて連携する。
**3.** Embulkを利用し、自分で環境を構築する
**4.** [trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)を利用し、画面上で設定する。

**1.** は単発の実行であればよいのですが、定期的な取り込み用途だと毎回同じ作業を繰り返すことになり、非効率な作業になりがちです。
**2.** はAPIのキャッチアップ工数+プログラムを書く工数+環境構築工数が発生する他、エラー対応などの運用工数も継続的に発生します。
**3.** も2と同じくEmbulkはある程度の専門知識が必要になり、自前で環境構築・運用を行う手間が発生します。加えてエラーの内容が少し専門的です。

そこで今回はEmblukの課題も解決してくれて、プログラムを書かずに画面上の設定で作業が完結する、**4.**の**[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)**というSaaSを利用します。
## 2. troccoでJIRA→BigQueryの転送自動化
### 2-0. 事前準備
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)のアカウントおよびJIRAのアカウントが必要です。
[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)も実施しているので、事前に申し込み・登録しておいてください！
（申込時に、この記事を見た旨を記載して頂ければご案内がスムーズです）
### 2-1. 転送元・転送先を決定
[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)にアクセスし、ダッシュボードから「転送設定を作成」ボタンを押します。
![2-1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/93b035b1-5337-58df-c9b8-bc23dac5bd4d.png)

転送元にJIRA、転送先にGoogle BigQueryを選択し、「この内容で作成」ボタンを押します。
![2-1-2_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/36363763-f46e-7442-75f0-2ebf601a058c.png)

すると、設定画面になるので、設定画面から必要な情報を入力していきます。
### 2-2. JIRAとの連携設定
転送設定の名前とメモを入力します。
![2-2-1_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/d4423337-8ac8-9b6c-8f8c-fe3eb82ee2d3.png)

転送設定の名前とメモを入力したら、「転送元の設定」内の「接続情報を追加」ボタンを押し、JIRAの接続情報の設定を行います。
![2-2-2_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/e88c283d-de00-53e5-75a5-197a4c794a84.png)

データを取得したいJIRAの情報を入力し、接続情報を作成します。
![2-2-3_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/4953d881-d0fd-76e2-45a7-f2f6cce151b7.jpeg)
### 2-3. JIRAからのデータ抽出設定
これでJIRAとの連携は完了です。
次に、JIRAの取得データを設定します。
![2-3-1_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/b45d0a86-32eb-39cc-b71b-9526529d3ee5.png)

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

以上でJIRA側の設定は完了です。
次は転送先のBigQueryの設定を行っていきましょう。
### 2-4. 転送先BigQueryの設定
転送元JIRAと同じ要領で設定していきます。
データセットとテーブルは好きな名前を入力していきます。自動生成オプションを有効にすれば、データセット・テーブルが自動作成されます。

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

BigQueryデータセットのロケーションを指定することができます。デフォルトはUSリージョンです。
東京リージョンを指定する場合はasia-northeast1を入力して下さい。
![2-4-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/ed0455f0-36c5-a8aa-55ce-d136b2a238f0.png)

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。
### 2-5. データのプレビュー
転送元のデータがプレビューされます。ここではJIRAから取り込んだデータが表示されています。
問題なければ、「設定を完了する」を押し、スケジュールや通知設定に進みます。
![2-5-1_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/f6cb16f9-4e62-1ee2-3594-cd42ed70522f.jpeg)

### 2-6. スケジュール設定
「スケジュール・トリガー設定」タブを開きます。
![2-6-1_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/51eff660-e577-dbcd-14ad-49d0b6434a3d.png)

以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。
![2-6-2_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/df4509c1-ea8d-8eec-18bd-eb7356f6b851.jpeg)
### 2-7. 通知設定
今回の自動同期には、必須の設定ではないですが、通知タイプ・通知条件・通知先を選択し設定を保存することで、EmailまたはSlackに通知を行うことが出来ます。
![2-7-1_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/76510733-5e09-0382-e1cf-f516f24109d0.jpeg)

また、必要な時のみ実行したい場合は、手動で行うことも出来ます。
その場合は、転送設定詳細画面から「実行」ボタンを押して進めていきます。
![2-7-2_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/033ff3aa-fd07-6705-b259-286c10d3f299.png)

## 3. BigQueryの設定
特に設定することありません。データが溜まっているので、今すぐに分析・可視化を行うことが出来ます。
念の為、データをプレビューして確認してみます。
![3_jira.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/9ac5eb68-db1d-033e-8b9f-e26ae69b76c2.jpeg)
## 4. Googleデータポータル（旧データスタジオ）で可視化
BigQueryの画面から、「エクスポート > データポータル」を選択します。
![4-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/9a263142-5348-c423-7e18-dabf2c25e049.png)

すると、以下のようなData Portalの画面に遷移します。
試しに、予定工数と実績工数の日次推移を可視化してみましょう。
![4-2_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/0d256c8f-cf7e-2626-828b-87cd46adf248.png)

すると、以下のようなグラフが出来上がります。
この画面はデータポータルの「エクスプローラ」という機能になります。
「エクスプローラ」は定期的に閲覧するデータの変化の原因をアドホックに分析する際に使うイメージです。
![4-3_jira.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/8676b724-e0e1-d54b-980f-6aa9e846ba37.png)

データポータルのトップ画面から、「レポート」を作成し、
上述の通りに予定工数と実績工数以外の進捗状況などのグラフ作成を行うと、今回のゴールのJIRAの業務分析用ダッシュボードが出来上がります。
![4-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/59c4751c-f49c-3727-b6ce-88d97d563eca.png)
![goal-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/460354/4c6f23e9-a4a9-0c9d-587f-0f0a0eaaae9b.jpeg)
## まとめ
いかがでしたでしょうか。[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)を使うと管理画面を触ることなく、簡単にJIRAのデータを取得し、DWH(BigQuery)に貯めることが出来ました。
また、BigQueryにデータを貯めると、データポータルというGoogleの無料ダッシュボードですぐに可視化することが出来ます。
実際に弊社サービスの[trocco](https://trocco.io/lp/index.html?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)においても、セールスのデータやマーケティングKPI等をこのような流れで収集・分析しています。

実際に試してみたい場合は、[無料トライアル](https://trocco.io/inquiry_trial/new?utm_medium=social&utm_source=qiita&utm_campaign=jira_to_bigquery)を実施しているので、この機会にぜひ一度お試しください。
（申込時に、この記事を見た旨を記載して頂ければスムーズにご案内できます）

[troccoの使い方まとめ（CRM・広告・データベース他）]
(https://qiita.com/hiro_koba_jp/items/2b2caa040804e402bda7)