网易数帆小助手

个人签名

280篇博客

有数BI支持的数据源

网易数帆小助手2021-04-29 11:03

建立数据连接是使用BI的第一步,而建数据连接的前提是得有一个数据源,所有的报告、大屏等都是基于数据源中的数据进行绘制。可以说,数据源是BI的基石!本文将从数据源开始,向大家科普有数BI数据连接的各种知识。

 

1. 已支持的数据源

 

首先来简单看一下现阶段(2021.4)有数BI支持的数据源类型。按照不同的维度,大致划分如下:

  • 文本类数据源:Excel、CSV
  • OLTP 数据库:MySQL、Oracle、SQL Server、DB2、达梦、PostgreSQL
  • SQL on Hadoop:Hive、Spark SQL、Impala、PrestoDB、Phoenix、Transwarp Inceptor、Kylin
  • OLAP 数据库:Teradata、Druid、Clickhouse、Doris、Greenplum、HANA、Vertica、MonetDB
  • 时序数据库:InfluxDB、NTSDB
  • 搜索引擎:Elasticsearch
  • 云数据库:AnalyticDB for MySQL
  • 其他:Restful API、自定义 API、数据填报、网易猛犸

 

有数BI目前已支持30多种数据源,覆盖大部分版本和主流认证方式,已支持的数据源如下图所示:


这些数据源由有数BI的统一数据接入模块负责,系统根据用户对报告的操作进行推断,得到 SQL 后下发给数据源执行。当有数BI的可视化专家系统得到数据后,对其进行进一步处理,并绘制成专业的报表结构。

 

2. 文本处理引擎

 

对于大部分用户来说,数据往往是存放在 EXCEL 这样的文本文件中,但这种文本无法用 SQL 进行查询。针对这种情况,我们的攻城狮们设计并实现了一个高性能文本处理引擎。当用户上传了 EXCEL 或 CSV 文件后,引擎会推断每行的数据类型。当使用文本类数据源绘制图表时,引擎根据系统下发的 SQL 构建 AST,从而得到最初的逻辑计划 (Logical Plan);得到逻辑计划后,根据启发式优化器配合有数BI沉淀多年的优化规则进行进一步的优化,最后得到物理执行计划,如下图所示:


(文本处理引擎的简单实现原理)

 

3. 数据源多版本兼容

 

在第一节中有提到,有数BI支持的数据源能够覆盖到各数据源的大部分版本。其实,看似简单的功能背后隐藏着很大的玄机。以 Hive 为例,0.x, 1.x 版本和2.x 版本接入的驱动完全不同,而数据源的版本数据连接的层面对用户来说是完全透明的。在不知道用户的数据源版本、又要保证不产生驱动冲突的前提下尽可能支持更多的数据源版本,可以算是个不小的挑战。

 

为此,我们的攻城狮们在数据接入层设计了一个驱动加载器,当遇到多个版本的数据源驱动时,会优先使用该加载器。加载器会判断在某个数据连接中使用的数据源版本,并自动加载该数据源版本对应的一组驱动,从而避免不同驱动互相影响造成的问题。


(加载器的实现原理)

 

4. 认证方式

 

有数BI支持市面上主流的认证方式:

  • 用户名+密码
  • LDAP
  • Kerberos

 

对于不同的认证方式,用户只需要根据数据连接页面上的提示,上传和填写所需的内容即可建立连接。


 

5. 查询加速

 

有数BI还有一项重磅功能,就是查询加速功能。对于绝大部分用户来说,数据分析的速度自然是越快越好。尤其是数据监控场景,对查询延迟非常敏感。如何尽可能的提高查询效率,对于缩短查询时间是非常关键的。

 

依托于有数BI的智能缓存,数据接入层能够对报告的热点数据进行加速查询。将报告的 PV, UV 等数据代入到缓存优先级模型中,以此得到最优的查询效率。经测试,在复杂模型中多表关联的情况下,查询性能较不使用查询加速可提升200~800倍。

 

6. 总结

 

本文介绍了有数BI在数据连接的一些知识,带您了解数据连接背后的一些硬核功能。作为一款可视化敏捷BI产品,不断追求技术突破、功能升级、服务优化是我们日常的必修课,每一次的更新,都是追求更好的体验。