摘要   HUABASE 是基于列存储的关系型数据库系统。列存储技术的特点是数据查询效率高,读磁盘少,存储空间少,是构建数据仓库的理想架构。 HUABASE 实现了多种数据压缩机制、查询优化和稀疏索引技术,在支持高效率的商业智能方面具有良好的发展前景,可以帮助企业轻松做出明智的业务经营决策。

HUABASE 主页: http://www.huabase.cn/

HUABASE: A Column-Oriented Relational Database System

Abstract   HUABASE is a column-oriented relational database system. The three main features of column-oriented database are better query efficiency, fewer disk accesses and less storage. Column-oriented database is an ideal architecture for data warehouse natively. HUABASE implements multiple data compression mechanisms, query optimization and sparse indexing technologies. By supporting business intelligence efficiently, HUABASE can help the enterprises to make wise business decision.

HUABASE Home Page: http://www.huabase.cn/

随着互联网技术的发展,企业及政府信息化的不断深入,应用的复杂性日益增强。这些需求推动着数据密集型应用向海量和智能的方向发展。同时,数据仓库和在线分析等应用迫切需要实时高效的数据处理技术。传统的基于行存储的数据库技术已经出现了技术瓶颈。如何在快速执行复杂查询的同时,还能缩小存储空间和节约成本是目前数据库技术研究的热点问题。本文介绍一种新型数据库技术及其验证系统——基于列存储的关系型数据库 HUABASE 。

列存储技术的特点是数据查询效率高,读磁盘少,存储空间少,是构建数据仓库的理想架构。列数据库的应用价值来自于它对复杂查询的快速响应以及数据压缩所带来的存储优势,使其在商业智能方面具有良好的发展前景。根据 Gartner 2010 年 1 月关于数据仓库的分析报告,列数据库与传统关系型数据库相比,在数据分析方面表现出卓越的性能,因此,列数据库技术的研究和产品开发在学术界和工业界受到广泛关注。

列数据库的学术价值在于其独特的数据存储理念,以及基于列的存储为企业决策分析、数据仓库、商业智能这些应用领域所带来的效率和空间上的方便和优势。目前开源列数据库有 C-Store , rasdaman , MonetDB 等,商用列数据库有 Sybase IQ 、 Vertica Analytic Database 、 ParAccel Analytic Database 、 EXASOL EXASolution 等。近 5 年来在国际一流的数据库会议 VLDB 、 SIGMOD 、 ICDE 上有关这个领域的优秀论文也频频出现。

1        HUABASE 简介

关系型数据库是一个用以存储及处理结构化数据的软件系统,其数据分为两个层次:一是逻辑数据,它是由表、记录等组成;另一是物理数据,它代表数据库怎样存储逻辑数据。不同的关系数据库系统或许有相同的逻辑数据,但它们通常有不同的物理数据。实现数据库物理数据的方法有两种:一是基于行存储,另一是基于列存储。对于基于行存储的实现方法,它把逻辑数据的整条记录存储到数据块中,为了提高查询速度,要为某些列建立 B+ 树等类型的索引;对于基于列存储的实现方法,逻辑数据中的记录不直接按条映射到物理数据中,而是把记录按列分开,把所有记录相同列的值存在一起,同时提供连接数据能够把记录相应的列值重新组合起来形成记录。

如图 1 所示, HUABASE 将记录进行分段存储,表段内数据按列排序存储,表段中列值的个数有一个上限,连接数据存储记录号与数据块序列号。数据插入时,尽管列值的位置会发生变化,只要它仍然在同一个数据块中,连接数据就不需要更新,除非由于数据块溢出导致列数据被移到新的数据块中,数据块的序列号才发生变化。连接数据可以用来把相应的列值连接起来形成一条记录。

图 1   逻辑数据与物理数据示例

HUABASE 非常适合于商业智能分析领域,如图 2 所示, HUABASE 用户可以利用 ETL 工具从多种数据源抽取元数据然后存放到 HUABASE 数据库中, HUABASE 可以存放和管理海量的数据并用于智能分析,比如:一个数据库最大可以支持 232 个表空间;一个表空间最大可以支持 256 个数据文件;一个数据文件最大可支持 32TB 数据。

