概要
本記事は、プリザンター×Metabaseによるデータ分析基盤の構築について、3回にわたって解説するシリーズの第1回です。プリザンターのデータをMetabaseで効率的かつ安全にデータ分析できるようにした社内事例をご紹介します。
シリーズ構成
- ①システム構成編(本記事):全体構成とアーキテクチャの紹介
- ②ビュー作成処理編:PowerShellとタスクスケジューラによるビュー作成処理
- ③データ同期処理編:データ同期処理の仕組みとバックグラウンドサーバスクリプト
こんな方におすすめ
- プリザンターのデータをBIツールで分析したい方
- プリザンターとMetabaseの連携方法を知りたい方
- セキュリティを考慮したデータ分析環境を構築したい方
- OSSのソフトウェアを活用して無料でデータ分析を始めたい方
背景・課題
プリザンターだけではBIが限定的
プリザンターはノーコード・ローコード開発ツールとして優れていますが、データ分析・可視化の面では以下の課題がありました。
- グラフ表示機能の限界:クロス集計・時系列チャート・分析チャート機能のみで、複雑な分析には不向き
- 横断的な分析の困難さ:複数のテーブルを横断した分析が難しい
- ダッシュボードの制約:自由度が限定的で、経営層向けの見やすいダッシュボード作成に限界
Metabaseのデータベース直接接続によるアクセス権の問題
Metabaseは強力なBIツールですが、データベースに直接接続するため以下の課題が発生します。
- アクセス権の無視:プリザンターで設定したサイトのアクセス権が無視され、権限のないテーブルのデータまで見えてしまう
- 分析担当者の限定:プリザンターで設定したサイトのアクセス権が無視されることから、分析担当者がシステム管理者などに限定される
- データ分析の困難さ:単一テーブルとして「表示名」で分析したい場合と親子関係の複数テーブルでリンクした項目を「値」として分析したい場合の両方に対応できない
解決策の概要
データ分析用環境の構築
本番環境とは別に、データ分析用の環境を構築することで課題を解決しました。
ビュー作成処理による課題の解決
ビュー作成処理による課題の解決については、②ビュー作成処理編で詳しく解説します。
- 汎用カラムの意味付け:ClassA、NumAなどの汎用カラムを意味のある表示名に変換
- 分析用ビューの自動生成:PowerShellスクリプトにより1分ごとに最新のビューを作成
- Metabaseでの容易な分析:表示名や値でのインポートにより分析に適したビューを作成
更新データ同期処理による課題の解決
更新データ同期処理による課題の解決については、③データ同期処理編で詳しく解説します。
- 必要なデータのみ同期:ユーザがデータ分析対象のテーブルから必要なデータを同期
- 手動作業の自動化:手動によるデータ同期作業を自動化し、運用負荷を大幅に削減
- 同期頻度の最適化:自動処理での同期タイミングを「毎日」「毎週」「毎月」から選択できるようにして、かつユーザ操作による即時同期も可能に
システム構成
本番環境
- プリザンター:社内業務用
- 主要テーブル:Sites(サイト設定情報)、Issues/Results(汎用テーブル構造)
- ユーザ:社内ユーザ(全員)
- データ:業務データ(サイトのアクセス権による制御あり)
データ分析用環境(Windows Server)
-
プリザンター:データ分析用
- バックグラウンドサーバスクリプト:データ同期処理
-
データベース:SQL Server
- Table:Sites、Issues、Results など
- View:商談、仕入、顧客マスタ など
-
Metabase:BIツール(質問、ダッシュボード、コレクション、クエリ機能)
-
データベース:PostgreSQL
- Table:collection、core_user、permissions など
-
データベース:PostgreSQL
- PowerShell:ビュー作成・更新処理
- タスクスケジューラ:ジョブ実行(毎分)
- ユーザ:社内ユーザ(全員)
データ移行・同期の仕組み
初回データ移行(手動)
- サイトのアクセス権:本番環境でサイトのアクセス権を持つユーザが実施
- エクスポート:本番環境プリザンターから対象テーブルのサイトパッケージ(テーブル設定)とデータを手動でエクスポート
- インポート:データ分析用環境プリザンターに対象テーブルのサイトパッケージ(テーブル設定)とデータを手動でインポート
- ビュー自動作成:PowerShellスクリプトがタスクスケジューラにより1分ごとに実行され、Metabase用ビューを自動生成
この手動プロセスにより、そもそも本番環境でサイトのアクセス権があるユーザでないとデータ分析ができない仕組みにしています。
更新データ同期(自動)
初回データ移行後は、データ分析用環境のプリザンターのバックグラウンドサーバスクリプト機能を活用して継続的な同期を行う仕組みにしています。
- API連携:サーバスクリプトを使用して対象テーブルからデータを取得
- 差分同期:更新されたデータのみを効率的に同期
- 定期実行:スケジュールに従って自動実行(同期タイミングは「毎日」「毎週」「毎月」が選択可)
導入効果
実際に社内で運用してみて、以下のような効果が出てきています。
実際の効果
- セキュリティの確保:アクセス権の問題を解決し、安全な分析環境を実現
- データ分析の高度化:Metabaseの豊富な機能により、複雑な分析が可能に
- 運用負荷の削減:手作業による月次集計から自動化されたダッシュボードへ
- 意思決定の迅速化:リアルタイムに近いデータで経営判断をサポート
組織全体でのデータ活用推進
データ分析フォルダによるPDCAサイクルの実現
データ分析基盤の構築により技術的な課題を解決しただけでなく、組織全体でデータを活用したPDCAサイクルを回すための仕組みも整備しました。
データ分析フォルダの構成と役割
本番環境のプリザンターでは、データをもとにした業務改善や意思決定を組織全体で進めていくためのスペースとして「データ分析」フォルダを設置しました。
主要なテーブル構成
このデータ分析フォルダには以下のテーブルを体系的に整備することとしました。
コミュニケーション・共有系
- はじめに:利用開始前に確認すべき基本情報を掲載
- 分析広場:データ分析に関する意見交換や気づきの共有など、自由に情報を投稿できるスペース
- 分析提案/指示:ボトムアップの提案やトップダウンの指示など、縦方向のやりとりを記録・共有するスペース
- 分析相談:社内の関係者や各部門に対して、データ分析に関する横方向の相談を行うためのスペース
データ管理系
- 分析元データ:データ分析に必要となる元データを格納・管理する場所
- 可視化データ:データの可視化結果やダッシュボード、グラフなどを整理・共有する場所
ナレッジ系
- 分析ナレッジ:分析手法やTips、過去事例などを蓄積して再利用するためのナレッジベース
運用管理系
- アクセス制御依頼:Metabaseのビューに対してアクセス制御依頼を行うための仕組み
- 運用マニュアル:運用担当者向けのシステム運用マニュアル
全員参加型のデータ活用
データ分析フォルダを活用することで、エンジニアだけでなく管理部門やセールス・マーケティング部門など全社員がデータに基づいた改善活動ができる環境を実現しました。データ活用促進のための社内レクチャー会なども行い、組織全体のリテラシー向上を図っています。
データドリブンな意思決定の促進
- 現状把握:Metabaseダッシュボードでの定量的な現状分析
- 課題発見:データの可視化による潜在的な問題の発見
- 改善策立案:分析結果に基づく具体的なアクションプランの策定
- 効果検証:改善実施後の定量的な効果測定
組織学習の促進
- 分析スキルの向上:全員がデータ分析に参加することで組織全体のリテラシー向上
- ナレッジの蓄積:成功・失敗事例の共有による組織学習の促進
- 継続的改善:PDCAサイクルの定着による継続的な業務改善
データ活用の具体的な効果
データ分析フォルダでの運用とMetabaseのダッシュボードを組み合わせることで、以下のような改善効果が期待できます。
業務プロセスの改善
- ボトルネック特定:業務フローの定量分析によるボトルネック箇所の特定
- リソース最適化:データに基づく人員配置やスケジュール調整
- 品質向上:品質指標の可視化による継続的な改善活動
意思決定の高度化
- 根拠のある判断:勘や経験だけでなく、データに基づく客観的な判断
- リスク軽減:事前のデータ分析による意思決定リスクの軽減
- 機会発見:データ分析による新たなビジネス機会の発見
技術的な基盤構築だけでなく、みんなが使える仕組みづくりにも力を入れたことで、データを活用した改善活動が社内に広がりつつあります。
おわりに
この記事がプリザンターとMetabaseを組み合わせたデータ分析基盤構築の参考になれば幸いです。②ビュー作成処理編では、PowerShellスクリプトとタスクスケジューラを使ったビュー作成処理について詳しく解説します。次回もお楽しみに!