Tableau で DevOps ダッシュボードをデプロイする
データ パイプラインによって、Jira インスタンスからデータをエクスポートして、お気に入りのビジネス インテリジェンス ツールで分析できます。
まず、Tableau で DevOps テンプレートが開発されました。これは、エンジニアリング チームの健全性に関する有用なインサイトを提供します。また、独自のダッシュボードやレポートを作成するための最適な出発点となるはずです。
On this page:
このページでは、サンプルの DevOps テンプレートを Tableau Desktop にデプロイして、データ ソースに接続する方法について説明します。
Tableau 用 DevOps ダッシュボード テンプレートをダウンロードする
テンプレートは、PostgreSQL と Microsoft SQL Server でテストされています。Tableau Desktop 2021.1 以降が必要です。
データ パイプライン CSV をデータベースにインポートする
テンプレートを使用する前に、Jira Data Center のデータ パイプラインによってエクスポートされた CSV ファイルをデータベースにインポートする必要があります。また、ファイルを Tableau に直接インポートできますが、このガイドでは外部データベースを使用することを前提としています。
サンプル DevOps テンプレートでは、データベースに次のテーブルが含まれていることを想定しています。
issues_job<job_id>_<timestamp>.csv
ファイルのデータを含むissues
テーブル。issue_history_job<job_id>_<timestamp>.csv
ファイルのデータを含むissue_history
テーブル。
PostgreSQL の例
データベースで、次のように課題、issue_history、ユーザー テーブルを作成します。
CREATE TABLE issues (
id varchar(50),
instance_url varchar(1000),
"key" varchar(1000),
url varchar(1000),
project_key varchar(1000),
project_name varchar(1000),
project_type varchar(1000),
project_category varchar(1000),
issue_type varchar(1000),
summary varchar(1000),
description varchar(2000),
environment varchar(2000),
creator_id varchar(50),
creator_name varchar(1000),
reporter_id varchar(50),
reporter_name varchar(1000),
assignee_id varchar(50),
assignee_name varchar(1000),
status varchar(1000),
status_category varchar(1000),
priority_sequence varchar(1000),
priority_name varchar(1000),
resolution varchar(1000),
watcher_count varchar(50),
vote_count varchar(50),
created_date timestamp,
resolution_date varchar(50),
updated_date varchar(50),
due_date varchar(50),
estimate varchar(50),
original_estimate varchar(50),
time_spent varchar(50),
parent_id varchar(50),
security_level varchar(1000),
labels varchar(1000),
components varchar(1000),
affected_versions varchar(1000),
fix_versions varchar(100));
CREATE TABLE issue_history (
issue_id varchar(50),
changelog_id varchar(50),
author_id varchar(50),
author_key varchar(1000),
created_date timestamp,
field_type varchar(1000),
field varchar(1000),
"from" varchar(1000),
from_string varchar(1000),
"to" varchar(1000),
to_string varchar(1000),
additional_information varchar(2000));
CREATE TABLE users (
user_id varchar(50),
instance_url varchar(1000),
user_name varchar(1000),
user_fullname varchar(1000),
user_email varchar(1000)
);
適切な CSV ファイルを各テーブルにインポートします。上記のスクリプトと CSV メソッドは、他のデータベースに合わせて調整できます。
PostgreSQL では、いくつかのメソッドを使用できます。推奨されるメソッドについては「CSV ファイルを PostgreSQL テーブルにインポートする」をご確認ください。
テンプレートを起動してデータに接続する
データのインポートが完了したので、Tableau Desktop でテンプレートを起動してデータに接続します。
テンプレートを起動してデータベースに接続するには、次の手順に従います。
- Tableau 用 DevOps ダッシュボード テンプレートをダウンロードします。
- Tableau Desktop 2021.1 以降で、Atlassian DevOps Tableau パッケージ ワークブックを開きます。テンプレートには、いくつかのサンプル データが用意されます。
- [新しいデータ ソース] を選択して、プロンプトに従ってデータベースに接続します。
- [New Custom SQL (新しいカスタム SQL)] プレースホルダをキャンバスにドラッグします。データベースにカスタム SQL オプションがない場合は、以下に示すカスタム SQL を使用してデータベースにビューを作成した後、代わりにそのビューをキャンバスにドラッグします。
次の SQL クエリで接続します。データベースに適したエスケープ文字を使用して、これらの予約語をエスケープする必要があります。
SELECT h.issue_id as h_issue_id ,h.changelog_id as h_changelog_id ,h.author_id as h_author_id ,h.author_key as h_author_key ,h.created_date as h_created_date ,h.field as h_field ,h.field_type as h_field_type ,h.from as h_from ,h.from_string as h_from_string ,h.to as h_to ,h.to_string as h_to_string ,h.additional_information as h_additional_information ,i.id as id ,i.instance_url ,i.key as key ,i.url ,i.project_key ,i.project_name ,i.project_type ,i.project_category ,i.issue_type ,i.summary ,i.description ,i.environment ,i.creator_id ,u1.user_name as creator_name ,i.reporter_id ,u2.user_name as reporter_name ,i.assignee_id ,u3.user_name as assignee_name ,i.status ,i.status_category ,i.priority_sequence ,i.priority_name ,i.resolution ,i.watcher_count ,i.vote_count ,i.created_date as created_date ,i.resolution_date ,i.updated_date ,i.due_date ,i.estimate ,i.original_estimate ,i.time_spent ,i.parent_id ,i.security_level ,i.labels ,i.components ,i.affected_versions ,i.fix_versions FROM issue_history h join issues i on h.issue_id = i.id join users u1 on u1.user_id = i.creator_id join users u2 on u2.user_id = i.reporter_id join users u3 on u3.user_id = i.assignee_id where h.field_type = 'jira' and h.field= 'status'
- 接続が完了したら、ダッシュボードを選択して抽出プロセスを開始します。
- 抽出が作成されたら、任意のシートに移動して [データ] > [データソースを置換] の順に選択します。
- 新しいデータソース名を選択します。
- これで、新しいデータ ソースがすべてのシートで使用されるようになりました。
ダッシュボードの構成方法と使用されるメトリックの詳細については「DevOps ダッシュボードでデータ パイプラインを最大限に活用する」をご参照ください。
考慮事項
- 接続タイプを「ライブ」に変更しないでください。ダッシュボードはデータベースに依存しない設計になっているため、一部の機能によってはデータベースでサポートされていません。接続を「抽出」のままにしておくと、計算はそのまま維持されます。
- 接続タイプが変更された場合は、ダッシュボードの書式設定がデフォルトで Tableau の既定色になります。
- テーブル名には複数の予約語があります。予約語は「from」、「to」、「key」、「status」です。接続タイプを変更する場合は、データベースに適したエスケープ文字を使用して、これらの予約語をエスケープする必要があります。適切なアプローチとしては、SQL 構文が正しいことを確認するために、データベース インターフェイスでカスタム SQL クエリを直接実行することをお勧めします。
- すべてのデータベース接続にカスタム SQL オプションがあるわけではありません。ご利用のデータベースがカスタム SQL をサポートしていない場合は、用意された SQL でビューを作成する必要があります。ビューを作成すると、列の名前が変更されます。必要に応じて、ダッシュボードによりレコードがフィルタリングされます。
- ダッシュボードは、ODBC 接続を使用してデータベースに依存しないように構築されています。詳細については「Tableau における ODBC 接続」をご確認ください。ODBC 接続オプションを使用する場合は、データベースに適切な ODBC ドライバーをインストールして、データソース名 (DSN) を設定する必要があります。
既知の課題と制限事項
Tableau により使用される一部の機能が ODBC ドライバーによりサポートされていないことに関する警告
データベースに接続すると、Tableau はそのドライバーですべての機能を利用できないことを警告する場合があります。これらの警告の詳細については、Tableau ドキュメントの「Tableau と ODBC」をご確認ください。