图 2   HUABASE 概况

2        HUABASE 体系架构

HUABASE 数据库管理系统是一个三层架构:核心层、接口层和应用层。核心层完全基于 Java 实现,包括支持列存储的所有关键组件。接口层支持 ODBC 和 JDBC 标准接口。应用层支持各种数据库应用开发, HUABASE 本身提供了多种基于 JDBC 接口的数据库管理工具。如图 3 所示。

图 3   HUABASE 体系架构

1) 核心层组件:

列式存储 :支持记录的按列存储、实现了高效的数据压缩和稀疏索引技术,可以极大地提高存储效率和查询性能。

缓存策略 :支持多种数据块缓冲机制,比如持久缓冲区、时钟缓冲区、 FIFO 缓冲区、 LRU 缓冲区。

加锁机制 :数据块锁是为了保持数据块的操作一致性,支持排它锁、共享锁、增量排它锁、增量共享锁。

查询处理 :支持 SQL-92 和部分 SQL-99 标准、应用多种查询优化策略,在复杂查询上具有比基于行存储的数据库系统更优越的性能。

安全管理 :支持数据的加密存储和传送,保护用户数据的隐私和安全。

事务处理 :支持事务的原子性、一致性、隔离性和持久性。

日志管理 :支持日志的回滚和重做,确保系统数据的完整性。

全文搜索 :支持对大文本列的全文搜索方式,可以有效提高大文本的查询效率。

2) 接口层组件:

ODBC :支持 ODBC 标准接口,应用程序可以通过该接口访问 HUABASE 数据库。

JDBC :支持 JDBC 标准接口, Java 应用程序可以通过该接口访问 HUABASE 数据库。

3) 应用层组件:

应用程序 :可以基于 ODBC 和 JDBC 接口开发列数据库应用。

数据库管理器 :基于 Web 的数据库管理器,可以从 Web 浏览器登录,方便远程管理 HUABASE 数据库。根据用户角色,可以管理当前数据库的模式、表或用户等。

命令编辑器 :基于图形界面的命令编辑工具,可以方便地提交各种查询和操作命令。

命令行工具 :命令行工具支持交互模式、命令模式和批处理模式。适合管理员做各种管理和维护操作。

3        HUABASE 关键技术

HUABASE 支持关系型数据库的核心功能,在列存储方面的关键技术包含以下三个方面:

1) 数据压缩技术

基于行存储的关系型数据库一般只能做到对数据块的压缩。而基于列存储的 HUABASE ,采用了多种数据压缩机制,比如同一列中相同的值只存放一份;对于整型数据,只存放相邻列值的差。这些机制可以实现更高的数据压缩效率。列数据库按列存储并在列上进行压缩的技术,在构建大型数据仓库的时候可以表现出突出的优势,节省大量的存储空间。

2) 查询优化技术

基于行存储的关系型数据库查询时,不能只读取部分列,所有列都必须读取到内存中然后再去掉不需要的列,这样就导致很多不必要的硬盘输入输出。而基于列存储的 HUABASE ,由于它把记录的列分开存储,查询引擎可以按需读取列,从而减少了硬盘输入输出,提高了数据库的查询性能。

3) 稀疏索引技术

基于行存储的关系型数据库一般都是稠密索引,不仅增加存储空间,也增加了数据更新时的代价。因此,为表的所有列都建立索引就不太现实,如果对一个未加索引的列进行查询,系统不得不做全表扫描,导致数据库的性能严重恶化。而基于列存储的 HUABASE 所建立的索引是稀疏索引,列值已被排序存储,索引只建立到数据块级,当查询通过索引定位到数据块后,就可以使用二分法查找,这样索引的存储空间很小,维护代价很低,可以给所有需要索引的列都建立索引,从而显著提高了数据库的查询性能。

https://blog.csdn.net/huabase/article/details/5686981

