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 Doris 中的导入 LABEL 导入任务 的标识 查看对应 导入任务 的执行情 况 用户可以 自定义 防止用户 重复导入 同一批次 数据使用 相同的label Label • 为了保证At-Most-Once 语意, 用户同一批次数据需要使用相同的Label 03 Doris 中的导入 Prepared 事务和两阶段提交 • FE 充当协调者 • Prepare 阶段下发任务和写入数据0 码力 | 33 页 | 21.95 MB | 1 年前3TiDB 可观测性的设计与实现 陈霜
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 年前3Greenplum分布式事务和两阶段提交协议
数据库系统的实现 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 年前3HBase最佳实践及优化
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 文档
STRING, TIMESTAMP。用户可以使用指数符号来描述DOUBLE 类型,或通过STRING转换获得。 DECIMAL数据类型 DECIMAL数据类型 DECIMAL[M, D] 保证精度的小数类型。M代表一共有多少个有效数字,D代表小数点后最多有多少数字。M的范围是[1,27],D的范围是[1,9], 另外,M必须要大于等于D的取值。默认取值为decimal[10,0]。 precision: 其中第一条、第二条语句是一样的效果。在不指定目标列时,使用表中的列顺序来作为默认的目标列。 第三条、第四条语句表达的意思是一样的,使用 列的默认值,来完成数据导入。 2. 向 表中一次性导入多行数据 其中第一条、第二条语句效果一样,向 表中一次性导入两条数据 第三条、第四条语句效果已知,使用 列的默认值向 表中导入两条数据 3. 向 表中导入一个查询语句结果 INSERT INSERT INTO INTO 可以用于查询错误的数据: 可以查看到具体错误行。 2. 超时时间 INSERT 操作的超时时间由 会话变量 控制。默认为5分钟。超时则作业会被取消。 3. Label 和原子性 INSERT 操作同样能够保证导入的原子性,可以参阅 导入事务和原子性 文档。 当需要使用 作为 insert 操作中的查询部分时,必须指定 和 部分。 4. 过滤阈值 与其他导入方式不同,INSERT 操作不能指定过滤阈值(0 码力 | 203 页 | 1.75 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0-alpha
变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.4.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 导览 . . . . . . . 传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足 互联网的海量数据场景。 从性能方面来说,由于关系型数据库大多采用 B+ 树类型的索引,在数据量超过阈值的情况下,索引深度 的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中 式数据库成为系统的最大瓶颈。 从可用性的方面来讲,服务化的无状态型,能够达到较小成本的随意扩容,这必然导致系统的最终压力 意扩容,这必然导致系统的最终压力 都落在数据库之上。而单一的数据节点,或者简单的主从架构,已经越来越难以承担。数据库的可用性, 已成为整个系统的关键。 从运维成本方面考虑,当一个数据库实例中的数据达到阈值以上,对于 DBA 的运维压力就会增大。数据 备份和恢复的时间成本都将随着数据量的大小而愈发不可控。一般来讲,单一数据库实例的数据的阈值 在 1TB 之内,是比较合理的范围。 在传统的0 码力 | 301 页 | 3.44 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0
变更历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.5 可观察性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 导览 . . . . . . . 232 7.1.9 改写引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 正确性改写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 优化改写 . . . . . . 增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数 据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服 务质量分析、可观察性)等透明化增量功能; • 可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式 进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。 ShardingSphere0 码力 | 385 页 | 4.26 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.0
iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 年前3Apache ShardingSphere 中文文档 5.1.1
iv 不支持项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 年前3Apache 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
共 117 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12