Tableau で DevOps ダッシュボードをデプロイする

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

データ パイプラインによって、Jira インスタンスからデータをエクスポートして、お気に入りのビジネス インテリジェンス ツールで分析できます。

まず、Tableau で DevOps テンプレートが開発されました。これは、エンジニアリング チームの健全性に関する有用なインサイトを提供します。また、独自のダッシュボードやレポートを作成するための最適な出発点となるはずです。

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 でテンプレートを起動してデータに接続します。

テンプレートを起動してデータベースに接続するには、次の手順に従います。

  1. Tableau 用 DevOps ダッシュボード テンプレートをダウンロードします。
  2. Tableau Desktop 2021.1 以降で、Atlassian DevOps Tableau パッケージ ワークブックを開きます。テンプレートには、いくつかのサンプル データが用意されます。
  3. [新しいデータ ソース] を選択して、プロンプトに従ってデータベースに接続します。
  4. [New Custom SQL (新しいカスタム SQL)] プレースホルダをキャンバスにドラッグします。データベースにカスタム SQL オプションがない場合は、以下に示すカスタム SQL を使用してデータベースにビューを作成した後、代わりにそのビューをキャンバスにドラッグします。
  5. 次の 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'
  6. 接続が完了したら、ダッシュボードを選択して抽出プロセスを開始します。
  7. 抽出が作成されたら、任意のシートに移動して [データ] > [データソースを置換] の順に選択します。
  8. 新しいデータソース名を選択します。
  9. これで、新しいデータ ソースがすべてのシートで使用されるようになりました。

ダッシュボードの構成方法と使用されるメトリックの詳細については「DevOps ダッシュボードでデータ パイプラインを最大限に活用する」をご参照ください。


考慮事項

  • 接続タイプを「ライブ」に変更しないでください。ダッシュボードはデータベースに依存しない設計になっているため、一部の機能によってはデータベースでサポートされていません。接続を「抽出」のままにしておくと、計算はそのまま維持されます。 
  • 接続タイプが変更された場合は、ダッシュボードの書式設定がデフォルトで Tableau の既定色になります。
  • テーブル名には複数の予約語があります。予約語は「from」、「to」、「key」、「status」です。接続タイプを変更する場合は、データベースに適したエスケープ文字を使用して、これらの予約語をエスケープする必要があります。適切なアプローチとしては、SQL 構文が正しいことを確認するために、データベース インターフェイスでカスタム SQL クエリを直接実行することをお勧めします。
  • すべてのデータベース接続にカスタム SQL オプションがあるわけではありません。ご利用のデータベースがカスタム SQL をサポートしていない場合は、用意された SQL でビューを作成する必要があります。ビューを作成すると、列の名前が変更されます。必要に応じて、ダッシュボードによりレコードがフィルタリングされます。
  • ダッシュボードは、ODBC 接続を使用してデータベースに依存しないように構築されています。詳細については「Tableau における ODBC 接続」をご確認ください。ODBC 接続オプションを使用する場合は、データベースに適切な ODBC ドライバーをインストールして、データソース名 (DSN) を設定する必要があります。 

既知の課題と制限事項

Tableau により使用される一部の機能が ODBC ドライバーによりサポートされていないことに関する警告

データベースに接続すると、Tableau はそのドライバーですべての機能を利用できないことを警告する場合があります。これらの警告の詳細については、Tableau ドキュメントの「Tableau と ODBC」をご確認ください。

Last modified on Mar 14, 2022

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.