HUABASE :基于列存储的关系型数据库系统的更多相关文章

  1. SQL Server 2014聚集列存储索引

    转发请注明引用和原文博客(http://www.cnblogs.com/wenBlog) 简介 之前已经写过两篇介绍列存储索引的文章,但是只有非聚集列存储索引,今天再来简单介绍一下聚集的列存储索引,也 ...

  2. 应运而生! 双11当天处理数据5PB—HiStore助力打造全球最大列存储数据库

    阿里巴巴电商业务中历史数据存储与查询相关业务, 大量采用基于列存储技术的HiStore数据库,双11当天HiStore引擎处理数据记录超过6万亿条.原始存储数据量超过5PB.从单日数据处理量上看,该系 ...

  3. Vertica: 基于DBMS架构的列存储数据仓库

    介绍 Vertica(属于HP公司),是一个基于DBMS架构的数据库系统,适合读密集的分析型数据库应用,比方数据仓库,白皮书中全名称为VerticaAnalytic Database.从命名中也可以看 ...

  4. HBase与列存储

    传统的行存储和(HBase)列存储的区别 1.为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的 ...

  5. ES doc_values介绍2——本质是field value的列存储,做聚合分析用,ES默认开启,会占用存储空间

    一.doc_values介绍 doc values是一个我们再三重复的重要话题了,你是否意识到一些东西呢? 搜索时,我们需要一个“词”到“文档”列表的映射 排序时,我们需要一个“文档”到“词“列表的映 ...

  6. amazon redshift 分析型数据库特点——本质还是列存储

    Amazon Redshift 是一种快速且完全托管的 PB 级数据仓库,使您可以使用现有的商业智能工具经济高效地轻松分析您的所有数据.从最低 0.25 USD 每小时 (不承担任何义务) 直到每年每 ...

  7. SQL Server 列存储索引强化

    SQL Server 列存储索引强化 SQL Server 列存储索引强化 1. 概述 2.背景 2.1 索引存储 2.2 缓存和I/O 2.3 Batch处理方式 3 聚集索引 3.1 提高索引创建 ...

  8. Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】

    翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column ...

  9. Google Supersonic列存储查询库的介绍、安装、测试

    查询引擎库介绍: http://www.infoq.com/cn/news/2012/10/Google-Supersonic/ Supersonic是一个面向列存储数据库的查询引擎库,它提供了一组数 ...

随机推荐

  1. Spring cloud info信息显示

    父工程添加配置如下 <build> <finalName>microservicecloud</finalName> <resources> <r ...

  2. 池以及barrier简单

    用了下CyclicBarrier,注意线程池中的线程数量设置,还有就是DB连接的时候,需要考虑单个DB能承受的最大连接数目和每个连接上能同时打开的cursor等限制,需要时可以通过jstack查看堆栈 ...

  3. JSP基本_JSTL

    自定义标签是,用户定义自己的处理的tag的机制. JSTL是,JSP用标准自定义标签.从JSTL Ver.1.2开始成为JavaEE5的子集.比较有名的是Glassfish.Tomcat上开发的话,需 ...

  4. postman 的基础使用

    https://blog.csdn.net/fxbin123/article/details/80428216

  5. React之使用Context跨组件树传递数据

    ---------------------------------  讲解一 原文:https://blog.csdn.net/xuxiaoping1989/article/details/78480 ...

  6. KVM虚拟化技术(五)虚拟机管理

    一.为了提高内存.硬盘.网络的性能,需要支持半虚拟化:virtio半虚拟化驱动 二.对虚拟机的管理都是通过libvirt:所有必须要启用一个守护程序libvirtd. 三.virt-manager ① ...

  7. Hibernate 再接触 关系映射 一对一单向外键联合主键关联

    例子: Husband.java package com.bjsxt.hibernate; import javax.persistence.Entity; import javax.persiste ...

  8. HTML框架、列表、表格

    本章内容一.列表1.有序列表ol <ol> <li></li> </ol>type的值有3个 默认为1(阿拉伯数字), 还有A/a(大小写字母),I/i ...

  9. Windows Server 2012开启磁盘性能计数器

    Windows Server 2012默认情况下已经禁用了磁盘性能计数器,打开任务管理器后,无法像Win8一样在性能选项卡中看到“磁盘”使用情况,可能是因为微软考虑到安装此服务器系统的硬件都会非常好, ...

  10. thymeleaf 的内置对象