1
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?

More than 1 year has passed since last update.

WSL2 UbuntuにRe:dashの環境構築してみる

Posted at

はじめに

船井総研デジタルのoswです。Re:dashというものを業務で初めて知り、便利だったのでローカルに構築してみました。

学習環境

  • Win 11 Home / 22H2
  • WSL2 / Ubuntu 22.04.3 LTS
  • Docker Desktop 4.23.0

この記事のゴール

下記をゴールとします。

  • dockerコンテナでRe:dash環境を構築
  • サンプルDB(MySQL)を作成し、Winのブラウザ経由でDBの内容を閲覧出来るようにする

Re:dashとは

Re:dashはOSSでデータソースを登録することで、それらのデータをブラウザベースで閲覧することが出来るようになります。

一部ですが登録出来るデータソースには下記のようなものがあります。
image.png

環境構築

データソースの作成

まずはRe:dashで参照するデータソースを作成します。今回はMySQLでサンプルDBを作成し、それを閲覧できるようにします。

下記構成でデータソースを作成することにします。

MySQL
├── DB
│   └── sample.sql
├── Dockerfile
├── compose.yml
└── my.cnf
DB/sample.sql
CREATE DATABASE redash;

CREATE TABLE redash.test (
    id INT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (id)
);

INSERT INTO
    redash.test (name)
VALUES
    ("user01"),
    ("user02"),
    ("user03"),
    ("user04"),
    ("user05"),
    ("user06"),
    ("user07"),
    ("user08"),
    ("user09"),
    ("user10");
Dockerfile
FROM mysql
EXPOSE 3306
ADD ./my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"]
compose.yml
services:
    mysql:
        container_name: redash-mysql
        build: .
        image: redash-mysql
        command: --default-authentication-plugin=mysql_native_password
        volumes:
            - ./DB:/docker-entrypoint-initdb.d
        environment:
            - MYSQL_ROOT_PASSWORD=root
        networks:
            - redash
networks:
    redash:
        # Re:dash公式リポジトリで利用するネットワークを参照。MySQLコンテナと通信可能にする
        external: true
        name: redash_default
my.cnf
[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

Re:dashの入手

Re:dashはAWS EC2のインスタンスとしても提供されているようですが、今回はgithubの公式リポジトリを利用しローカルにコンテナを作成します。

そこで下記でクローンします。

$ git clone https://github.com/getredash/redash.git

次にクローンしたredashディレクトリ直下に次のファイルを作成します。

.env
REDASH_SECRET_KEY=redash
REDASH_COOKIE_SECRET=redash
GOOGLE_CLIENT_ID=redash

Re:dashコンテナの起動

$ cd redash
$ docker compose up -d
$ docker compose run --rm server create_db

upにそれなりに時間が掛かりますが、ひとまず下記でRe:dashにアクセス出来るようになります。

image.png

Re:dashの環境設定

UIを整える

視認性が悪いのでUIを整えます。下記コマンド実行時、要求するnodeのバージョンと異なっているとエラーが出る場合は条件に合うバージョンを選定してください。

かなり時間がかかりますが、これでUIの視認性が良くなります。

$ yarn --frozen-lockfile
$ yarn build

# 参照するデータソース(MySQL)のコンテナを起動。MySQLディレクトリ直下で実行
$ docker compose up -d

念のため普段自分が使ってるアドレスを設定し、adminユーザを作成してログインします。

image.png

データソースの設定

ログイン後、画面左下にあるSettings -> +New Data Source -> mysqlと入力し選択可能なデータソースからMySQLを選択します。

image.png

続いて下記のように設定します。今回はあくまでテスト環境なのでrootでそのままアクセスしています。

項目 詳細
Name SampleDB
Host mysql
Port 未入力
User root
Password root
Database Name redash
それより下 すべてデフォルト

image.png

設定を保存し、「Test Connection」でSuccessとなれば設定完了です。

クエリの作成

DBに接続できるようになったので、Re:dashで閲覧するために必要となるクエリを作成します。

サイドメニュー -> Create -> New Queryを選択します。

image.png

今回は単純に次のように作成しています。

  • クエリ名
    • Test Query
  • クエリ詳細
    • SELECT * FROM redash.test;

デフォルトでDBが選択されている状態なので、クエリをそのまま入力するだけで問題ありません。右下のExecuteで実行して確認することもできます。

問題ないことを確認したらSaveで保存、右上のPublishを押下します。(Publishしておかないとダッシュボードで作成したクエリが参照できません)

image.png

ダッシュボードの作成

サイドメニュー -> Create -> New Dashboradを選択、任意の名前を入力します。

ダッシュボードの編集画面に遷移後、右下のAdd Widget -> 先程作成したクエリを選択 -> Add to Dashboard -> Done Editingを選択します。

image.png

これでダッシュボードを開くと作成した各クエリが実行され、すぐに確認出来るようになります。
image.png

おわりに

あくまでテスト環境なのでそのまま本番用に使う訳にはいきませんが、構築しておくと開発する際に非常に便利だと思います。触って色々試してみようと思います。

1
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
1
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?