数据仓库基础

数据仓库与数据库对比

特性 数据仓库 数据库
适合的工作负载 分析、报告、大数据 事务处理
数据源 从多个来源收集和标准化的数据 从单个来源(例如事务系统)捕获的数据
数据捕获 批量写入操作通常按照预定的批处理计划执行 针对连续写入操作进行了优化,因为新数据能够最大程度地提高事务吞吐量
数据标准化 非标准化 Schema,例如星型 Schema 或雪花型 Schema 高度标准化的静态 Schema
数据存储 使用列式存储进行了优化,可实现轻松访问和高速查询性能 针对在单行型物理块中执行高吞吐量写入操作进行了优化
数据访问 为最小化 I/O 并最大化数据吞吐量进行了优化 大量小型读取操作

数据仓库技术栈

技术栈 技术分类 介绍
KETTLE(推荐) ETL工具 Pentaho生态系统中默认的ETL工具。
通过非常直观的图形化编辑器,可以定义以XML格式储存的流程。

特性
1. 易于使用(有非常容易使用的 GUI)
2. 技术支持完善(在美国,欧洲(比利时,德国,法国,英国),亚洲(中国,日本,韩国)都可以找到相关技术支持人员)
3. 部署(可以使用 job 作业方式或操作系统调度,来执行一个转换文件或作业文件,也可以通过集群的方式在多台机器上部署)
4. 速度快
5. 数据质量(在 GUI 里有数据质量特性,可以手工写 SQL 语句、java脚本、正则表达式来完成数据清洗)
6. 监控(有监控和日志工具)
7. 连接性(非常广泛的数据库,文件,另外可以通过插件扩展)
Greenplum 分布式数据库 - 2015年开源
商业收费
- 基于PostgreSQL
借助MPP架构,在大型数据集上执行复杂SQL分析的速度比很多解决方案都要快。
clickhouse 数据仓库 开源免费
经过俄罗斯最大的搜索引擎公司yandex,2016年6月开源。
在单表查询方面表现出很大的性能优势,但是在多表查询中性能却比较差,不如presto和impala、hawq的效果好。
Druid(推荐) 数据仓库 实时处理时序数据的Olap数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。
免费、列存储。
它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。
适用于广告分析,互联网广告系统监控、度量和网络监控。
Hive(推荐) 数据仓库 适合:
- PG(TB级数据)
- GP(百TB级数据)- PB级数据
Impala sql查询引擎 目前成熟性、稳定性欠佳
Drill sql查询引擎 能够对大数据进行实时的分布式查询引擎,目前它已经成为Apache的顶级项目。Drill是开源版本的Google Dremel。它以兼容ANSI SQL语法作为接口,支持对本地文件,HDFS,HIVE, HBASE,MongeDB作为存储的数据查询,文件格式支持Parquet、CSV、TSV以及JSON这种无模式无关(schema-free)的数据。
注意:目前的版本在使用和兼容上还是需要等完善的
Phoenix sql查询引擎 运行在HBase 上的SQL 框架,不局限于 olap,而是更偏向于 oltp
HAWQ sql查询引擎 Pivotal的SQL on Hadoop方案,全称:全称Hadoop With Query。
HAWQ 是一个 Hadoop 上的 SQL 引擎,是以 Greenplum Database 为代码基础逐渐发展起来的。HAWQ 采用 MPP 架构,改进了针对 Hadoop 的基于成本的查询优化器。
成熟度欠佳
Spark SQL(推荐) sql查询引擎 Apache Spark大数据框架的一部分,可用于结构化数据处理并可以执行类似SQL的Spark数据查询
全量数据与统计时,优势特别明显
Presto(推荐) sql查询引擎 Facebook贡献的开源MPP OLAP引擎
唯品会有实际应用
主要注重提升查询性能,减少计算量,提升实时性
在执行分页查询时,Presto具有明显的优势
Presto是一个OLAP的工具,擅长对海量数据进行复杂的分析;但是对于OLTP场景,并不是Presto所擅长,所以不要把Presto当做数据库来使用。
Presto背后所使用的执行模式与Hive有根本的不同,它没有使用MapReduce,大部分场景下比hive快一个数量级,其中的关键是所有的处理都在内存中完成。
Apache Kylin(推荐) sql查询引擎 eBay贡献的开源MOLAP引擎
成熟稳定(在大型互联网公司有成功经验)
主要优化维表查找,提高CUBE的利用率
核心是Cube,cube是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。
Mondrian OLAP服务器 Mondrian是一个开源项目。一个用Java写成的OLAP(在线分析性处理)引擎。它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过Java API用多维的方式对结果进行展示。
Pentaho(推荐) BI可视化分析工具 中文文档多
Superset 数据可视化工具 Airbnb 开源的、能与 Druid 深度集成的、交互式的、高效的、数据分析和可视化平台,它的功能非常强大,支持种类丰富的数据可视化的图表。
快手在用。

各公司技术选型方案

公司 数据仓库技术选型
FreeWheel Presto
唯品会 Hadoop + Hive + Presto + Kylin + Redis
阿里 oracle —> Greenplum —> Hadoop+Hive —>飞天
快手 Druid

OLAP技术实现方案对比

对比项 Hive+SparkSQL Kylin ES Druid
超大数据规模
查询性能
数据实时性
高并发
Schemal灵活性
精确去重 支持 支持 支持 不支持
SQL接口

Presto与SparkSQL查询性能对比

对比项 Presto(秒) SparkSQL(秒)
分页查询 2 34
全量数据与统计 2080 661

参考

坚持原创技术分享,您的支持将鼓励我继续创作!
0%