Compute EngineでRedashを設定:BigQueryとの連携ガイド

Google Cloud

2024.3.27

Topics

はじめに

こんにちは、Shunです。

今回は、Google CloudのCompute EngineでRedashを構築し、BigQueryをデータソースとして分析を行います。

本記事では、その際のGoogle Cloudの環境設定やRedashからどのように分析が可能なのかをご紹介します。

想定読者

  • Redashに興味がある方
  • Redashの構築方法が気になる方

本記事で取り扱う内容

  • Redashの概要
  • Compute EngineでRedashを構築する方法

本記事で取り扱わない内容

  • Redashの具体的な使用方法
  • Redash構築において利用するGoogle Cloudのサービス説明

概要

まず、Redashの概要について説明します。

Redashは、BigQueryなどと連携し、データの探索、分析、可視化を行うWebアプリケーションです。

参考: Redash helps you make sense of your data

データソース

現在、50近くのリソースをデータソースとして利用可能です。

料金

Redashは、オープンソースとして提供されているサービスなので、無料で利用可能です。

構成図

本記事で説明する構成は以下の通りです。

環境構築

Compute Engineの構築

Compute Engine上にRedashを構築する際は、以下の公式の手順に従って行います。

公式手順: Setting up a Redash Instance

まず、Cloud Shellを開きます。Cloud Shellは、Google Cloudコンソールの右上から開くことができます。

Cloud ShellでRedashのイメージをアカウントに追加します。

$ gcloud compute images create "redash-8-0-0" --source-uri gs://redash-images/redash.8.0.0-b32245-1.tar.gz

取得したイメージからCompute Engineを立ち上げます。

$ gcloud compute instances create [インスタンス名] --image redash-8-0-0 --machine-type [マシンタイプ] --zone [インスタンスを作成するゾーン] --network=[VPC名] --subnet=[サブネット名]

これでCompute Engineの構築は完了です。

BigQueryでデータセットを作成する

使用しているプロジェクトの「︙」からデータセットを作成します。

続いて、テーブルを作成します。テーブルの元データは何でも良いのですが、僕はバスケが好きなので、NBAの今シーズンのスタッツを使用します。

IAMの作成

ここでは、RedashとBigQueryを接続するためのIAMを作成します。

公式手順: BigQuery-Permissions-and-Roles

まず、「権限の追加」から以下の権限を付与するロールを作成します。

  • bigquery.jobs.create
  • bigquery.jobs.get
  • bigquery.jobs.update
  • bigquery.datasets.get
  • bigquery.tables.list
  • bigquery.tables.get
  • bigquery.tables.getData

続いて、サービスアカウントを作成し、先ほど作成したロールを付与します。

作成したサービスアカウントから「鍵を追加」を選択し、JSONファイルをダウンロードします。(これは後で使用します。)

Redashの設定

ここでは、Redashの設定を行います。まず、作成したCompute Engineの外部IPアドレスへアクセスします。
(接続できない場合は、VPCのファイアウォール設定を見直してください。)

まず、Redashの初期セットアップを行います。

次に、BigQueryと接続します。

データソースとして、BigQueryを選択します。

以下の設定を行います。

  • Name:任意の名前
  • Project ID: データセットを作成したProject ID
  • JSON Key File: サービスアカウントから発行したJSONファイル

データソースの登録が完了したら、クエリを作成します。

ここでは、NBA 2023-2024シーズンの平均得点ランキングを作成します。(シーズン途中のため、これは途中経過です。)

(ケガしなかったら、エンビードがMVPと得点王を取っていただろうなぁ。)

最後にこの表をビジュアル化します。

当たり前ですが、出場時間が長くなるほど平均得点が増えています。ただ、平均アシスト数に関しては得点ほどの出場時間との相関関係の傾向は見られません。

Redashを使い始めたばかりで、まだ十分に活用できていない気がしますが、今回はここまでにします。

さいごに

イメージからRedashを立ち上げるだけで簡単に使用を開始できました。
今回はGoogle Cloudで実施しましたが、AWSなどでも同様にイメージから立ち上げることが可能です。

まだまだRedashの分析方法について調査中ですが、新たな知見を得た際は、記事にしたいと思います!
過去にBigQueryで分析する記事を書いておりますので、ご興味ある方はこちらもご覧ください!

関連記事
【バスケデータ分析】BigQueryで探るシュート効率

最後まで読んでいただきありがとうございます!

Shun

好きな言葉は生ビール199円です。日本ビール協会認定1冠、AWS12冠、Google Cloud11冠

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら