Apache Doris 在美团外卖数仓中的应用实践: 技术权衡 MOLAP :通过预计算,提供稳定的切片数据,实现多次查询一次计算,减轻了查询时的计算压力,保证 了查询的稳定性,是“空间换时间”的最佳路径。实现了基于Bitmap的去重算法,支持在不同维度 下去重指标的实时统计,效率较高。 ROLAP :基于实时的大规模并行计算,对集群的要求较高。MPP引擎的核心是通过将数据分散,以实现 CPU、IO、内存资源的分布,来提升并行计算能力。在当前数据存储以磁盘为主的情况下,数据S CPU,仍然是资源的短板。因此,高频的大规模汇 总统计,并发能力将面临较大挑战,这取决于集群硬件方面的并行计算能力。传统去重算法需要 大量计算资源,实时的大规模去重指标对CPU、内存都是一个巨大挑战。目前Doris最新版本已经 支持Bitmap算法,配合预计算可以很好地解决去重应用场景。 3 / 8 Apache [shuffle] C t6 ON ((t1.dt = t6.dt) AND (t1.id = t6.id)) where t1.dt in (xxx days); Bitmap 精确去重 Doris之前实现精确去重的方式是现场计算的,实现方法和Spark、MapReduce类似: 对于上图计算PV的SQL,Doris在计算时,会按照下图的方式进行计算,先根据page列和user_id 列group0 码力 | 8 页 | 429.42 KB | 1 年前3
百度智能云 Apache Doris 文档HLL(HyperLogLog) 类型是一个二进制类型。HLL 类型只能用于聚合类型的表(Aggregation Table),并且必须指定聚合类型为 HLL_UNION。 HLL 类型主要用于非精确快速去重场景下,对数据进行预聚合。 HLL列只能通过配套的 hll_union_agg、hll_cardinality、hll_hash 进行查询或使用。 BITMAP 数据类型 BITMAP 数据类型 BITMAP 类型是一个二进制类型。BITMAP 类型只能用于聚合类型的表(Aggregation Table),并且必须指定聚合类型为 BITMAP_UNION。 BITMAP 类型主要用于精确去重场景下,对数据进行预聚合。同时也可以用于如用户画像场景存放用户ID等。 BITMAP 列只能通过配套的 BITMAP 函数进行查询和使用。 mysql> select cast(1234 as "yyyyyyyyyyyyyyyyyyyyyyyyyy" ));; EXPORT EXPORT Baidu 百度智能云文档 SQL手册 36 一个 Export 作业会拆分成多个子任务(执行计划)去执行。有多少查询计划需要执行,取决于总共有多少 Tablet,以及一个查 询计划最多可以分配多少个 Tablet。 因为多个查询计划是串行执行的,所以如果让一个查询计划处理更多的分片,则可以减少作业的执行时间。0 码力 | 203 页 | 1.75 MB | 1 年前3
SelectDB案例 从 ClickHouse 到 Apache Doris响应解决。 同时我们也利用 Doris 的特性,解决了架构 1.0 中较为突出的问题。 数仓层:Apache Doris 的 Aggregate 数据模型可支持部分列实时更新,因此我们去 掉了 DWM 集市层的构建,直接增量到 Doris / ES 中构建宽表,解决了架构 1.0 中 上游数据更新延迟导致整个宽表延迟的问题,进而提升了数据的时效性。数据(指 标、标签等)通过 Spark 沟通后,确定后续版本 Unique 模型也将支持部分列更新。 Duplicate 模型区别于 Aggregate 和 Unique 模型,数据完全按照导入的明细数据 进行存储,不会有任何预聚合或去重操作,即使两行数据完全相同也都会保留,因 此 Duplicate 模型适用于既没有聚合需求,又没有主键唯一性约束的原始数据存储。 确定数据模型之后,我们在建表时如何对列进行命名呢?可以直接使用指标或者是标签的名0 码力 | 12 页 | 1.55 MB | 1 年前3
共 3 条
- 1













