Skip to main content Link Menu Expand (external link) Document Search Copy Copied

1. 数据仓库

1.1. 名词

  • Data Warehouse 数据仓库
  • The typical extract, transform, load (ETL),即提取、转换、加载
  • OLAP Online Analytical Processing 在线分析处理
  • OLTP Online Transactional Processing 在线事务处理

1.2. 分层(自底向上)

  • 操作数据层(Operational Data Store,ODS):这一层是数据仓库的底层,主要存储和管理原始数据。这些数据通常来自企业的各种业务系统,包括财务、销售、库存等。
  • 数据明细层(Data Warehouse Detail Layer):这一层是对ODS层数据的轻度汇总,为数据仓库提供更明细的数据。
  • 数据中间层(Data Warehouse Intermediate Layer):这一层是对明细数据的进一步汇总和处理,以支持更高级别的数据分析。
  • 数据服务层(Data Services Layer):这一层主要是为了满足不同业务部门的数据需求,将数据按照部门或业务线进行组织。
  • 数据集市(Data Mart):数据集市是一个满足特定部门或用户需求的数据存储,通常按照多维的方式进行组织,包括定义维度、需要计算的指标、维度的层次等。数据集市可以看作是数据仓库的一个子集,它主要面向部门级业务,并且只面向某个特定的主题。

2. SQL查询引擎

Hive,Presto和Spark都是用于数据处理和分析的开源框架。它们可以用于批处理,流处理和交互式查询处理,但是它们有不同的设计理念和适用场景。

2.1. Spark SQL 、 Presto 、Hive 之间的差异

Presto 在涉及 BI 类型查询时非常有用,而 Spark SQL 在大型分析查询中在性能方面处于领先地位。在配置方面进行比较时,Presto 设置比 Spark SQL 容易。Spark SQL 和 Presto 都站在市场上并解决不同类型的业务问题。

2.1.1. Presto

  • 简单来说就是“SQL 查询引擎”,最初是为Apache Hadoop开发的。它是一个开源分布式 SQL 查询引擎,旨在针对各种规模的数据集运行交互式分析查询。
  • Presto 设计用于在大数据(巨大的工作负载)上运行 SQL 查询。 它是由 Facebook 设计的,用于处理他们巨大的工作量。
  • Presto 允许对多个数据源进行数据查询;例如,数据可能驻留在数据存储中:Hive、Cassandra、RDBMS 和其他一些专有数据存储。
presto 支持可插拔连接器。这些连接器为查询提供数据集。

下面是 presto 中可用的几个预先存在的连接器,而 Presto 也提供了与自定义连接器连接的能力。
下面是它支持的一些连接器

Hadoop/Hive

Cassandra

Teradata

PostgreSQL

Oracle etc

2.1.2. Spark SQL

  • 是一种分布式内存计算引擎,在结构化和半结构化数据集之上有一个 SQL 层。由于它在内存中处理,因此在 Spark SQL 中处理速度会很快。
  • Spark SQL 是 Apache Spark Core 的组件之一。 Spark Core 是 Spark 平台的基础执行引擎

2.1.3. Hive

  • Hive是基于Hadoop的数据仓库工具,它使用SQL作为查询语言,并将查询转换为MapReduce作业运行。Hive适合处理大型数据集,支持复杂的数据处理和ETL操作,但不适合处理实时数据。

3. 参考

  • https://zhuanlan.zhihu.com/p/358346853
  • https://zhuanlan.zhihu.com/p/141187828
  • https://en.wikipedia.org/wiki/Data_warehouse
  • https://www.modb.pro/db/114031