告别宽表,用 DQL 成就新一代 BI
2023-11-08 08:41:54
作为一名见多识广的 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 的。