使用Redash,通过Python数据源执行原始SQL并显示结果
只写要点。
使用dockerpull将redash映像下载到本地并启动。
docker pull redash/redash
然后,创建一个docker-compose.yml文件,并设置REDASH_ADDITIONAL_QUERY_RUNNERS,以便能够使用Python。(python使用者)
version: '2'
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: veryverysecret
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
worker:
image: redash/redash:latest
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
redis:
image: redis:3.0-alpine
postgres:
image: postgres:9.5.6-alpine
volumes:
- /opt/postgres-data:/var/lib/postgresql/data
nginx:
image: redash/nginx:latest
ports:
- "80:80"
depends_on:
- server
links:
- server:redash
执行 docker-compose up
docker-compose up
之后,登录Redash并在Postgres数据源中进行以下设置。
在运行脚本之前需要导入的模块,如果有需要导入的模块,在设置Python数据源时用逗号分隔,并将其写入。
然后,选择Python作为数据源,输入以下内容以创建查询。
query='\
select \
count(*) AS count \
from queries \
'
values = execute_query('postgres', query)['rows']
add_result_row(result, {'name': 'result', 'count': values[0]['count']})
add_result_column(result, 'name', '', 'date')
add_result_column(result, 'count', '', 'date')
按下执行按钮即可输出结果。
通过将Google表格、数据库和Google Analytics等整合在一起,可以生成各种报告。这太牛了,真是太牛了。