Doris的数据导入机制以及原子性保证• 查询性能业界领先 • 高并发查询,100台集群可达10w QPS • 流式导入单节点100MB/s,小批量导入毫 秒延迟 • 数据、元数据高可用,线上稳定服务6年 • 机器故障副本自动迁移 01 Doris简介 MySQL Tools (MySQL Networking) FE (Leader,JAVA) FE (Follower,JAVA) FE (Follower 原始数据 查询导入结果 源 操作1 操作2 处理 失败 失败 源 操作1 操作2 重试成功 额外重试 处理两次 02 导入的问题 At-Most-Once & At-Least-Once 语义 At-Most-Once语义 At-Least-Once语义 失败 源 操作1 操作2 重试成功 重试 只处理一次 Exactly-Once语义 成功 LOG 02 导入的问题 Exactly-Once Phase 2 总结 03 Doris 中的导入 • 写入带版本 • 查询带版本 多版本机制解决读写冲突 两阶段导入保证多表原子生效 • 支持并行导入 • 有冲突时按导入顺序生效,无冲突导入时并行生效 写入带版本 查询带版本 支持并行导入 冲突时按顺序生效 (多版本机制) (两阶段导入) 事务能力保证 使用案例 04 BI Application 数据加载0 码力 | 33 页 | 21.95 MB | 1 年前3
百度智能云 Apache Doris 文档长度为1个字节的有符号整型。 范围: [-128, 127] 转换: Doris可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成CHAR。 举例: SMALLINT数据类型 SMALLINT数据类型 长度: 长度为2个字节的有符号整型。 范围: [-32768, 32767] 转换: Doris可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成TINYINT,CHAR。 TINYINT,CHAR。 举例: INT数据类型 INT数据类型 长度: 长度为4个字节的有符号整型。 范围: [-2147483648, 2147483647] 转换: Doris可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成TINYINT,SMALLINT,CHAR 举例: mysql> select cast(100 as char); mysql> 9223372036854775807] 转换: Doris可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成 TINYINT,SMALLINT,INT,CHAR 举例: LARGEINT数据类型 LARGEINT数据类型 长度: 长度为16个字节的有符号整型。 范围: [-2^127, 2^127-1] 转换: Doris可以自动将该类型转换成浮点类型。使用CAST()函数0 码力 | 203 页 | 1.75 MB | 1 年前3
SelectDB案例 从 ClickHouse 到 Apache Doris但仍然无法影响上游链路,数仓层有自己的语义逻辑,加速层有自己的导入配置,这样就造 成了数据管理机制的割裂。 数据架构 4.0 在数据架构 3.0 的基础上,我们对语义层进行更深层次的应用,在数据架构 4.0 中,我们 将语义层变为架构的中枢节点,目标是对所有的指标和标签统一定义,从计算-加速-查询实 现中心化、标准化管理,解决数据管理机制割裂的问题。 5 语义层作为架构中枢节点所带来的变化: 应用层与物理引擎完成解耦,可进一步对更加灵活易用的架构进行探索:如何对相 关指标和标签进行加速,如何在时效性和集群的稳定性之间平衡等。 存在的问题: 因为当前架构是对单个标签和指标进行了定义,因此如何在查询计算时自动生成一个准确有 效的 SQL 语句是非常有难度的。如果你有相关的经验,期待有机会可以一起探索交流。 优化经验 从上文已知,为更好地实现业务需求,数据架构演进到 4.0 版本,其中 Apache Doris ) 写入 Batch 大小自适应变更:为了不占用过多 Flink 资源,我们实现了从同一个 Kafka Topic 中消费数据写入到不同 Doris 表中的功能,并且可以根据数据的大小 自动调整写入的批次,尽量做到攒批低频写入。 Doris 写入调优:针对- 235 报错进行相关参数的调优。比如设置合理的分区和分桶 (Tablet 建议 1-10G),同时结合场景对 Compaction0 码力 | 12 页 | 1.55 MB | 1 年前3
共 3 条
- 1













