InfiniDB在大数据的实战应用34

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Infinidb在大数据的实战应用赖亿2015/4/16目录•背景•InfiniDB的特点•Infinidb的实战问题一个真实的血案:•需求:我们在数据库mysql要做基于pv的分析。日均裸数据增量10g•初始方案:使用innodb问题:数据量增加太快,磁盘空间增加太快(40g)数据加载太慢了最最重要统计类查询太慢了,需要建太多的索引/汇总表•改进方案:换成tokudb解决问题:数据压缩4倍,空间增加勉强可以接受(10g)数据加载快些了4倍左右,勉强可以接受未解决:最最重要查询太慢了,一个查询5分钟甚至更长,优化太痛苦,需要建太多的索引/汇总表问题一个真实的血案:•需求:我们在数据库mysql要做基于pv的分析。日均裸数据增量10g•初始方案:使用innodb问题:数据量增加太快,磁盘空间增加太快(40g)数据加载太慢了最最重要统计类查询太慢了,需要建太多的索引/汇总表•改进方案:换成tokudb解决问题:数据压缩4倍,空间增加勉强可以接受(10g)数据加载快些了4倍左右,勉强可以接受未解决:最最重要查询太慢了,一个查询5分钟甚至更长,优化太痛苦,需要建太多的索引/汇总表解决:--换成infinidb•最终方案:使用infinidb(和最初方案innodb比较)–空间增量2g(原来增量40g)–加载数据20万/每秒(原来1万/每秒)–查询一般小于1分钟(原来5分钟,甚至20分钟)–免优化(再也不要建index了哦)•业务线的反馈目录•背景•InfiniDB的特点•Infinidb的实战Infinidb的定位Hbase等infinidbinfinidbinfinidb产品介绍产品特点:•Mysql协议兼容•全功能,支持dml•统计类查询10倍•Load数据快(每秒10万)•压缩率5倍(和裸数据比)•免优化Infinidb的单机构架InfiniDB分布式框架集群文件系统(hdfs/gfs)2013.10.15支持hdfs–不太建议生产环境用真实业务性能测试—查询性能分析类存储引擎InfiniDB–查询性能对比测试TPCH测试(以下以1G数据量,150000行用户数据测试)InfiniDB存储–为啥查询这样快数据存储方面,“拆拆拆”:•按列拆•按行(范围)拆:核心算法:hashjoinInfiniDB存储–按列拆InfiniDB存储–按行(范围)拆每个范围(术语:ExtentMap)都有最大/最小值,方便过滤ExtentMap的向上扩展更大的范围(术语:Partition)也有最大值/最小值每个ExtentMap可以并行计算InfiniDB存储–hashjoin核心算法:hashjoin•每行都有一个rowid•查询2列以上:通过行rowid关联,使用hashjoin•不太怕表的关联•很怕Select*InfiniDB存储–为啥查询这样快(总结)数据存储方面,“拆拆拆”:•按列拆•按行(范围)拆:•通过核心算法:hashjoin实现关联装载和更新-真实业务性能测试InfiniDB存储–数据装载语法loaddatalocalinfile…•速度超快(10万/每秒)•一个表只能对应一个load语句,不可并行内部过程:•内部实现转换成cpimport的方式•内部实现并行加载(不可以调并行度,代码写死了)•Cpimport的实现是append文件的方式InfiniDB存储–-锁、事务和mvcc对于DML:页级别的锁VersionBuffer(SCN):1.保存被修改的数据块,用于管理回滚、MVCC支持和snapshot2.Initial4M内存hash表,默认文件1G,VersionBufferFileSize控制大小3.在HDFS上,MVCC是disabled的,回滚只支持在语句级对应load数据:append数据到文件末尾,需要回滚时直接抛弃数据InfiniDB–压缩每一列的重复值多,所以压缩率5倍setinfinidb_compression_type=n可以在实例级或session启用关闭压缩。0)关闭压缩1or2)启用压缩,默认为2(quicklz算法)InfiniDB–免优化•无index•自动分区•dba唯一可以做的:sql优化只能调整表的连接次序InfiniDB–和其他产品的对比Inforbright社区版•功能:不支持DML•限制功能的开源Hbase•Hbase本质上是个key–多value的构架•复杂•扩展性好•和infinidb是互补的结构infinidb产品特点(总结)产品特点:•Mysql协议兼容•全功能,支持dml•统计类查询10倍•Load数据快(每秒10万)•压缩率5倍(和裸数据比)•免优化目录•背景•InfiniDB的特点•Infinidb的实战InfiniDB–社区支持问题现在支持比较差,未来前景比较好•(现状)文档和问题资料比较少•2000年公司,发布产品•2013.10月,支持hadoop文件系统•2014.10月公司倒闭•2014.10月mariadb接手•2015.Q1会发布新的版本InfiniDB–高可用问题集群版本没有高可用文档,但是也许不太稳定单机版本本身不提供高可用•备份/恢复方案+手工补缺少数据使用lvm•Drbd的方案•Mysql主从方案不适应(因为有binlog问题)InfiniDB–高可用drbdInfiniDB–规范(合适的场景)InfiniDB–规范(不合适的场景)InfiniDB-兼容性不支持最新版本mysql官方的java驱动支持marridb的mysql驱动InfiniDB–应用类问题•Infinidb数据会混乱•使用最简单的语法•Infinidb的数据表损坏•重新建立表,然后把数据导回去•大量的delete/load并行容易死锁•比如一天84次delete,每次600万•Infinidb数据量排序大报错•max_length_for_sort_data•infindbserver本地mysql客户端不能loadfile•远程做,不要本地做总结•目前:在可用性要求不高情况下,sql统计分析的利器统计类查询10倍Load数据快(每秒10万)压缩率5倍(和裸数据比)免优化•将来:在数据仓库中环境中,很有前景的产品•构架先进•有mariadb组织的支持

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功