当前位置: 首页 > news >正文

数据分析可视化03 技术框架:数据可视化分析的两种武器

上一节,我介绍了数据可视化分析方法,带你了解了数据可视化分析的建设目标、工作方法和工作流程。本节内容,我们来学习数据可视化分析两类主要技术:工具平台开发框架

数据可视化技术完整的知识结构如下图所示:

Drawing 1.png

本节知识结构图

本节课,我将介绍主流的数据可视化分析工具、数据可视化开源框架分别有哪些,让大家对数据可视化技术资源有一个全局的认知。同时,我会重点介绍一款开源的数据可视化分析工具:Redash,包括:Redash 的官方网站源码资源安装部署功能模块

工具平台

数据可视化分析有很多现成的、可以直接使用的工具平台,这些工具平台包括开源版本和商业版本,常用的开源数据可视化分析工具平台包括:Redash、Metabase 和 Superset,常用的数据可视化分析工具平台包括:PowerBI、Tableau、QuickBI、Sugar 和网易有数等。这些工具平台提供的功能通常包括:数据源管理、即席查询、数据可视化和仪表盘等核心功能。

我将以开源框架 Redash 作为分析对象,介绍数据可视化分析平台提供的业务能力。

运行演示

在介绍 Redash 相关的功能之前,我们首先来看一下 Redash 运行之后的样子。

Redash 提供的核心功能有 4 个:

  • 数据源管理

  • SQL 即席查询

  • 数据可视化

  • 数据仪表盘

数据源管理,是 SQL 即席查询、数据可视化和数据仪表盘设计等功能的前置条件,使用 Redash 的第一步。我们首先来看,数据源管理的功能界面:

Drawing 2.png

数据源管理

创建数据源之后,就可以基于配置好的数据源,进行 SQL 即席查询。Redash 的 SQL 查询功能操作界面如下图所示:

Drawing 3.png

SQL 即席查询

Redash 支持对 SQL 查询结果进行可视化展现,通过可视化图表的方式,呈现数据特征,如下图所示:

Drawing 4.png

数据可视化

Redash 生成的图表,可以组织到一个称为仪表盘的页面,核心指标、相关的图表都可以通过该页面呈现,起到相关内容聚合的作用。

Drawing 5.png

数据仪表盘

以上内容介绍了数据可视化分析工具 Redash 核心功能的运行演示界面,其目的是让大家对于 Redash 的核心功能有一个初步的了解。接下来,我将带你了解 Redash。

官方网站

Redash 是一个开源项目,它有一个自己官方网站,地址为:https://redash.io/,其中会有一些开放源码。官网提供的主要内容是相关的用户手册和学习环境。

Drawing 6.png

Redash 官方网站

Redash 官方提供了一个免费的 Redash 学习环境,可以通过注册账号,获得试用,具体的注册方法和需要完善的信息如下图所示:

Drawing 7.png

注册 Redash 账号

注册完成以后,你可以获得一个免费的 Redash 的学习环境。注册登录后的界面如下图所示:

Drawing 8.png

Redash 学习环境

通过 Redash 官方提供的学习环境,我们可以拥有一个真实的,可以直接体验 Redash 功能的工作空间。同时结合用户使用教程,我们可以快速掌握 Redash 的核心功能。具体的用户帮助手册链接地址为:https://redash.io/help/user-guide/getting-started。

该页面提供了 Redash 核心功能的使用说明,包括:快速入门、数据源管理、数据查询、数据可视化、仪表盘设计、权限管理和接口管理等模块,具体的帮助功能入口页面如下图所示:

Drawing 9.png

用户帮助页面

到这里,我们就获得了 Redash 的学习环境和相关的用户使用手册信息。接下来我将继续介绍,如何安装和部署 Redash 的开发环境。

源码资源

Redash 是一个开源的、免费的数据可视化分析的工具,介绍 Redash 的安装部署之前,我们首先来看一下 Redash 的源码资源,其中包括 2 个项目:

  1. Redash 的程序源码,地址为https://github.com/getredash;

  2. Redash 的安装脚本,地址为https://github.com/getredash/setup。

