 Doris的数据导入机制以及原子性保证Doris 的数据导入事务及原子性保证 杨政国 百度资深研发工程师 Doris Committer 01 Doris简介 导入的问题 02 03 Doris中的导入 使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • 频率从天级提升至分钟级 2008 • 进行了通用化改造,开始承 接公司内部其他报表系统 • 助力百度统计成为国内最大 的中文网站分析工具 2009 • 随百度业务飞速发展,对 Doris的性能、可用性、拓 展性进行了全面升级 • 承担百度所有统计报表业务 2012 01 Doris简介 04 05 06 • 全新的数据模型,查询存储 效率大幅提升 • MPP框架,支持分布式计算 2013 事务状态改为 Abort • BE 等待回收任务删除已写入数据 Phase 2 总结 03 Doris 中的导入 • 写入带版本 • 查询带版本 多版本机制解决读写冲突 两阶段导入保证多表原子生效 • 支持并行导入 • 有冲突时按导入顺序生效,无冲突导入时并行生效 写入带版本 查询带版本 支持并行导入 冲突时按顺序生效 (多版本机制) (两阶段导入) 事务能力保证 使用案例0 码力 | 33 页 | 21.95 MB | 1 年前3 Doris的数据导入机制以及原子性保证Doris 的数据导入事务及原子性保证 杨政国 百度资深研发工程师 Doris Committer 01 Doris简介 导入的问题 02 03 Doris中的导入 使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • 频率从天级提升至分钟级 2008 • 进行了通用化改造,开始承 接公司内部其他报表系统 • 助力百度统计成为国内最大 的中文网站分析工具 2009 • 随百度业务飞速发展,对 Doris的性能、可用性、拓 展性进行了全面升级 • 承担百度所有统计报表业务 2012 01 Doris简介 04 05 06 • 全新的数据模型,查询存储 效率大幅提升 • MPP框架,支持分布式计算 2013 事务状态改为 Abort • BE 等待回收任务删除已写入数据 Phase 2 总结 03 Doris 中的导入 • 写入带版本 • 查询带版本 多版本机制解决读写冲突 两阶段导入保证多表原子生效 • 支持并行导入 • 有冲突时按导入顺序生效,无冲突导入时并行生效 写入带版本 查询带版本 支持并行导入 冲突时按顺序生效 (多版本机制) (两阶段导入) 事务能力保证 使用案例0 码力 | 33 页 | 21.95 MB | 1 年前3
 TiDB 可观测性的设计与实现 陈霜TiDB 可观测性 的设计与实现 – 陈霜 About me ● 陈霜, TiDB Insight R&G Engineer, PingCAP ● chenshuang@pingcap.com ● Github: crazycs520 Agenda ● TopSQL: Bind SQL With CPU Resources ● System Table0 码力 | 39 页 | 3.97 MB | 1 年前3 TiDB 可观测性的设计与实现 陈霜TiDB 可观测性 的设计与实现 – 陈霜 About me ● 陈霜, TiDB Insight R&G Engineer, PingCAP ● chenshuang@pingcap.com ● Github: crazycs520 Agenda ● TopSQL: Bind SQL With CPU Resources ● System Table0 码力 | 39 页 | 3.97 MB | 1 年前3
 Greenplum分布式事务和两阶段提交协议数据库系统的实现 Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 Locking, 2PL)、乐观并发控制 (OCC) Durability 持久性 一个事务在提交之后,该事务对数据库的改变 是持久的。 Write Ahead Logging + 存储管理 Jim Gray于1981年VLDB描述了事务的原子性、一致性和持久性,在此基础上,Haerder和Reuter在1983年中提出了事务的隔离性并提出术语 “ACID”,自此,事务的ACID四个性质成为业内标准术语 查询、更新 用户/ 应用 DDL命令 数据库管理员 数据、元数据、索引 日志页 读、写页 元数据、 统计数据 元数据 9 存储介质的类型 ■ Volatile storage 易失性存储器 DRAM, Cache, Register ■ Non-volatile storage 非易失性存储器 Disk, SSD, NVM ■ Stable stage 稳定存储器 theoretically0 码力 | 42 页 | 2.12 MB | 1 年前3 Greenplum分布式事务和两阶段提交协议数据库系统的实现 Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 Locking, 2PL)、乐观并发控制 (OCC) Durability 持久性 一个事务在提交之后,该事务对数据库的改变 是持久的。 Write Ahead Logging + 存储管理 Jim Gray于1981年VLDB描述了事务的原子性、一致性和持久性,在此基础上,Haerder和Reuter在1983年中提出了事务的隔离性并提出术语 “ACID”,自此,事务的ACID四个性质成为业内标准术语 查询、更新 用户/ 应用 DDL命令 数据库管理员 数据、元数据、索引 日志页 读、写页 元数据、 统计数据 元数据 9 存储介质的类型 ■ Volatile storage 易失性存储器 DRAM, Cache, Register ■ Non-volatile storage 非易失性存储器 Disk, SSD, NVM ■ Stable stage 稳定存储器 theoretically0 码力 | 42 页 | 2.12 MB | 1 年前3
 HBase最佳实践及优化Conference China 2016 中国用户大会 4 HBase的模型特性 Hadoop database and NoSQL database • 基本的数据库操作CRUD • 强一致性 • 无SQL语言支持 • 稀疏的多维映射表 – 列存储 – 只用row key来定位行 – 每行可以有不同的列 – 数据有多个版本(在不同的时间点的快照信息) • 分布式的多层次映射表结构(k 具有容错特性,能够将数据持久化的非易失性 存储中 – 使用HDFS做底层存储,可利用Hadoop的压缩 Codec等减少空间占用 • 自动水平扩展 – 只需要加入新的结点即可提高存储容量和吞吐量 – 服务器能够被动态加入或者删除(用以维护和升级) – 服务器自动调整负载平衡 5 Postgres Conference China 2016 中国用户大会 HBase的原子性保证 HBase仅保证对行操作的原子性 • • 任何行级的操作是原子的 – 一条记录的Put操作要么完全成功,要么完全失败。 • 操作返回成功(success)表示操作完成 • 操作返回失败(failure)表示操作全部失败 • 超时操作可能是成功也可能失败,但不可能部分成功 – 即使跨column family的行操作也是原子的 • 支持一次性修改多行的API并不保证跨行的原 子性操作 – 一般情况下,API会在结果中分别返回执行成功、0 码力 | 45 页 | 4.33 MB | 1 年前3 HBase最佳实践及优化Conference China 2016 中国用户大会 4 HBase的模型特性 Hadoop database and NoSQL database • 基本的数据库操作CRUD • 强一致性 • 无SQL语言支持 • 稀疏的多维映射表 – 列存储 – 只用row key来定位行 – 每行可以有不同的列 – 数据有多个版本(在不同的时间点的快照信息) • 分布式的多层次映射表结构(k 具有容错特性,能够将数据持久化的非易失性 存储中 – 使用HDFS做底层存储,可利用Hadoop的压缩 Codec等减少空间占用 • 自动水平扩展 – 只需要加入新的结点即可提高存储容量和吞吐量 – 服务器能够被动态加入或者删除(用以维护和升级) – 服务器自动调整负载平衡 5 Postgres Conference China 2016 中国用户大会 HBase的原子性保证 HBase仅保证对行操作的原子性 • • 任何行级的操作是原子的 – 一条记录的Put操作要么完全成功,要么完全失败。 • 操作返回成功(success)表示操作完成 • 操作返回失败(failure)表示操作全部失败 • 超时操作可能是成功也可能失败,但不可能部分成功 – 即使跨column family的行操作也是原子的 • 支持一次性修改多行的API并不保证跨行的原 子性操作 – 一般情况下,API会在结果中分别返回执行成功、0 码力 | 45 页 | 4.33 MB | 1 年前3
 百度智能云 Apache Doris 文档其中第一条、第二条语句是一样的效果。在不指定目标列时,使用表中的列顺序来作为默认的目标列。 第三条、第四条语句表达的意思是一样的,使用 列的默认值,来完成数据导入。 2. 向 表中一次性导入多行数据 其中第一条、第二条语句效果一样,向 表中一次性导入两条数据 第三条、第四条语句效果已知,使用 列的默认值向 表中导入两条数据 3. 向 表中导入一个查询语句结果 INSERT INSERT INTO INTO 可以用于查询错误的数据: 可以查看到具体错误行。 2. 超时时间 INSERT 操作的超时时间由 会话变量 控制。默认为5分钟。超时则作业会被取消。 3. Label 和原子性 INSERT 操作同样能够保证导入的原子性,可以参阅 导入事务和原子性 文档。 当需要使用 作为 insert 操作中的查询部分时,必须指定 和 部分。 4. 过滤阈值 与其他导入方式不同,INSERT 操作不能指定过滤阈值( 有完全的控制权限。 Doris 对于用户填写的导出路径不会做合法性检查。如果 Doris 的进程用户对该路径无写权限,或路径不存在,则会报错。 同时处于安全性考虑,如果该路径已存在同名的文件,则也会导出失败。 Doris 不会管理导出到本地的文件,也不会检查磁盘空间等。这些文件需要用户自行管理,如清理等。 4. 结果完整性保证 该命令是一个同步命令,因此有可能在执行过程中任务连接断开了,0 码力 | 203 页 | 1.75 MB | 1 年前3 百度智能云 Apache Doris 文档其中第一条、第二条语句是一样的效果。在不指定目标列时,使用表中的列顺序来作为默认的目标列。 第三条、第四条语句表达的意思是一样的,使用 列的默认值,来完成数据导入。 2. 向 表中一次性导入多行数据 其中第一条、第二条语句效果一样,向 表中一次性导入两条数据 第三条、第四条语句效果已知,使用 列的默认值向 表中导入两条数据 3. 向 表中导入一个查询语句结果 INSERT INSERT INTO INTO 可以用于查询错误的数据: 可以查看到具体错误行。 2. 超时时间 INSERT 操作的超时时间由 会话变量 控制。默认为5分钟。超时则作业会被取消。 3. Label 和原子性 INSERT 操作同样能够保证导入的原子性,可以参阅 导入事务和原子性 文档。 当需要使用 作为 insert 操作中的查询部分时,必须指定 和 部分。 4. 过滤阈值 与其他导入方式不同,INSERT 操作不能指定过滤阈值( 有完全的控制权限。 Doris 对于用户填写的导出路径不会做合法性检查。如果 Doris 的进程用户对该路径无写权限,或路径不存在,则会报错。 同时处于安全性考虑,如果该路径已存在同名的文件,则也会导出失败。 Doris 不会管理导出到本地的文件,也不会检查磁盘空间等。这些文件需要用户自行管理,如清理等。 4. 结果完整性保证 该命令是一个同步命令,因此有可能在执行过程中任务连接断开了,0 码力 | 203 页 | 1.75 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.0.0-alpha变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.4.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 导览 . . . . . . . 传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足 互联网的海量数据场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲,服务化的无状态型,能够达到较小成本的随意扩容,这必然导致系统的最终压力 意扩容,这必然导致系统的最终压力 都落在数据库之上。而单一的数据节点,或者简单的主从架构,已经越来越难以承担。数据库的可用性, 已成为整个系统的关键。 从运维成本方面考虑,当一个数据库实例中的数据达到阈值以上,对于 DBA 的运维压力就会增大。数据 备份和恢复的时间成本都将随着数据量的大小而愈发不可控。一般来讲,单一数据库实例的数据的阈值 在 1TB 之内,是比较合理的范围。 在传统的0 码力 | 301 页 | 3.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0-alpha变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.4.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 导览 . . . . . . . 传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足 互联网的海量数据场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲,服务化的无状态型,能够达到较小成本的随意扩容,这必然导致系统的最终压力 意扩容,这必然导致系统的最终压力 都落在数据库之上。而单一的数据节点,或者简单的主从架构,已经越来越难以承担。数据库的可用性, 已成为整个系统的关键。 从运维成本方面考虑,当一个数据库实例中的数据达到阈值以上,对于 DBA 的运维压力就会增大。数据 备份和恢复的时间成本都将随着数据量的大小而愈发不可控。一般来讲,单一数据库实例的数据的阈值 在 1TB 之内,是比较合理的范围。 在传统的0 码力 | 301 页 | 3.44 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.0.0变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 导览 . . . . . . . 232 7.1.9 改写引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 正确性改写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 优化改写 . . . . . . 增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数 据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere0 码力 | 385 页 | 4.26 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 导览 . . . . . . . 232 7.1.9 改写引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 正确性改写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 优化改写 . . . . . . 增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数 据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere0 码力 | 385 页 | 4.26 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.0iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.10.1 背景 . . 121 分布式事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.1.8 不支持项 . . 1 ShadowAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.15 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.15.1 P0 码力 | 406 页 | 4.40 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.0iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.10.1 背景 . . 121 分布式事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.1.8 不支持项 . . 1 ShadowAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.15 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.15.1 P0 码力 | 406 页 | 4.40 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.1iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.10.1 背景 . . 122 分布式事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.1.8 不支持项 . . 1 ShadowAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.15 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.15.1 P0 码力 | 409 页 | 4.47 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.1iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.10.1 背景 . . 122 分布式事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.1.8 不支持项 . . 1 ShadowAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.15 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.15.1 P0 码力 | 409 页 | 4.47 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.0. . 22 稳定支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 实验性支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 不支持 . . . . . . . 44 iv 基于列的影子算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.10.1 背景 使用手册 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 4.2.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 源码编译 . . . . . .0 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.0. . 22 稳定支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 实验性支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 不支持 . . . . . . . 44 iv 基于列的影子算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.10 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.10.1 背景 使用手册 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 4.2.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 源码编译 . . . . . .0 码力 | 449 页 | 5.85 MB | 1 年前3
共 106 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11














