返回

告别宽表,用 DQL 成就新一代 BI

见解分享

作为一名见多识广的 BI 专家,在仔细思量之后,我决定用近 2000 个字讲讲告别宽表的 BI 解决方案。

什么是 DQL?

DQL 的全称是 Dimensional Query Language,直译就是维度查询语言,通常的英文翻译叫作 DSL,即 Domain Specific Language。

很多同学对于 DQL 可能有点陌生,但 DSL 想必大家都不会陌生,典型的 DSL 有 SQL、XML 等等,DQL 其实就是一种 DSL。

DQL 被用于一些领域里,作为一种简化开发的工具,比如说 HiveQL 就是一种 DQL,专门用于存储数据的 Hive 项目。

为什么要用 DQL 做 BI?

如果用通俗的话语来说,DQL 就是数据语言,它能够帮助我们去更好地理解数据、查询数据。

而 BI 呢?一方面它是一门技术,另一方面,也可以理解为一种思想。

传统的 BI 工具都是偏技术驱动,而 DQL 是一种更偏向业务驱动的方式,它可以让人们去思考底层的数据结构,分析数据,从而更好地应用数据。

DQL 带来什么好处?

DQL 的好处可以归结为以下几点:

  • 降低学习门槛:DQL 使得 BI 的学习难度大大降低,几乎与传统的表格工具类似,但 DQL 却能够更好地支持多维数据分析,是普通用户接触 BI 最好的选择。
  • 提高数据处理效率:在基于 DQL 的 BI 工具中,SQL 都是并行处理的,这大大提高了数据处理效率。
  • 提高分析效率:基于 DQL 的 BI 工具能够帮助用户快速创建报表和仪表盘,大幅提高分析效率。

如何告别宽表?

告别宽表的前提,就是建立一个宽表,我们以实践的方式来举一个例子。

假设我们有一个订单表,它的列非常多,包括订单编号、下单时间、商品编号、商品名称、商品单价、商品数量、收货地址等。

这种表一般我们称为宽表,好处是信息比较完整,但缺点也很明显:

  • 不利于数据存储:如果数据量很大,存储成本会非常高。
  • 不利于数据查询:因为列太多,查询时需要进行复杂的关联,影响查询效率。

为了解决这些问题,我们需要将宽表拆分为多个窄表,也就是将一个表拆分成多个表。

比如,我们可以将订单表拆分为订单主表和订单明细表,订单主表只包含订单编号、下单时间、收货地址等信息,订单明细表只包含订单编号、商品编号、商品名称、商品单价、商品数量等信息。

这样,我们就将宽表拆分成了两个窄表,既降低了存储成本,又提高了查询效率。

结束语

目前市场上有很多基于 DQL 的 BI 工具,比如 Apache Kylin、Apache Druid、ClickHouse 等。

感兴趣的同学可以去尝试一下,我相信你们一定会喜欢上 DQL 的。