如果直接使用 COUNT(DISTINCT) 往往会占用大量内存和 IO,并且查询时间 >20s,特别是当表中有大量不同的值时,查询性能受到的影响更大,无法满足性能要求,因此我们提供以下两种方式进行优化: 方式一:首先在 Hive 中构建玩家设备 ID 全局字典表,接着将该表导入到 Doris 表对应的 Bitmap 列; 方式二:针对明细表创建物...
如果直接使用 COUNT(DISTINCT) 往往会占用大量内存和 IO,并且查询时间 >20s,特别是当表中有大量不同的值时,查询性能受到的影响更大,无法满足性能要求,因此我们提供以下两种方式进行优化: 方式一:首先在 Hive 中构建玩家设备 ID 全局字典表,接着将该表导入到 Doris 表对应的 Bitmap 列; 方式二:针对明细表创建物...
如果直接使用 COUNT(DISTINCT) 往往会占用大量内存和 IO,并且查询时间 >20s,特别是当表中有大量不同的值时,查询性能受到的影响更大,无法满足性能要求,因此我们提供以下两种方式进行优化: 方式一:首先在 Hive 中构建玩家设备 ID 全局字典表,接着将该表导入到 Doris 表对应的 Bitmap 列; 方式二:针对明细表创建物...
如果直接使用COUNT(DISTINCT)往往会占用大量内存和 IO,并且查询时间 >20s,特别是当表中有大量不同的值时,查询性能受到的影响更大,无法满足性能要求,因此我们提供以下两种方式进行优化: 方式一:首先在 Hive 中构建玩家设备 ID 全局字典表,接着将该表导入到 Doris 表对应的 Bitmap 列; 方式二:针对明细表创建物化...
进组人数使用的COUNT DISTINCT计算需要依赖明细信息,这也是之前查询基于明细数据的重要因素。必须为此类场景设计新的方案,使进组人数的计算在保证数据准确的前提下提高效率。 数据优化方案 基于以上的数据现状,我们优化的核心点是将明细数据预聚合处理,通过压缩数据来控制 Doris 查询的 Scan Rows 和 Scan Bytes。与此同...
如下是对 author_id指标进行去重的外表查询的改写结果示例。可以看到 Doris 将 count distinct算子改写为了更高效的 Bitmap 算子,并将目的表改写到了合适的物化视图表上。04 使用效果 引入自动物化系统后,不仅加快了数据模型的交付速度,还显著提升了查询效率。以下是实际测试 SQL 的提升效果:上图直观展示“数据行...
进组人数使用的COUNT DISTINCT计算需要依赖明细信息,这也是之前查询基于明细数据的重要因素。必须为此类场景设计新的方案,使进组人数的计算在保证数据准确的前提下提高效率。 数据优化方案 基于以上的数据现状,我们优化的核心点是将明细数据预聚合处理,通过压缩数据来控制 Doris 查询的 Scan Rows 和 Scan Bytes。与此同...
大数据量下字符串精确去重较慢。目前使用的是 count distinct 函数、Shuffle 和聚合算子去重,此方式算力比较慢。当前业内常见的解决方法一般是针对去重列构建字典,基于字典构建 Bitmap 索引后使用 Bitmap 函数去重。目前 Apache Doris 只支持数字类型的 Bitmap 索引,具有一定的局限性。
如果直接使用COUNT(DISTINCT)往往会占用大量内存和 IO,并且查询时间 >20s,特别是当表中有大量不同的值时,查询性能受到的影响更大,无法满足性能要求,因此我们提供以下两种方式进行优化: 方式一:首先在 Hive 中构建玩家设备 ID 全局字典表,接着将该表导入到 Doris 表对应的 Bitmap 列; ...
进组人数使用的COUNT DISTINCT计算需要依赖明细信息,这也是之前查询基于明细数据的重要因素。必须为此类场景设计新的方案,使进组人数的计算在保证数据准确的前提下提高效率。 四、数据优化方案 基于以上的数据现状,我们优化的核心点是将明细数据预聚合处理,通过压缩数据来控制Doris查询的Scan Rows和Scan Bytes。与此同时,...