Hadoop与SQL

162 阅读6分钟

Hadoop Vs SQL

Hadoop与SQL之间的区别

通过Facebook、Twitter和Instagram等社交媒体每秒产生的巨大数据,为Hadoop/大数据生态系统的发展铺平了道路。术语 "3V "指的是体积、速度和真实性,它定义了Hadoop处理流媒体数据的重要性。 今天,数据从多个来源产生,需要为各种目的进行整合,如报告、数据分析、研究和数据的集中存储。当我们这样做时,传统的方法会出现许多问题,如空间、访问、完整性、结构和带宽。为了处理所有这些问题,Hadoop提供了一个框架,能够处理巨大的数据,提供方便的访问,高可用性,以及动态加载数据。它有一个用于存储数据的分布式文件系统框架(HDFS)和一个内置的查询处理器,称为 "Map Reduce",用于分析和处理存储在HDFS中的数据。

Hadoop和SQL之间的头对头比较(信息图)

以下是Hadoop和SQL之间的6大区别。

hadoop vs sql Infographics

Hadoop和SQL的主要区别

以下是Hadoop和SQL之间的区别,具体如下。

  1. WRITE与READ的模式

一般来说,在传统的数据库中,当数据从一个数据库加载/迁移到另一个数据库时,它遵循写模式的方法。而在Hadoop系统中,所有的数据都存储在HDFS中,并且数据是集中的,这使得数据加载过程变得兴奋/中止,并且由于源表和目标表的结构不同而导致记录被拒绝。

Hadoop框架主要用于数据分析过程。因此,它支持所有三类数据,即结构化、半结构化和非结构化的数据,并且它可以实现读取模式的方法。

  • 结构化数据有一个明确的格式。XML文件。
  • 半结构化数据是比较松散的;它可能/没有一个模式。电子表格
  • 非结构化数据没有一个特定的结构或模式。例如。普通文本或图像。

Hadoop可以有效地处理非结构化数据,因为它有能力在处理期间解释数据。

方法优势劣势
写入模式- 预先定义的结构

- 更快的读取。

例如。传统的RDBMS。

数据加载慢

高延时

读取时的模式- 动态结构

- 快速写入和读取。

例如。Hadoop

快速的数据加载

低延时

。写入时的模式与读取时的模式。

  1. 可扩展性和成本

Hadoop框架被设计用来处理大量的数据。每当数据量增加时,一些额外的资源,如数据节点,可以比传统的静态内存分配方法更容易被添加到集群中。实现这些资源的时间和预算相对较少,而且Hadoop还提供了数据定位功能,即数据在执行作业的节点上可用。

  1. 容错性

在传统的RDBMS中,当数据由于损坏或任何网络问题而丢失时,需要更多的时间、成本和资源来找回丢失的数据。但是,Hadoop有一个机制,对于存储在HDFS中的数据,至少有三个层次的复制因素。如果其中一个存储数据的节点发生故障,数据可以很容易地从其他数据节点上调取,而且数据的可用性很高。因此,无论发生什么故障,用户都可以随时获得数据。

  1. 功能性编程

Hadoop支持用java、scala和python等语言编写功能性编程。对于任何需要额外功能的应用程序,可以通过在HDFS中注册UDF--用户定义的函数来实现。在RDBMS中,没有编写UDF的可能性,这增加了编写SQL的复杂性。此外,存储在HDFS中的数据可以被Hadoop的所有生态系统如Hive、Pig、Sqoop和HBase访问。因此,如果写好了UDF,它就可以被上述任何一个应用程序所使用。它提高了系统的性能和可支持性。

  1. 优化

Hadoop将数据存储在HDFS中,并通过Map Reduce的巨大优化技术进行处理。用于处理数据的最流行的技术是使用分区和存储数据的桶。分区是一种在HDFS中存储数据的方法,它是根据分区提到的列来分割数据的。当数据被注入或加载到HDFS时,它会识别分区列并将数据推送到相关的分区目录中。 因此,查询通过直接从分区目录中获取数据来获取结果集。这减少了整个表的扫描,提高了响应时间,避免了延迟。

另一种方法被称为数据的桶化。这使分析员能够轻松地在数据节点之间分配数据。 所有的节点将有相等数量的数据分布。桶状列的选择方式是它的cardinality数量最少。

这些方法在传统的SQL方法中是不存在的。

  1. 数据类型

在传统方法中,支持的数据类型非常有限。它只支持结构化数据。因此,清理和格式化数据的模式本身将花费更多的时间。但是,Hadoop支持复杂的数据类型,如阵列、结构和地图。这鼓励使用不同类型的数据集来进行数据加载。例如:XML数据可以通过定义含有复杂数据类型的XML元素来加载。

  1. 数据压缩

在传统的数据库系统中,可用的内置压缩技术非常少。但对于Hadoop框架,有许多压缩技术,如gzib、bzip2、LZO和snappy。默认的压缩模式是LZ4。即使是表也可以使用Parquet、ORC等压缩技术进行压缩。 压缩技术有助于使表占用非常少的空间,增加吞吐量和快速查询执行。

Hadoop与SQL对比表

以下是Linux和Solaris之间的比较表。

特征传统SQLHadoop
数据大小千兆字节百万亿字节
访问交互式和批处理批量访问
更新读取和写入 - 多次写一次,读多次
结构静态模式动态模式
完整性
规模化非线性线性

:传统Hadoop和SQL框架的比较。

结论

总的来说,Hadoop在成本、时间、性能、可靠性、可支持性和对庞大用户群的数据可用性方面领先于传统SQL。为了有效地处理每天产生的大量数据,Hadoop框架有助于及时捕获、存储、处理、过滤,并最终将其存储在一个集中的地方。

推荐文章

这是一个关于Hadoop与SQL的区别的指南。在这里,我们已经讨论了Hadoop与SQL的头对头比较,关键区别以及信息图表和比较表。你也可以看看下面的文章,以了解更多信息

  1. Hadoop vs Hive - 找出最好的区别
  2. 了解Hadoop与Redshift之间的10个有用的区别
  3. HADOOP vs RDBMS|了解12个有用的区别
  4. Hadoop vs Spark:掌握Hadoop与RDBMS的区别

The postHadoop vs SQLappeared first onEDUCBA.