k8s與數據分析--利用redash作自助數據分析

前言

在以前文章中,一直講prometheus的metrics以及apm的指標的重要性,多側重於收據的收集和存儲。若是不對這些數據進行數據分析,那麼就沒有收集的意義了。經過數據分析和挖掘,讓數據產生價值。一直以來我認爲devops必須是一個閉環,即apm,日誌,監控着三大系統的數據,必須通過分析對dev和ops有價值。
數據可視化是大數據的『最後一千米』,作好可視化是對於數據分析是重要的。
今天,主要介紹redash這款數據分析的利器。mysql

redash簡介

redash是一款開源的BI工具,提供了基於web的數據庫查詢和數據可視化功能。
圖片描述nginx

  • 支持 SQL, NoSQL, Big Data and API data等20幾種常見的數據源:

圖片描述

基本上知足了大多數的場景。相比
superset,除了上手簡單,支持influxdb等時序數據庫。這點對於監控數據分析頗有優點。git

  • sql友好的SQL editor,更加高效的編寫複雜的sql

sql editor

隨時寫,隨時查,實時看到查詢的效果github

  • 支持豐富的可視化展現形式web

    • Boxplot
    • Chart - Line, Bar, Area, Pie, Scatter
    • Cohort
    • Counter
    • Funnel
    • Map
    • Pivot Table
    • Sankey
    • Sunburst
    • Word Cloud

圖片描述

  • 角色權限相關,支持ldap等,方便與企業內部的用戶體系打通。

安裝和簡單使用

安裝

若是是想直接體驗的話,docker-compose部署最簡單,redashgithub倉庫中直接提供了docker-compose.production.yml文件,直接docker-compose up -d 便可。redis

# This is an example configuration for Docker Compose. Make sure to atleast update
# the cookie secret & postgres database password.
#
# Some other recommendations:
# 1. To persist Postgres data, assign it a volume host location.
# 2. Split the worker service to adhoc workers and scheduled queries workers.
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_WEB_WORKERS: 4
    restart: always
  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"
      QUEUES: "queries,scheduled_queries,celery"
      WORKERS_COUNT: 2
    restart: always
  redis:
    image: redis:3.0-alpine
    restart: always
  postgres:
    image: postgres:9.5.6-alpine
    # volumes:
    #   - /opt/postgres-data:/var/lib/postgresql/data
    restart: always
  nginx:
    image: redash/nginx:latest
    ports:
      - "80:80"
    depends_on:
      - server
    links:
      - server:redash
    restart: always

經過compose文件能夠看出,redash依賴redis和pgsql數據庫。redis用來緩存一些查詢result,而pgsql是元數據庫,目前不支持mysql替換pgsql。sql

其餘安裝方式,見官方文檔docker

簡單使用

先上一張實際的效果圖:數據庫

圖片描述

包含了couter和area chart。
數據源包括influxdb時序數據庫,和mysql業務庫。後端

圖片描述
其中audit-middware 實際上是Query Results庫。Query Results Data Source 容許你在一些已經存在的查詢結果之上再作一些高級的查詢, 這樣就能夠輕易合併一些查詢結果。

總結

在實際使用中,redash和superset各有優劣。根據本身的場景來選擇吧。查閱資料的過程當中,已經有人對redash作了二次開發,這也許是深度使用的必經之路。爲何非要使用這種開源BI可視化工具?由於若是是先後端配合的話,工做量會很大。並且也很難實現隨時修改隨時上線。不過這取決於前期數據的完整性。

相關文章
相關標籤/搜索