Redash 的程序源码,包括前端程序和后端相应程序,源码的目录结构如下图所示:

Drawing 10.png

Redash 源码结构

Redash 的源码支持多种安装方式,其中最为便捷的方式是基于 Docker 的模式。同时,Redash 的作者提供了一个完整的安装脚本,我们可以使用这个脚本进行全自动化的安装。该脚本主要支持的是Ubuntu 18.0.4 版本,AWS、GCE 等平台的安装,可以参照用户手册进行。Redash 安装脚本项目内容结构如下图所示:

Drawing 11.png

Redash 安装脚本源码结构

通过脚本,我们可以实现基于 Docker 模式下的,Redash 环境的自动安装。

以上,我介绍了 Redash 的源码资源和安装脚本的基本情况。如果你想要了解如何基于 Redash 构建开发环境,并进行二次开发,定制自己的数据可视化分析平台,欢迎在评论区中留言。

接下来,我再介绍一下 Redash 的安装方法。

安装步骤

Redash 的安装部署,最简单的方式是通过脚本安装。

我们的实验环境,是一个干净的 Ubuntu18.0.4 环境,具体的安装步骤包括三步:

  1. 下载脚本项目;

  2. 执行安装脚本;

  3. 结果验证。

安装脚本项目就是前面我们在源码资源中所介绍的开源项目,可以通过指令:git clonehttps://github.com/getredash/setup.git,下载到本地,然后进入项目根目录,并对 setup.sh 脚本文件,赋予程序执行权限:cd setup chmod +x setup.sh。接下来通过调用:sudo ./setup.sh 执行安装脚本

项目的安装过程中,会默认完成三件事情:安装 docker、下载 redash 映像文件,配置和启动。安装过程的执行界面如下图所示:

Drawing 12.png

Redash 安装脚本执行

项目安装完成以后,无须任何额外操作,即可以通过浏览器访问,默认端口 5000,默认访问页面为账号注册页面。具体的访问界面截图如下所示:

Drawing 13.png

Redash 运行界面

关于 Redash 的安装部署,需要特别强调的是,基于脚本的安装方式,因为运行时间较长,期间会因为网络原因导致下载失败,所以需要进行多次重复执行。

功能详述

Redash 提供的核心功能包括:数据源管理SQL 查询数据可视化数据仪表盘这 4 个部分,其功能结构如下:

Drawing 15.png

Redash 核心功能

数据源管理提供主流数据源的连接和配置。Redash 支持当前主流的关系型数据库、非关系型数据和文档数据,具有独立的数据源管理功能,可以实现自定义数据源的连接和使用。

Redash 支持的数据源清单,可以在帮助文档中查看,详细的地址为:https://redash.io/help/data-sources/querying/supported-data-sources。完整的数据源类型清单如下表所示:

数据源云托管自管
Amazon Athena
Amazon DynamoDB
Amazon Redshift
Axibase Time Series Database
Cassandra
ClickHouse
CockroachDB
CSV
Databricks
DB2 by I
Druid
Elasticsearch
Google Analytics
Google BigQuery
Google Spreadsheets
Graphite
Greenplum
Hive
Impala
InfluxDB
JIRA
JSON
Apache Kylin
OmniSciDB (Formerly MapD)
MemSQL
Microsoft Azure Data Warehouse / Synapse
Microsoft Azure SQL Database
Microsoft SQL Server
MongoDB
MySQL
Oracle
PostgreSQL
Presto
Prometheus
Python
Qubole
Rockset
Salesforce
ScyllaDB
Shell Scripts
Snowflake
SQLite
TreasureData
Vertica
Yandex AppMetrrica
Yandex Metrica

Redash 对我们日常数据可视化分析工作中,常用的数据源都提供了连接支持能力,包括:MySQL、Oracle、Hive、Spark、Presto 等。

建立完数据连接之后,我们就可以进行数据 SQL 查询了。Redash 支持主流数据源,也集成了多种数据源的 SQL 标准和规范,你可以按照相关数据源的语法规范,书写 SQL 语句。同时,Redash SQL 查询功能提供了语法高亮、自动格式化、变量支持、历史纪录保存、自动补全等功能。SQL 查询的输出结果,默认以表格形式输出,并支持翻页功能。

