Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Re:dash で利用可能なデータソース

alt

Re:dash で利用可能なデータソースについてまとめます。
2016/10/27現在の情報です。

データソース

DynamoDB(DQL)

Amazon製の NoSQL データベース

aws.amazon.com

ElasticSearch

OSS全文検索エンジン

www.elastic.co

Google BigQuery

Google Cloud Platformが提供するビッグデータ解析基盤

cloud.google.com

Google Spreadsheets

Google製の表計算ソフト

www.google.com

Graphite

OSS のグラフ描画ツール

Graphite

Greenplum

大量データを並列実行可能なオープンソースのデータウェアハウス

GREENPLUM DATABASE

Hive / Impala / Presto

すべて SQL on HadoopHadoop上でSQLを実行するためのツール)

Apache Hive TM

impala.apache.org

prestodb.io

以下、性能比較をした方のスライドです

InfluxDB

オープンソースの時系列データベース。
Golang製。

https://www.influxdata.com/time-series-platform/influxdb/

JIRA (JQL)

プロジェクト管理ツールJIRAの課題検索クエリ言語。
JQL=JIRA Query Language

ja.atlassian.com

Microsoft SQL Server

Microsoft社製のRDB

SQL Server 2016 | マイクロソフト クラウド プラットフォーム

MySQL

オープンソースRDB

MySQL

Oracle

Oracle社製のRDB

Database 12c | Oracle JA

PostgreSQL

オープンソースRDB

www.postgresql.org

Python

Pythonの実行結果をクエリとして扱うことがます。
いくつかのAPIがサポートされています。

Supported Data Sources — Re:dash documentation

ドキュメントにこれ以上詳しい内容は載っていないので、 Re:dash のコードを読むとどんなAPI
サポートされているか把握できます。

API 処理内容
add_result_column(result, column_name, friendly_name, column_type) 結果のカラム名を指定する
add_result_row(result, values) データ行を追加する
execute_query(data_source_name_or_id, query) 任意のデータソースに対して任意のクエリーを実行した結果を取得する
get_query_result(query_id) 任意の query の結果を取得する

このデータソースはデフォルトではオフになっていて、データソースのリストに表示されません。
環境変数 REDASH_ADDITIONAL_QUERY_RUNNERSredash.query_runner.python を設定しておくことで
有効になります。

Docker for Mac 利用時なら

$ docker-compose up -e REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.python" -d

のようにして起動すれば有効になります。
(実現方法は色々あるでしょう)

以下は、 re:dash 自身の Postgres のデータソースから作成した id 2 のクエリーの結果を取得し、
さらに1行追加して表示する Python データソースのクエリーです。
(クエリーの id はURLや Re:dash 本体のデータベースの queries テーブルのデータを取得するクエリーを Re:dash で実行することで確認できます)

events = get_query_result(2) # {action, count}

result = events
add_result_row(result, {'action':'append', 'count':99})

※ Query id 2 のもともとのクエリー

select action, count(*) as "count"
from events
group by action
  • 実行結果

f:id:tbpg:20161027231739p:plain

SQL単体では実現困難なデータ加工や、複数のデータソースの結果を組み合わせるなど、
「ちょっとこったこと」をしたい場合に重宝しそうです。

Redshift

Amazon 社製の大規模向けデータウェアハウス

aws.amazon.com

SQLite

オープンソースRDB

SQLite Home Page

Treasure Data

クラウド型データマネジメントサービス

サービス概要 - Treasure Data

URL

規定のデータフォーマットJSONを返すURLを指定することで、
クエリー結果に表示できる。

つまり、JSONを返却するAPIサーバーを作っておけばその結果を取得できることになる。

Supported Data Sources — Re:dash documentation

Vertica

Vertica 社製の大規模向けデータウェアハウス

www8.hp.com

関連資料

親記事