Re:dash で利用可能なデータソースについてまとめます。
2016/10/27現在の情報です。
データソース
DynamoDB(DQL)
Amazon製の NoSQL データベース
ElasticSearch
Google BigQuery
Google Cloud Platformが提供するビッグデータ解析基盤
Google Spreadsheets
Graphite
OSS のグラフ描画ツール
Greenplum
大量データを並列実行可能なオープンソースのデータウェアハウス
Hive / Impala / Presto
すべて SQL on Hadoop(Hadoop上でSQLを実行するためのツール)
以下、性能比較をした方のスライドです
InfluxDB
https://www.influxdata.com/time-series-platform/influxdb/
JIRA (JQL)
プロジェクト管理ツールJIRAの課題検索クエリ言語。
JQL=JIRA Query Language
Microsoft SQL Server
SQL Server 2016 | マイクロソフト クラウド プラットフォーム
MySQL
Oracle
PostgreSQL
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_RUNNERS
に redash.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
- 実行結果
SQL単体では実現困難なデータ加工や、複数のデータソースの結果を組み合わせるなど、
「ちょっとこったこと」をしたい場合に重宝しそうです。
Redshift
Amazon 社製の大規模向けデータウェアハウス
SQLite
Treasure Data
クラウド型データマネジメントサービス
URL
規定のデータフォーマット のJSONを返すURLを指定することで、
クエリー結果に表示できる。
つまり、JSONを返却するAPIサーバーを作っておけばその結果を取得できることになる。
Supported Data Sources — Re:dash documentation
Vertica
Vertica 社製の大規模向けデータウェアハウス