SQL 查询输出的数据结果,除了支持以表格的形式输出之外,也支持数据可视化,我们可以通过图表可视化配置功能,进行结果数据的可视化呈现设计,查询结果数据可视化的配置界面如下图所示:

Drawing 16.png

图表设置

上图中,左侧部分是图表属性设置参数,右侧部分是实时的数据预览功能。通过图表可视化,我们可以直观地发现数据所具有的特征。一个数据查询结果,可以通过多个图表进行可视化呈现,设计出的可视化图表,也可以保存下来,并且发布出去,以供后续环节使用。

发布后的数据图表,可以作为数据仪表盘的一部分,整合到一个页面进行呈现,即数据仪表盘。数据仪表盘是业务主题相关的数据图表的集中呈现,通常情况下,我们把同一业务主题的可视化图表,整合到同一个页面进行呈现。数据仪表盘支持创建、保存和发布,发布后的数据仪表盘,可以在多个用户之间共享。

开源框架

数据可视化分析有很多现成的、可以直接复用的开源技术框架,其中常用的前端 JavaScript 图表可视化框架有 Echarts、HightCharts、D3.js;Python 数据处理开源框架有 Numpy、Pandas、Matplot;Python 机器学习框架有 Sklearn、TensorFlow、PyTorch。

通过这些框架,我们可以实现类似 Redash 提供的数据可视化呈现能力,而事实上,Redash 的实现就是基于这些技术进行的。

关于如何基于这些开源框架,构建数据可视化图表,我将在“模块二:环境部署篇”“模块三:实战案例篇”进行逐个图表的,逐项功能的详细介绍,在此不做赘述。

小结

本节内容,介绍了主流的数据可视化分析技术,包括工具平台和开源框架,并且详细介绍了开源的数据可视化分析工具 Redash 的官方资源、安装部署和功能模块。

在学习这节课之前,你可能会疑惑:通过本课程的学习,是否可以掌握数据仪表盘的设计?但在学完之后,相信你已经掌握了基于数据可视化工具平台 Redash 设计仪表盘的思路和方法。如何基于开源框架,自己动手构建数据仪表盘的内容,我会在课程的后续部分进行介绍。


精选评论

**珍:

老师,请问安装redash一定要在Ubuntu18.04的环境下么?如果安装在20.04是否可以?

    讲师回复:

    当前最新版版本支持的是18.04,更新版本没有实测,可以自己参照当前方法尝试一下

**宗:

Redash展现的图表可以随着数据的变化而变化吗?

    编辑回复:

    Redash的仪表盘支持定时刷新机制,可以满足这个需求。老师在05课时的题外里附加了图片哦等课程更新就可以更直观地看到了

**军:

Redash 是否可以满足在你工作中的80%或者更多的数据可视化需求?若不能完全满足如何解决的

    讲师回复:

    数据可视化分析三大开源软件:redash、superset、metabase,其实都是很不错的。我曾经通读过redash源码,基于redash进行二次开发也是可以的。Redash的核心价值在于SQL查询和报表设计,如果不考虑交互体验,其核心功能满足80%的需求,是没问题的。不过考虑到国人的阅读习惯,则需要打个折扣,建议从redash进行二次开发。

**军:

要是基于redash或者superset二次开发需要什么基础的技能?

    讲师回复:

    redash的技术架构设计前端和后台两部分,前端用的react + angular,后台用的Python + Celery ;Superset后端是python,前端忘记了。

*迪:

Ubuntu 18.04 虚拟机,执行 sudo ./setup.sh 后,执行很久,最后返回拒绝连接,是为什么呀?

    讲师回复:

    这个应该也是网络原因。

**6342:

redash跟grafana在功能上是否有什么相似的地方?是竞争关系吗?grafana也是做数据展示用的呢

    讲师回复:

    grafana不了解,redash相类似得,可以参考metabase和superset。

*迪:

