OLTP,MPP和Hadoop

2020-05-23 00:00:00 数据 分析 数据库 支持 批处理

我的一些朋友问我有关OLTP,MPP和Hadoop的问题。我试图解释如下。
这与撰写本文的时间有关。事情变化如此之快:)。

OLTP数据库(Oracle,DB2)与MPP(Netezza,Teradata,Vertica等):
1.-DB Oracle或DB2需要在开始处理之前从磁盘读取数据到内存,因此内存计算非常快。
-MPP尽可能使处理接近数据,因此减少了数据移动

2。-DB Oracle或DB2适合较小的OLTP(事务)操作。它还保持了很高的数据完整性。
-MPP适用于批处理。一些MPP(Netezza,Vertica)忽略了Intigrity,例如为了批处理性能而强制执行密钥。


Hadoop(没有impala或EMC HAWQ)与MPP:
1.-传统的MPP数据库以成熟的内部结构存储数据。因此,使用SQL进行数据加载和数据处理非常有效。
-存储在hadoop上的数据没有这种结构化的体系结构。因此,访问和加载数据不如常规MPP系统有效。
2.-使用常规MPP,它仅支持关系模型(行-列)
-hadoop支持几乎任何类型的数据。

*但是MPP和hadoop的主要目的是相同的,在存储附近并行处理数据。

Cloudera impala(或关键HAWQ)与MPP:
1.-MPP支持数据库信息分析
-直到现在(impala 2.0)开始支持“ SQL 2003”,这可能导致他们引入数据库信息分析。
2.-MPP数据库具有行业标准的安全功能和定义良好的用户架构。
-Impala具有非常不完善的安全系统,几乎没有用户架构。
3.-MPP仅支持特定于供应商的文件系统,并且需要使用特定的加载工具加载数据。
-Impala支持大多数打开的文件格式(文本,parquate)

*但是,Impala似乎像Vertica一样成为MPP和Columnar,但在不久的将来会便宜又开放的数据库系统。只需实施安全性并推进数据库分析。


如何选择(一般和我个人的看法):

1. OLTP数据库(Oracle,DB2,MySQL,MS SQL,Exadata):
-基于事务的应用程序
-较小的DWH
*但是Exadata是混合系统,我有处理大约20TB数据的DWH的经验。

2. MPP(Netezza,Teradata,Vertica)
-更大的数据仓库(可能具有大小超过4-5 TB的表)
-不需要或只需很少的预处理
-需要更快的批处理速度
-在数据库分析中

3.仅Hadoop :
-所有高度非结构化的数据(文档,音频,视频等)
-需要批量处理

4. Hadoop,主要使用Impala(或EMC HAWQ)
-需要具有低成本的DWH-
无需具有分析功能
-可以使用开源工具
-无需担心安全性或有限的用户数量

5. Hadoop(具有impala或HAWQ)+ MPP:
-一些数据需要大量的预处理,然后才能进行分析。
-需要更便宜的查询能力存档或备份较旧的数据。

相关文章