- 浏览: 188538 次
- 性别:
- 来自: 北京
最新评论
-
duguyiren3476:
我现在的版本是drill0.8.0版本的,搭建了分布式4个节点 ...
walter的drill笔试之二-安装与部署 -
zhangth:
写的不错,受教了
图片分离之图片服务器问题 -
lt200819:
zh55com 写道如何查询mysql数据?如何查询hbase ...
walter的drill笔试之二-安装与部署 -
zh55com:
如何查询mysql数据?如何查询hbase数据?
walter的drill笔试之二-安装与部署 -
QuarterLifeForJava:
不错,挺好的,那如果是update、delete、insert ...
Mysql百万级数据查询优化
文章列表
Infobright查询优化
- 博客分类:
- 数据库与Nosql
前面已经分析了Infobright的构架,简要介绍了Infobright的压缩过程和工作原理。现在来讨论查询优化的问题。
(1)配置环境
在Linux下面,Infobright环境的配置可以根据README里的要求,配置brighthouse.ini文件。
(2) 选取高效的数据类型
参见前面章节。
(3)使用comment lookup
参见前面章节。
海量数据处理之五:面试题整理
- 博客分类:
- 海量数据处理
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。
s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。
s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为
海量数据处理之三:Hash
- 博客分类:
- 海量数据处理
【什么是Hash】
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系。
...
海量数据处理之二:Bloom Filter
- 博客分类:
- 海量数据处理
【什么是Bloom Filter】
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有 ...
海量数据处理之一:Bitmap
- 博客分类:
- 海量数据处理
【什么是Bit-map】
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟1Byte的空间,将这些空间的所有Bit位都置为0
然后遍历这5个元素,首先第一个元素是4,那么就把4对应的位置为1( ...
Bloom Filter概念和原理
- 博客分类:
- 海量数据处理
Bloom Filter概念和原理
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合 ...
前面的章节一直涉及到comment lookup,这里将简单介绍comment lookup的使用。
comment lookup只能显式地使用在char或者varchar上面。Comment Lookup可以减少存储空间,提高压缩率,对char和varchar字段采用comment lookup可以提高查询效率。
Comment Lookup实现机制很像位图索引,实现上利用简短的数值类型替代char字段已取得更好的查询性能和压缩比率。CommentLookup的使用除了对数据类型有要求,对数据也有一定的要求。一般要求数据类别的总数小于10000并且当前列的单元数量/类别数量大于1 ...
Infobright的数据类型
- 博客分类:
- 数据库与Nosql
Infobright里面支持所有的MySQL原有的数据类型。其中Integer类型比其他数据类型更加高效。尽可能使用以下的数据类型:
TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT
DECIMAL(尽量减少小数点位数)
DATE ,TIME
效率比较低的、不推荐使用的数据类型有:
BINARY VARBINARY
FLOAT
DOUBLE
VARCHAR
Infobright工作原理
- 博客分类:
- 数据库与Nosql
前面已经简要分析了Infobright的构架,现在来介绍Infobright的工作原理。
粗糙集(Rough Sets)是Infobright的核心技术之一。Infobright在执行查询的时候会根据知识网络(Knowledge Grid)把DP分成三类:
相关的DP(Relevant Packs),满足查询条件限制的DP
不相关的DP(Irrelevant Packs),不满足查询条件限制的DP
可疑的DP(Suspect Packs),DP里面的数据部分满足查询条件的限制
下面是一个案例:
列式数据库之infobright
- 博客分类:
- 数据库与Nosql
infobright的优点有很多,简单列举如下:
Infobright的优点:
(1)高压缩比率
(2)快速响应复杂的分析查询语句
(3)随着数据库的逐渐增大,查询和装载性能基本保持稳定
(4)没有特殊的数据仓库模型(比如星状模型、雪花模型)要求
(5)无需要物化视图、复杂的数据分区策略、索引
(6)实施和管理简单,需要极少的管理
(7)和众多的BI套件相容,比如Pentaho、Cognos、Jaspersoft。
infobright有两个版本ICE和IEE,支持64位和32 ...
Infobright构架分析
- 博客分类:
- 数据库与Nosql
Infobright的总体构架图如下:
如上图所示,Infobright采用了和MySQL一致的构架,分为两层。上层是服务及应用管理,下层是存储引擎。Infobright的默认存储引擎是brighthouse,但是Infobright还可以支持其他的存储引擎,比如MyISAM、MRG_MyISAM、Memory、CSV。Infobright通过三层来组织数据,分别是DP(Data Pack)、DPN(Data Pack Node)、KN(Knowledge Node)。而在这三层之上就是无比强大的知识网络(Knowledge Grid)。
数据块(DP)是存储的最低层,列中 ...
两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。该算法能够解决很多的临时性系统故障(包括进程、网络节点、通信等故障),被广泛地使用。但是,它并不能够通过配置来解决所有的故障,在某些情况下它还需要人为的参与才能解决问题。参与者为了能够从故障中恢复,它们都使用日志来记录协议的状态,虽然使用日志降低了性能但是节点能够从故障中恢复。
在两阶段提交协议中,系统一般包含两类机器(或节点):一 ...
判断对象已经死的方法:1.引用计数法 2根搜索算法
GC Roots:
1 虚拟机栈(栈帧中的本地变量表)中的引用对象。
2 方法区中的类静态属性引用的对象。
3 方法区中的常量引用的对象。
4 本地方法栈中JNI(即一般说的Native方 ...
数据库事务隔离级别与封锁协议
- 博客分类:
- 数据库与Nosql
一、事务的4个基本特征
1、原子性 (Atomicity )
要么全执行,要么都不执行。
2、一致性( Consistency )
事务在系统完整性中实施一致性,这通过保证系统的任何事务最后都处于有效状态来实现。
3、隔离性 ( Isolatio ...
由于项目中的登录log一直比较大,目前是每周切分一张表,每次做月季度数据分析的时候就很痛苦,今天特定请教了一下公司DBA的同学,学到了两个解决方法。一个是把每天的登录按照位运算的形式保存,查询的时候使用bit_count(field)来计算,速度会大大提升,这个以后在项目中实践了再来分享;另一个就是使用Infobright引擎,Infobright是一个列存数据仓库软件,可以与MySQL集成,作为MySQL的一个存储引擎来使用。详细的框架结构可以参考官方的白皮书,国内也有介绍的,比如这一篇文章。 Infobright是一个与MySQL集成的开源数据仓库(Data Warehouse)软件,可 ...