5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Metabase(v0.33.0)のjoin data機能を使用して、Redmineのユーザーとグループの情報を一つの表にまとめる方法

Last updated at Posted at 2019-08-30

はじめに

Metabase(v0.33.0)のjoin data機能を使用して、Redmineのユーザーとグループの情報を一つの表にすることができましたので、その方法についてご紹介します。
(他にも便利な方法やRedmineのプラグインなどありそうな気もしますが、Metabaseでやってみました。)

実施の背景

Redmineではユーザをグループに割り当てて管理することができますが、人が増えてくると誰がどのグループ所属しているか、すぐにわからなくなってしまい、何か簡単に一つ表で見れるようにする方法はないか、と模索していました。

今回、たまたまMetabaseをv0.31.2からv0.33.0 (2019/8/19の最新版)に更新したところ、「join data」という機能が増えており、SQLがわからなくても、二つのテーブル「ユーザ(Users)」と「グループ(Group Users)」を結合し、Redmineのユーザとグループを1つの表で見ることができましたので、その内容について紹介します。

実行環境

Redmineは BitnamiからインストールしたRedmine 4.0.4.stable を使用
Metabaseは v0.33.0 を使用
OSはWindows10です。(ただし、OSは関係なし。)

Metabaseでのユーザとグループをまとめた表の結果

先に結果を示しますと、下記のように1つの表で見ることができます。
image.png

Metabaseでのユーザとグループをまとめる手順

それでは手順について説明していきます。

①Metabaseを起動して、データベースにBitnami RedmineのデータベースMySQLを接続する。
こちらにつきましては、ネットを検索すると手順を発見できましたので割愛します。

②MetabaseのTOP画面の下部にあるRedmineのデータベースを選択、クリックする。
 私の環境の場合は、mysql2という名前にしています。

 
image.png

③データベースの色々なテーブルが表示されるので、その中からGroups Usersを選択
image.png

④右上のほうにある「エディターを表示する」をクリック
image.png

⑤エディターが表示されるので「Join data」をクリック
image.png

⑥テーブルを選ぶのところで指定のデータベース(mysql2)を選んで、
image.png

次に、Usersを選ぶ。
image.png

⑦テーブルを接続するキーとなる「Pick a column」をそれぞれ選択する。
 左側(Groups Users)からは、「User ID」を、
 右側(users)からは、「ID」を選択。

image.png

⑧「列」の隣にある▶(プレビュー)をクリックすると結合された表が表示されます。
 image.png

⑩このとき「列」をクリックすると表示する列を選択できますので、余計な列はチェックを外しておきます。この例では「ID」、「Firstname」、「Lastname」だけを残しています。
image.png
これで「Group ID」、「User ID」と「名前」が1つの表で見れるようになりました。
このままでも何となくグループはわかりますが、せっかくなのでグループ名も結合します。

⑪もう一度「Join data」を選択して、さらにJoin dataを追加します。
image.png

⑫今度は下図のようにテーブルにはもう一度「Users」を選んで、
 左側(Groups Users)からは、「Group ID」を、
 右側(users)からは、「ID」を選択。

image.png

⑬これで同じように▶(プレビュー)を押して、プレビューを表示すると、
 結合された表が表示され、「Users→Lastname」のところに、グループ名が表示されています。

(データベース上、Redmineのグループ名はLastnameとして管理されているようです。)
image.png

⑭先ほど追加した「Join data」の「列」をクリックして、余計な列のチェックを外しておきます。今回はグループ名を示す「Lastname」以外は不要なので、「Lastname」だけにします。
image.png

⑮ページ下部にある「ビジュアライズ」を押すと、エディタから抜けて、作成した表が表示されます。
image.png

⑯この画面では、ドラッグアンドドロップで、列の順番を入れ替えることができますので、わかりやすい順番に並び替えます。
image.png

⑰ 少し失敗してUser IDが二つになっているので、再度「エディタ」を選択して、「ID」を一つ消します。
image.png

⑱ これで最後に「保存」をクリックして完成です。
image.png

補足 SQLを見る

① 「エディタ」画面の右上のアイコンからSQLを見ることができます。
image.png

② さらに AS ' ' の部分を編集することで、列の見出しを変更することができます。
image.png

※ただし、SQLで編集して保存してしまうと、以降はSQLでしか編集できなくなるようなので、注意してください。
image.png

まとめ

以上の通り、Metabaseの「Join data」機能を使うことで、SQLを使わなくてもテーブルを結合して、期待の表を作ることができました。
また、Metabaseは下記のように右下のダウンロードから、生成した結果をcsv,xlsx,jsonのいずれかの形式ダウンロードすることができます。

image.png

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?