跳至正文

【致敬Tableau20周年】奠定Tableau数仓与引擎的专利基石:Hyper

标签:

在之前的文章中,喜乐君详细介绍了viz QL对于Tableau可视化的重要性,另一个举足轻重的则是Hyper引擎。相比ViQL,hyper技术的介绍更少,但在构建企业级服务方面,它的重要性更胜一筹。如今,它在官网的技术介绍中甚至放在了Viz QL之前。本文将尝试搜集资料,尽可能介绍一下Hyper的魅力。

2003 年,Tableau 在斯坦福大学诞生,它脱胎于 VizQL™,一种彻底改变数据使用方式的技术,有了它,用户只需使用简单的拖放功能,即可创建复杂的可视化效果。这项重大的革新技术是一种获得专利的查询语言,它可将您的操作转换成数据库查询,然后以图形表示查询结果。

随后的突破性创新来自于 Tableau 的数据引擎技术 Hyper,它可以在几秒钟之内对几十亿行数据完成临时分析。Hyper 是 Tableau 平台的核心技术,它利用专有的动态代码生成机制和最先进的并行方法提高数据提取的生成速度及查询的执行速度。

Tableau

一、何为Hyper:高性能数据库系统

何为Hyper?根据官网介绍,Hyper 最初是慕尼黑工业大学 (TUM) 在 2010 年启动的一个学术研究项目。2015 年,它发展为一个独立的组织,目标是实现 Hyper 的产业化,并提供这项技术的商业版本。Tableau 于 2016 年收购 Hyper(眼光独到,绝对天使轮就收入囊中)。Tableau起源于MIT,Hyper起源于TUM,两所高校在数据库领域都是世界顶尖级别,两个产品的梦幻联动最终也把Tableau推向了企业级的高峰,敢于承诺“支持世界上最大规模的数据库”环境,全世界恐怕少有如此勇气者。

为什么会有这样的底气?首先,Hyper在慕尼黑工业大学也是长达 10 年的学术研究结出的硕果。简单的说,Hyper 是一种高性能的内存中数据引擎技术(fast main-memory database system),它可以直接在事务处理型数据库中高效评估分析查询,从而帮助客户更快地分析大数据集和复杂数据集。 更专业的说法是,Hyper是世界上把软硬结合来优化数据库性能的卓越玩家,从技术上优化数据库多层模式(three-level schema database)所必然带来的性能损耗。

HyPer is a fast main-memory database system designed for simultaneous OLTP and OLAP processing without compromising performance. 

1、Hyper 的独特设计 

“在过去十年,通过采用采样和摘要等方法,内存中数据引擎和分析数据库技术让查询性能得到了极大的提高。但此类性能提高是有代价的。为了优化分析工作负荷,许多系统牺牲了写入性能,而写入性能对于数据提取的快速生成和刷新至关重要。写入性能的不足会导致数据失去时效性和连接性。结果如何?人们无法及时获得他们想要分析的数据。 Hyper 的使命是提供快速的写入性能和分析工作负荷性能,从而让人们更加及时地获得数据。简单地说,Hyper 可以更快地提供最新数据,让您能够分析更大的数据集,获得更全面的信息。 ”

2、重新思考系统架构:让事务处理和分析查询具有同样的状态 

“借助 Hyper,人们可以在相同的列存储中处理事务和分析查询,获取数据后无需进行后处理。这样可以减少陈旧数据,最大限度降低专用系统之间的连接差异。Hyper 的独特方法可以在同一个系统中真正兼顾频繁读取型工作负载和频繁写入型工作负载。这意味着您可以在不影响查询速度的情况下快速创建数据提取。”(用我们的话说,这是“双赢”。) 

3、执行查询的新方法:动态代码生成

“Hyper 采用了一种新颖的即时编译执行模型。许多其他系统采用了传统的查询执行模型,这种模型并不能充分利用现代多核硬件的优势。而 Hyper 可以对查询进行优化并将其编译为自定义机器代码,从而更好地利用基础硬件。在接收到查询时,Hyper 会创建一个树结构,对其进行逻辑优化,将其用作蓝图来创建独特的程序,然后执行该程序。最终的结果是,现代硬件得到了更好的应用,查询执行速度大大提高。 ”

4、如何更好地利用硬件?morsel-driven(碎屑驱动型)并行机制 

“Hyper 的设计始终着眼于大规模多核环境。我们的并行模型以很小的工作单元(碎屑)为基础。这些“碎屑”在所有可用的核之间进行高效分配,从而让 Hyper 可以更加高效地应对核的速度差异。这样便可以更加高效地利用硬件,获得更快的性能表现。 ”

在收购之后,Hyper为Tableau带来了诸多卓越的特征。 HyPer will be integrated into Tableau’s product lines and bring a host of new capabilities to Tableau customers:

  • 全数据量更快速的分析体验 Faster analysis of data of all sizes
  • 增强的数据整合、数据转换和数据混合 Enhanced data integration, data transformation and data blending
  • 更丰富的分析扩展,包括K-means聚类及窗口函数 Richer analytics, such as k-means clustering and window functions
  • 对半结构化、非结构化大数据集的扩展支持 Expanded support for Big data efforts with semi-structure and unstructured data
  • 分析系统与事务系统的一致性 Unification of analysis and transactional systems

二、畅想未来:持续开放Hyper的技术能力

作为一种数据系统(database system),Hyper更像是一个嵌入式系统,它依赖于Tableau Desktop和Prep等应用系统,借助于内部程序和特定API接口访问。

1、Hyper API

在安装部署Tableau软件时,Hyper就会作为一个组件被安装在本机设备上,面临复杂分析时,Hyper会生成一些临时表(在它自己的目录之中)加速分析,这也是为什么关闭超大型Tableau文件时会提示“正在删除表”的提示。

借助于Tableau开放的Hyper API结构,专业用户也可以与hyper 文件交互(The Hyper API contains a set of functions you can use to automate yourinteractions with Tableau extract (.hyperfiles)其中包含:

  • 创建hyper提取文件(特别是不被Tableau支持的数据源) Create extract files for data sources not currently supported by Tableau.
  • 自定义ETL数据的自动化Automate custom extract, transform and load (ETL) processes
  • 数据查询Retrieve data from an extract file.

你会发现,Hyper API实际上承担了DML(data manipulation language)和DQL(data query language)的角色;在一定程度上,Hyper API弥补了没有数据库管理系统传统GUI可视化界面的问题——当然,也可以把Tableau Desktop视为查询界面本身。

2、在Server有限开放Hyper的功能

喜乐君倾向于把Tableau系统视为“DW/BI+ai”数仓分析一体化平台,在这里,Hyper就承担了数据仓库的重任。对于没有数据仓库的企业,这将是一个绝佳的选择;对于有企业级数据仓库的企业,这也是一个很好的部门数据集市(data marts)的选项。

目前,在Tableau server终有一个明显“限制”:发布为数据源的Tableau数据源(TDS)无法构建关系模型,只能使用数据混合。如果有一天Tableau进一步开放Hyper的功能,给予数据源和数据提取以更简单的操控方式,那么将是一个巨大的进步。


参考: