使用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数据源中进行以下设置。

スクリーンショット 2017-04-28 午後4.24.51.jpg

在运行脚本之前需要导入的模块,如果有需要导入的模块,在设置Python数据源时用逗号分隔,并将其写入。

スクリーンショット 2017-04-28 午後4.29.06.jpg

然后,选择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')

按下执行按钮即可输出结果。

スクリーンショット 2017-04-28 午後4.30.08.jpg

通过将Google表格、数据库和Google Analytics等整合在一起,可以生成各种报告。这太牛了,真是太牛了。

广告
将在 10 秒后关闭
bannerAds