老师,请问下。我按照文章,没把 redash 安装成功。docker是安装了,最后报这个错,–2020-09-04 09:09:44-- https://raw.githubusercontent.com/getredash/setup/master/data/docker-compose.ymlResolving raw.githubusercontent.com (raw.githubusercontent.com)… ::Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|:😐:443… failed: Connection refused.这是为什么呢?而且,这个路径,本身就打不开。为什么会去这个路径找yml 文件呢?

    讲师回复:

    实测是网络问题,我是早上四点多,折腾成功的,过程中反复出现各种问题,遇到过这个。如果实在不行,就只能分步骤安装了,这个你可以把自动化安装的脚本拆开,逐步操作,比较考验动手能力。

**琴:

老师,可以在Windows系统下安装redash吗?或者说Windows系统下有什么可视化工具吗?

    讲师回复:

    windows安装是可以的,Redash7.0 实际部署成功过,不过用的python2.7,相对比较复杂。Celery4.x以后的版本不支持在windows上运行,需要特殊处理。GitHub上直接下载的源码,如果使用python3.x版本调试,需要修正大量的代码,这就比较考验个人的代码调试和错误处理能力了。

**珍:

redash过了30天试用期之后,是否要付费才能继续使用?

    讲师回复:

    社区版本是免费的的,可以一直用,官方没有商业版,目前有国内的人弄了一个中文版收费,可以忽略。

**明:

Windows系统不能用吗?

    讲师回复:

    windows安装是可以的,Redash7.0 实际部署成功过,不过用的python2.7,相对比较复杂。Celery4.x以后的版本不支持在windows上运行,需要特殊处理。

jyunnkoLee:

redash等框架能处理的数据量大概是什么级别的?

    讲师回复:

    Redash只是一个前端SQL执行和结果可视化工具,能处理的数据量级别取决于其对应的后端数据服务器(比如MySQL,比如Spark等)和数据的聚合程度,后端数据服务器的能力和数据聚合程序,决定了Redash的数据处理能力。

相关文章:

  • 模拟实现atoi
  • Go 和 C# 的速度比较来了
  • 谷歌Guava LoadingCache介绍
  • 第二章:微服务架构构建
  • Python 基础阶段
  • 我发现凡是给offer的公司,面试时基本不问技术细节,那些问得又多又细的公司,后面就没下文了
  • 【微搭低代码】JavaScript基础知识-变量定义及初始化
  • Linux常见指令(下)
  • Vue组件学习、组件通信
  • 西瓜书研读——第五章 神经网络:BP神经网络
  • 有了这个库,这些爬虫都不用亲自写了!
  • Java程序设计之(一)MySQL的交互-学生信息成绩管理系统
  • MATLAB | 全网唯一! 又双叒叕一种弦图绘制
  • 【web项目】前端生日礼物--注册页面篇
  • 2022华为杯数学建模研赛选题建议和思路分析
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • centos安装java运行环境jdk+tomcat
  • CSS 三角实现
  • CSS中外联样式表代表的含义
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java新版本的开发已正式进入轨道,版本号18.3
  • leetcode98. Validate Binary Search Tree
  • OSS Web直传 (文件图片)
  • PaddlePaddle-GitHub的正确打开姿势
  • uni-app项目数字滚动
  • Web设计流程优化:网页效果图设计新思路
  • 电商搜索引擎的架构设计和性能优化
  • 解决iview多表头动态更改列元素发生的错误
  • 看域名解析域名安全对SEO的影响
  • 区块链将重新定义世界
  • 使用API自动生成工具优化前端工作流
  • 双管齐下,VMware的容器新战略
  • 探索 JS 中的模块化
  • 通过几道题目学习二叉搜索树
  • 通信类
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​2020 年大前端技术趋势解读
  • #define、const、typedef的差别
  • #if 1...#endif
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)【Hibernate总结系列】使用举例
  • .bat文件调用java类的main方法
  • .describe() python_Python-Win32com-Excel
  • .NET DataGridView数据绑定说明
  • .Net IOC框架入门之一 Unity
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .netcore如何运行环境安装到Linux服务器
  • .Net语言中的StringBuilder:入门到精通
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面