 Doris的数据导入机制以及原子性保证Doris 的数据导入事务及原子性保证 杨政国 百度资深研发工程师 Doris Committer 01 Doris简介 导入的问题 02 03 Doris中的导入 使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • Checkpoint Doris中的导入 03 举个例子 • label: 用来标示一次导入的一份数据 • status: 表示数据状态,是否已经生效 • txnId: Doris 内部事务id,用来唯一标示一次导入事务 03 Doris 中的导入 03 Doris 中的导入 LABEL 导入任务 的标识 查看对应 导入任务 的执行情 况 用户可以 自定义 防止用户 重复导入 同一批次 同一批次 数据使用 相同的label Label • 为了保证At-Most-Once 语意, 用户同一批次数据需要使用相同的Label 03 Doris 中的导入 Prepared 事务和两阶段提交 • FE 充当协调者 • Prepare 阶段下发任务和写入数据 • Submit阶段 • 数据状态改为COMMITED • publish 版本 • 状态改为 VISIBLE Request-to-prepare0 码力 | 33 页 | 21.95 MB | 1 年前3 Doris的数据导入机制以及原子性保证Doris 的数据导入事务及原子性保证 杨政国 百度资深研发工程师 Doris Committer 01 Doris简介 导入的问题 02 03 Doris中的导入 使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • Checkpoint Doris中的导入 03 举个例子 • label: 用来标示一次导入的一份数据 • status: 表示数据状态,是否已经生效 • txnId: Doris 内部事务id,用来唯一标示一次导入事务 03 Doris 中的导入 03 Doris 中的导入 LABEL 导入任务 的标识 查看对应 导入任务 的执行情 况 用户可以 自定义 防止用户 重复导入 同一批次 同一批次 数据使用 相同的label Label • 为了保证At-Most-Once 语意, 用户同一批次数据需要使用相同的Label 03 Doris 中的导入 Prepared 事务和两阶段提交 • FE 充当协调者 • Prepare 阶段下发任务和写入数据 • Submit阶段 • 数据状态改为COMMITED • publish 版本 • 状态改为 VISIBLE Request-to-prepare0 码力 | 33 页 | 21.95 MB | 1 年前3
 百度智能云 Apache Doris 文档导入作业的标识。每个导入作业,都有一 个在单 database 内部唯一的 Label。 表示导入数据是否可见。如果可见,显示 ,如果不可见,显示 。 为这个 insert 对应的导入事务的 id。 字段会显示一些其他非预期错误。 当需要查看被过滤的行时,用户可以通过如下语句 返回结果中的 URL 可以用于查询错误的数据,具体见后面 查看错误行 查看错误行 小结。 数据不可 2. 超时时间 INSERT 操作的超时时间由 会话变量 控制。默认为5分钟。超时则作业会被取消。 3. Label 和原子性 INSERT 操作同样能够保证导入的原子性,可以参阅 导入事务和原子性 文档。 当需要使用 作为 insert 操作中的查询部分时,必须指定 和 部分。 4. 过滤阈值 与其他导入方式不同,INSERT 操作不能指定过滤阈值( )。默认的过滤阈值为 过 SHOW LOAD 命令查看。 2. 取消导入任务 已提交切尚未结束的导入任务可以通过 CANCEL LOAD 命令取消。取消后,已写入的数据也会回滚,不会生效。 3. Label、导入事务、多表原子性 Doris 中所有导入任务都是原子生效的。并且在同一个导入任务中对多张表的导入也能够保证原子性。同时,Doris 还可以 LOAD LOAD LABEL example_db LABEL0 码力 | 203 页 | 1.75 MB | 1 年前3 百度智能云 Apache Doris 文档导入作业的标识。每个导入作业,都有一 个在单 database 内部唯一的 Label。 表示导入数据是否可见。如果可见,显示 ,如果不可见,显示 。 为这个 insert 对应的导入事务的 id。 字段会显示一些其他非预期错误。 当需要查看被过滤的行时,用户可以通过如下语句 返回结果中的 URL 可以用于查询错误的数据,具体见后面 查看错误行 查看错误行 小结。 数据不可 2. 超时时间 INSERT 操作的超时时间由 会话变量 控制。默认为5分钟。超时则作业会被取消。 3. Label 和原子性 INSERT 操作同样能够保证导入的原子性,可以参阅 导入事务和原子性 文档。 当需要使用 作为 insert 操作中的查询部分时,必须指定 和 部分。 4. 过滤阈值 与其他导入方式不同,INSERT 操作不能指定过滤阈值( )。默认的过滤阈值为 过 SHOW LOAD 命令查看。 2. 取消导入任务 已提交切尚未结束的导入任务可以通过 CANCEL LOAD 命令取消。取消后,已写入的数据也会回滚,不会生效。 3. Label、导入事务、多表原子性 Doris 中所有导入任务都是原子生效的。并且在同一个导入任务中对多张表的导入也能够保证原子性。同时,Doris 还可以 LOAD LOAD LABEL example_db LABEL0 码力 | 203 页 | 1.75 MB | 1 年前3
 Apache Doris 在美团外卖数仓中的应用实践Join在Doris中实现的关键点如下: 数据导入时保证数据本地性。 查询调度时保证数据本地性。 数据Balance后保证数据本地性。 查询Plan的修改。 Colocate Table元数据的持久化和一致性。 Hash Join的粒度从Server粒度变为Bucket粒度。 Colocate Join的条件判定。 关于Doris Colocate Join的更多实现细节,可以参考《Apache Doris0 码力 | 8 页 | 429.42 KB | 1 年前3 Apache Doris 在美团外卖数仓中的应用实践Join在Doris中实现的关键点如下: 数据导入时保证数据本地性。 查询调度时保证数据本地性。 数据Balance后保证数据本地性。 查询Plan的修改。 Colocate Table元数据的持久化和一致性。 Hash Join的粒度从Server粒度变为Bucket粒度。 Colocate Join的条件判定。 关于Doris Colocate Join的更多实现细节,可以参考《Apache Doris0 码力 | 8 页 | 429.42 KB | 1 年前3
 SelectDB案例 从 ClickHouse 到 Apache Doris标签上下线,将低价值标签和指标下线处理后,后续数据不再写入,减少写入和存 储代价。 2、降低数据链路成本。 Doris 架构非常简单,只有 FE 和 BE 两类进程,不依赖其他组件,并通过一致性协议来保 证服务的高可用和数据的高可靠,自动故障修复,运维起来比较容易;  高度兼容 MySQL 语法,支持标准 SQL,极大降低开发人员接入使用成本;  支持多种联邦查询方式,支持对0 码力 | 12 页 | 1.55 MB | 1 年前3 SelectDB案例 从 ClickHouse 到 Apache Doris标签上下线,将低价值标签和指标下线处理后,后续数据不再写入,减少写入和存 储代价。 2、降低数据链路成本。 Doris 架构非常简单,只有 FE 和 BE 两类进程,不依赖其他组件,并通过一致性协议来保 证服务的高可用和数据的高可靠,自动故障修复,运维起来比较容易;  高度兼容 MySQL 语法,支持标准 SQL,极大降低开发人员接入使用成本;  支持多种联邦查询方式,支持对0 码力 | 12 页 | 1.55 MB | 1 年前3
共 4 条
- 1













