0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ビジュアルも自動化もおまかせ!💡 Redashでデータ可視化を極める

Posted at

Redashでデータ可視化.png


はじめに

Redashは多種多様なデータソースと連携できるオープンソースのBIツールとして、手軽にSQLクエリを実行し、結果をダッシュボードにまとめた可視化が行える点が大きな魅力です。
本記事では、Redashでダッシュボードを作成する方法定期レポートの自動更新設定、そしてGoogleスプレッドシートとの連携まで、実際の画面操作やコード例を交えながら詳しく解説していきます。🔍


Redashによるダッシュボード作成

Redashのダッシュボードは、運用するクエリの結果を1画面に集約し、視覚的に分かりやすくレポートできる強力なツールです。

ダッシュボードの作成手順

  1. 新規ダッシュボードの作成
    左側メニューから「Dashboard」を選び、右上の「+ New Dashboard」ボタンをクリック。ダイアログにダッシュボード名を入力すると、編集画面に移行します。

  2. テキストボックスやウィジェットの配置

    • 編集画面の右下にある「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でのダッシュボード作成と定期レポートの自動化に関する実装例について解説しました。記事内のコード例や図解を参考に、自らの環境に最適な自動化システムを構築してみましょう。


💖 ご支援いただけませんか?

スクリーンショット 2025-01-31 7.51.39.png

このブログでは、高品質な情報提供と学習活動を通じて、読者の皆さまのお役に立つことを目指しています。もしこの記事が役立ったと感じていただけましたら、ご支援いただけると幸いです!


暗号資産による寄付

以下のウォレットアドレスをご利用ください。重要:Ethereum (ETH)、BNB Chain (BNB)、Polygon (MATIC)、Avalanche (AVAX) は、全て以下の同一アドレスを使用しますが、送金ネットワークの選択を間違えると資金が失われます! 送金時には、絶対に使用するネットワーク(例: ERC-20、BEP-20、Polygon、Avalanche C-Chain)を必ず正しく選択してください。


Ethereum Logo

Ethereum (ETH) (ネットワーク: ERC-20)

0x5CDA2F68f59F641B00aD172475c3d5fC10321174
BNB Logo

BNB Chain (BNB) (ネットワーク: BEP-20)

0x5CDA2F68f59F641B00aD172475c3d5fC10321174
Polygon Logo

Polygon (MATIC) (ネットワーク: Polygon)

0x5CDA2F68f59F641B00aD172475c3d5fC10321174  
Avalanche Logo

Avalanche (AVAX) (ネットワーク: Avalanche C-Chain)

0x5CDA2F68f59F641B00aD172475c3d5fC10321174
Solana Logo

Solana (SOL)

EnPFbqDbF67rU9mAPvfgh4YYtncJNbFQ9NLQ5R6z5S2f
Stellar Logo

Stellar (XLM) メモ: 必要に応じて入力してください。

GCSMWCACKVEZ737GZAV4AJRFL52ZZKVQ7M3B3KYY64JJGOAO2GDYKABO 
Ripple Logo

Ripple (XRP) タグ: 必要に応じて入力してください。

r1s4EASr3zQRrfpDA3ptTahezBhGo2hhN
Cardano Logo

Cardano (ADA)

addr1q8heq6ddw8rwlqa5hqlucnfk36arah9tzc8ajxvu83870h7lrre25wzq9yemex857we56cm0xu8tmxqvm8nykmtgsjdqavdpv7
Dogecoin Logo

Dogecoin (DOGE)

DRFZ9JhAk3DTtu1tV85cawekWNrm1vKm3H

資金用途

寄付金は以下の目的で活用させていただきます:

  1. サーバー維持費やデザインツール購入
  2. 学習活動(オンラインコース受講・書籍購入)
  3. 読者向け無料コンテンツ制作

ご協力いただいた皆さまには心より感謝申し上げます! 🙏


補足情報

  • Ethereum (ETH)、BNB Chain (BNB)、Polygon (MATIC)、Avalanche (AVAX)について
    上記4つのネットワークは同じウォレットアドレス0x5CDA2F68f59F641B00aD172475c3d5fC10321174)を使用します。ただし、送金時には、絶対に使用するネットワーク(例: ERC-20、BEP-20、Polygon、Avalanche C-Chain)を必ず正しく選択してください。

  • USDCやUSDTなどのステーブルコインも、対応するネットワーク経由であれば送金可能です。ただし、送金先のネットワークと選択するネットワークが一致していることを必ず確認してください。

  • 初回送金時には少額でテスト送金することをおすすめします。


0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?