Skip to content

jicahoo/hadoop-data-ingestion-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 

Repository files navigation

hadoop-data-ingestion-tool

目标

  • 通过阅读这个材料,读者能够了解到
    • 在大数据平台上,有哪些开源的OLAP解决方案和各自的优缺点。
    • 如何将数据导入到大数据平台(主要是Hadoop)

什么是OLAP

  • 对多维数据的,多角度地交互式分析
  • 属于广义BI的一部分
  • 包含关系型数据库,报表,数据挖掘
  • OLAP的核心概念是OLAP Cube,也称为多维Cube或HyperCube
  • 和OLTP相对
  • OLAP系统的分类:MOLAP, ROLAP, HOLAP

开源的大数据OLAP系统

  • Apache Drill
    • Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage
    • 支持很多种数据源:HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage, Swift, NAS and local files
    • Drill supports the ANSI standard for SQL.
    • 编程语言:Java
  • Apaceh Impala
    • Shipped by Cloudera, MapR, Amazon, Oracle
    • 目标:Do BI-style Queries on Hadoop
    • MPP架构,与Apache HAWQ类似。
    • 编程语言:C++为主
  • Apache Kylin
    • 由eBay创立,很多成功的用户案例,百度地图,美团,北京移动,魅族,京东等
    • PB级别,最早是基于Hadoop的,据说,后期版本支持更多的大数据存储系统。
    • 支持SQL语言
    • 用户要设计Cube。设计好Cube之后,Kylin会按照Cube定义来构建Cube。构建Cube的数据源是Hadoop, 构建出的Cube,会存储到HBase.
    • 编程语言:Java
  • Apache Phoenix
    • 在能够满足OLTP应用的同时,满足分析任务(支持复杂的查询操作)
    • 基于HBase, 支持ANSI SQL和ACID。和Hadoop系列产品有较好的集成:Spark, Hive, Pig, Flume, and Map Reduce
    • 用户案例很多:Dell, Intel, 淘宝网,搜狗,华为。
    • 编程语言:Java
  • Druid
    • 支持交互式查询,速度在亚秒级
    • 分布式的,面向列的,高性能的数据存储(data store)
    • 部分设计思想来自Goolge的BigQuery/Dremel/PowerDrill
    • 编程语言:Java
  • Greenplum
    • Greenplum数据引擎是为新一代数据仓库和大规模分析处理而建立的软件解决方案,其最大的特点是不需要高端的硬件支持仍然可以支撑大规模的高性能数据仓库和商业智能查询。
    • 在数据仓库、商业智能的应用上,尤其在海量数据的处理方面Greenplum表现出极其优异的性能。
    • EMC收购的产品,但已完全开源,现在是EMC的子公司Pivotal在推动。
    • Greeplum是MPP架构,基于PostgreSQL
    • 无论是交互式分析还是批量模式的分析,都能很好地处理
    • 编程语言:C/C++
  • HAWQ:
    • Pivotal公司将Greenplum验证过的成功技术引入到Hadoop,做了一个MPP架构的,运行在Hadoop上的SQL引擎
    • 查询性能上还是弱于Greenplum,但是仍然要比其他的SQL-Engine-On-Hadoop系统表现的要好。
    • ANSI SQL兼容: SQL-92, SQL-99, SQL-2003, OLAP extension; 支持ACID
    • 编程语言:C/C++
  • Opentsdb
    • 分布式的,可伸缩的,时间序列数据库。 TSDB -> Time Series Database.
    • 基于HBase,专注于计算机系统的监控数据搜集:网络,操作系统,应用。
  • Pinot (LinkedIn):
    • A realtime distributed OLAP datastore.
    • 适合于不可变的,仅会追加的数据(immutable append-only data);而且要求从事件发生到对应数据可查询之间的延时必须要很短,这样的场景适用Pinot.
    • 面向列的,支持SQL
    • LinkedIn将它用于构建可伸缩的低延时的实时分析系统。
    • Pinot既可以消费离线数据源(Hadoop或者普通文件),也可以消费在线数据源(Kafka)
    • 编程语言:Java
  • Presto:
    • 由Facebook创建
    • 是一个分布式查询引擎,可以支持很多数据源:Hive, Cassandra, 关系型数据库。
    • 查询时间:亚秒到分钟。
    • 数据规模:GB到 PB
    • 编程语言:Java
  • Spark SQL:
    • 并不是大数据的OLAP:只是为了在Spark程序中,以统一的SQL的形式访问一些数据(Hive, Avro, Parquet, ORC, JDBC),目标并不是OLAP

大数据的ETL工具

  • TO: 完善
  • 关注点:
    • 支持的数据源和数据目标
      • MongoDB -> Hive ?
    • 速度如何
    • 是否支持全量和增量的同步方式
    • 监控,调度,管理功能如何
  • Sqoop
    • Incremental copy data from RDBMS to HDFS?
    • Sqoop support converters?
  • DataX

业务数据到数据仓库

后面的章节不重要。

Kylin

Kylin案例

Reference