Apache Doris 在美团外卖数仓中的应用实践Spark大数据博客 - https://www.iteblog.com 所得的应用场景,美团平台使用Kylin作为公司的主要MOLAP引擎。MOLAP是预计算生产,在增 量业务,预设维度分析场景下表现良好,但在变化维的场景下生产成本巨大。例如,如果使用最 新商家类型回溯商家近三个月的表现,需要重新计算三个月的Cube,需花费几个小时,来计算近 TB的历史数据。另外,应对非预设维度分析,MOLAP模型需要重新进行适配计算,也需要一定的 ”为单元,服务于“商圈”内的商家。“商圈”是一个组织机构维度中的最小层级,源于外卖组织的特 点,“商圈”及其上层组织机构是一个变化维度,当“商圈”边界发生变化时,就导致在往常日增量的 业务生产方式中,历史数据的回溯失去了参考意义。在所有展现组织机构数据的业务场景中,组 织机构的变化是一个绕不开的技术问题。此外,商家品类、类型等其它维度也存在变化维的问题 。如下图所示: 数据生产面临的挑战 数据爆炸,每日使用最新维度对历史数据进行 预计算的大量历史数据实际使用率低下,实际工作中对历史的回溯80%集中在近1个月左 右,但为了应对所有需求场景,业务要求计算近半年以上的历史。 不支持明细数据的查询。 解决方案:引入MPP引擎,数据现用现算 既然变化维的历史数据预计算成本巨大,最好的办法就是现用现算,但现用现算需要强大的并行 计算能力。OLAP的实现有MOLAP、ROLAP、HOLAP三种形式,MOLAP以Cube为表现形式,但计 算与管理成本0 码力 | 8 页 | 429.42 KB | 1 年前3
SelectDB案例 从 ClickHouse 到 Apache Doris引擎出现负载较 高的情况,无法通过降低用户查询避免集群负载过高报错的问题。 数据架构 3.0 针对指标和标签定义口径不统一,数据使用和管理难度较高的问题,我们继续对架构进行升 级。数据架构 3.0 主要的变化是引入了专门的语义层,语义层的主要作用是将技术语言转 换为业务部门更容易理解的概念,目的是将标签 (tag)与指标(metric)变为“一等公民”,作为 数据定义与管理的基本对象。 引入语义层的优势有: 中,我们 将语义层变为架构的中枢节点,目标是对所有的指标和标签统一定义,从计算-加速-查询实 现中心化、标准化管理,解决数据管理机制割裂的问题。 5 语义层作为架构中枢节点所带来的变化: 数仓层:语义层接收 SQL 触发计算或查询任务。数仓从 DWD 到 DWS 的计算逻 辑将在语义层中进行定义,且以单个指标和标签的形式进行定义,之后由语义层来 发送命令,生成 SQL 命令给数仓层执行计算。 为了实现标签灵活上下架,我们通过统计标签的使用情况来分析标签的价值,将低 价值的标签进入下架流程。下架指的是对元信息进行状态标注,在下架标签重新上 架之前,不会继续导入其数据,元信息中数据可用时间也不会发生变化。 对于实时新增标签/指标,我们基于名称 ID 的映射在 Doris 表中预先创建适量 ID 列,当标签/指标完成元信息录入后,直接将预留的 ID 分配给新录入的标签/指标, 避免在查询高峰期因新增标签/指标所引起的0 码力 | 12 页 | 1.55 MB | 1 年前3
Doris的数据导入机制以及原子性保证Load 异步 HDFS、BOS对象存储 MySQL Routine Load 异步 Kafka MySQL Stream load 同步 本地文件,数据流 HTTP Insert into 同步 命令行 MySQL Spark Load 异步 Spark MySQL 最佳实践 04 使用案例 • 根据数据源所在位置选择导入方式。 选择合适的导入方式 • 使用 MySQL 协议定期提交和查看导入作业。0 码力 | 33 页 | 21.95 MB | 1 年前3
百度智能云 Apache Doris 文档右操作数组成的表达式中。 +和-:可以作为单元或2元操作符。当其作为单元操作符时,如+1, -2.5 或者-col_name, 表达的意思是该值乘以+1或者- 1。因此单元操作符+返回的是未发生变化的值,单元操作符-改变了该值的符号位。用户可以将两个单元操作符叠加起来, 比如++5(返回的是正值),-+2 或者+-2(这两种情况返回的是负值),但是用户不能使用连续的两个-号,因为--被解释为后 Keywords Keywords 最佳实践 最佳实践 1. 观察导入作业进度。 可以通过返回结果中的如下字段来观察导入作业的消费进度。 1. 观察 Statistic 中 和 两个数值的变化。如果 在持续增长, 说明作业在正常消费。如果 在持续增长,则说明可能 Kafka 中已经没有需要消费的数据;或者无 法消费到 Kafka 的数据;或者遇到其他错误。 2. 观察每个 99% 如果所有导入表均完成导入,此时 LOAD 的进度为 99% 导入进入到最后生效阶段,整个导入完成后,LOAD 的进度才会改为 100%。 导入进度并不是线性的。所以如果一段时间内进度没有变化,并不代表导入没有在执行。 导入任务的类型。Broker load 的 type 取值只有 BROKER。 主要显示了导入的数据量指标 , 和 。用户可以根据第一个数值判断 where0 码力 | 203 页 | 1.75 MB | 1 年前3
共 4 条
- 1













