はじめに
Redashは多種多様なデータソースと連携できるオープンソースのBIツールとして、手軽にSQLクエリを実行し、結果をダッシュボードにまとめた可視化が行える点が大きな魅力です。
本記事では、Redashでダッシュボードを作成する方法や定期レポートの自動更新設定、そしてGoogleスプレッドシートとの連携まで、実際の画面操作やコード例を交えながら詳しく解説していきます。🔍
Redashによるダッシュボード作成
Redashのダッシュボードは、運用するクエリの結果を1画面に集約し、視覚的に分かりやすくレポートできる強力なツールです。
ダッシュボードの作成手順
-
新規ダッシュボードの作成
左側メニューから「Dashboard」を選び、右上の「+ New Dashboard」ボタンをクリック。ダイアログにダッシュボード名を入力すると、編集画面に移行します。 -
テキストボックスやウィジェットの配置
- 編集画面の右下にある「Add Textbox」ボタンからテキストボックスを追加できます。
- 同様にクエリの実行結果をウィジェットとして追加する場合は、「Add Widget」を選び、最近実行したクエリから表示したいグラフやテーブルを選択します。
- ドラッグ&ドロップで位置調整やサイズ変更も簡単に行えます。
下記の図は、ダッシュボード作成の流れを簡単に表したものです。
[Dashboardメニュー]
│
▼
[+ New Dashboard] ──► ダイアログに「Dashboard名」を入力
│
▼
[ダッシュボード編集画面]
│
┌───┴────┐
│Textbox追加│
│Widget追加│
└────────┘
クエリのスケジュール設定で定期レポート自動更新
Redashにはクエリの定期実行(Refresh Schedule)機能があり、たとえば毎日朝一に最新データでレポートを自動更新する設定が可能です。
定期実行の基本設定
-
Refresh Scheduleの設定場所
クエリ作成画面の左下にある「Refresh Schedule」欄から、定期実行間隔(分、日、週単位)を選択可能。たとえば下記のように設定します。- 分単位:例)15分ごと
- 日単位:例)毎日10時に更新
- 週単位:例)毎週月曜に更新
-
実践例
クエリ実行後、定期実行が有効になっていれば、Redashは指定間隔で自動更新し、最新の結果がダッシュボード上に反映されます。
※クエリの実行失敗時は内部で無効化される場合もあるので、ログ確認もお忘れなく。
定期実行の注意点
- 複数のクエリで同じ集計ロジックを記述する場合、メンテナンス性を高めるために共通の中間集計クエリを作成してQRDSにキャッシュする構成もおすすめです。
- 土日など特定の曜日に実行したくない場合は、Redash自体の定期実行機能では難しいため、APIを利用したスクリプト(例:GitHub ActionsやGoogle Apps Script)で柔軟に管理する方法も有効です。💡
Googleスプレッドシートとの連携による自動レポート
RedashのAPIを利用して、取得したデータをGoogleスプレッドシートに自動で取り込み、日次・週次レポートとして共有する方法も人気です。
ステップ1: Redash側でAPIキー取得とクエリ設定
- Redash画面右上のメニュー(…)から「Show API Key」をクリックし、CSV形式の結果取得用URLをコピーします。
ステップ2: GoogleスプレッドシートでIMPORTDATA関数を利用
シート内の任意のセルに以下のように記述するだけで、Redashからのデータを自動反映させることが可能です。
=IMPORTDATA("コピーしたRedashのCSV形式URL")
ステップ3: Apps Scriptによる自動化
定期的にシート内容を新しいシートへコピーする例を示します。以下はApps Scriptのサンプルコードです。
function backupSheetData() {
const SHEET_ID = 'your_google_sheet_id';
var book = SpreadsheetApp.openById(SHEET_ID);
var sourceSheet = book.getSheetByName('BaseSheet'); // データのベースシート
var dateStr = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd');
// 新しいシートを作成
var newSheet = book.insertSheet(dateStr, 1);
var lastRow = sourceSheet.getLastRow();
var lastColumn = sourceSheet.getLastColumn();
var data = sourceSheet.getRange(1, 1, lastRow, lastColumn).getValues();
newSheet.getRange(1, 1, lastRow, lastColumn).setValues(data);
}
このスクリプトは、ベースとなるシートのデータを日付ごとに複製し、過去のレポート履歴として管理できる形にしています。さらに、Apps Scriptのトリガー機能を利用することで、毎日自動実行するよう設定可能です。⏰
まとめ
Redashを用いることで、以下のようなメリットが得られます。
-
直感的なダッシュボード作成
ドラッグ&ドロップでテキストやウィジェットを自由に配置でき、視覚的に分かりやすいレポートを実現。 -
定期レポートの自動化
Refresh Schedule機能やAPI連携により、最新データに基づいたレポートを自動更新可能。 -
柔軟なレポート連携
Googleスプレッドシートとの連携で、チーム内や関係部署へのデータ共有を効率的に行えます。
Redashはシンプルな操作性と高い拡張性を兼ね備えており、日々の業務で扱う大量データの可視化やモニタリングにも最適です。ぜひ本記事の手順を参考に、あなたのプロジェクトにもRedashを導入してみてください!🚀
以上、Redashでのダッシュボード作成と定期レポートの自動化に関する実装例について解説しました。記事内のコード例や図解を参考に、自らの環境に最適な自動化システムを構築してみましょう。
💖 ご支援いただけませんか?
このブログでは、高品質な情報提供と学習活動を通じて、読者の皆さまのお役に立つことを目指しています。もしこの記事が役立ったと感じていただけましたら、ご支援いただけると幸いです!
暗号資産による寄付
以下のウォレットアドレスをご利用ください。重要:Ethereum (ETH)、BNB Chain (BNB)、Polygon (MATIC)、Avalanche (AVAX) は、全て以下の同一アドレスを使用しますが、送金ネットワークの選択を間違えると資金が失われます! 送金時には、絶対に使用するネットワーク(例: ERC-20、BEP-20、Polygon、Avalanche C-Chain)を必ず正しく選択してください。
Ethereum (ETH) (ネットワーク: ERC-20)
0x5CDA2F68f59F641B00aD172475c3d5fC10321174
BNB Chain (BNB) (ネットワーク: BEP-20)
0x5CDA2F68f59F641B00aD172475c3d5fC10321174
Polygon (MATIC) (ネットワーク: Polygon)
0x5CDA2F68f59F641B00aD172475c3d5fC10321174
Avalanche (AVAX) (ネットワーク: Avalanche C-Chain)
0x5CDA2F68f59F641B00aD172475c3d5fC10321174
Solana (SOL)
EnPFbqDbF67rU9mAPvfgh4YYtncJNbFQ9NLQ5R6z5S2f
Stellar (XLM) メモ: 必要に応じて入力してください。
GCSMWCACKVEZ737GZAV4AJRFL52ZZKVQ7M3B3KYY64JJGOAO2GDYKABO
Ripple (XRP) タグ: 必要に応じて入力してください。
r1s4EASr3zQRrfpDA3ptTahezBhGo2hhN
Cardano (ADA)
addr1q8heq6ddw8rwlqa5hqlucnfk36arah9tzc8ajxvu83870h7lrre25wzq9yemex857we56cm0xu8tmxqvm8nykmtgsjdqavdpv7
Dogecoin (DOGE)
DRFZ9JhAk3DTtu1tV85cawekWNrm1vKm3H
資金用途
寄付金は以下の目的で活用させていただきます:
- サーバー維持費やデザインツール購入
- 学習活動(オンラインコース受講・書籍購入)
- 読者向け無料コンテンツ制作
ご協力いただいた皆さまには心より感謝申し上げます! 🙏
補足情報
-
Ethereum (ETH)、BNB Chain (BNB)、Polygon (MATIC)、Avalanche (AVAX)について
上記4つのネットワークは同じウォレットアドレス(0x5CDA2F68f59F641B00aD172475c3d5fC10321174
)を使用します。ただし、送金時には、絶対に使用するネットワーク(例: ERC-20、BEP-20、Polygon、Avalanche C-Chain)を必ず正しく選択してください。 -
USDCやUSDTなどのステーブルコインも、対応するネットワーク経由であれば送金可能です。ただし、送金先のネットワークと選択するネットワークが一致していることを必ず確認してください。
-
初回送金時には少額でテスト送金することをおすすめします。