大数据存储和查询与传统关系/非关系数据库

t9aqgxwy  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

我在一所大型州立大学攻读计算机科学专业,现在在一家大型上市科技公司的数据科学系实习。我在学校学到了数据结构和算法(Map、树、图、排序算法、搜索算法、mapreduce等),并且我有一些mysql和sql查询个人项目的经验。
我这次实习的项目是创建一个 Jmeter 板,用于显示从hadoop数据库收集的分析。我很难理解这些数据是如何构造和查询的。我很确定hadoop中的所有数据都来自运行他们平台的oracle关系数据库。我想我的核心问题是,为什么hadoop和分布式处理需要从已经是结构化格式的数据库中收集分析?hadoop中存储的数据看起来像什么?有像mysql这样的表,或者像mongodb这样的json文档吗?我将通过druid查询hadoop,但我不确定这个数据库中到底有什么。
和我一起工作的工程师都很善于向我解释事情,特别是关于他们具体实施的问题,但他们只有一定的时间来帮助实习生,我想主动去学习一些这方面的知识。
作为旁注,令人难以置信的是,它在一个学校项目上的工作与在一个拥有数百万活跃用户和数PB敏感信息的公司的项目有多么不同。

x7yiwoj4

x7yiwoj41#

hadoop不是数据库,因此它没有表或任何关系或文档的继承结构。
例如,您可以使用hive、presto、sparksql在存储的各种格式的文件(如csv、json、avro、parquet等)上放置一个模式,但这些都是从hadoop文件系统读取的工具,而不是hadoop本身的一部分。该级别的表和数据库只是元数据,不能完全代表原始数据的样子
hadoop只是能够存储比oracle数据库更多的数据,而且是免费的,但是对于快速分析,建议以分布式方式在hadoop框架中计算统计数据,然后加载回索引系统(如druid)或任何实际的数据库

chy5wohz

chy5wohz2#

我明白你的问题。基本上,您试图理解hadoop中的数据是什么,是如何呈现的,为什么不是传统数据库,而是来自hadoop中传统数据库的数据。
关于hadoop,要理解的要点很少,
1hadoop不仅适用于结构化数据,还可以用于半结构化和非结构化数据。主要是为了分析数据。
2hadoop是一个框架,其中包含不同的组件。从hdfs查询结构化数据的主要组件是hive和impala。
三。就结构化数据而言,hadoop有hdfs和hivemetastore以结构化的方式存储数据。hdfs只存储数据文件(如text、avro、parquet、json等),而不存储元数据(如列名、行数等)。另一方面,hivemetastore基本上是传统的数据库,如mysql、postgres等,它只携带元数据。因此metastore知道表的数据存储在hdfs中的什么位置,即hdfs文件路径。更多关于这一点-你可以阅读我的帖子在这里
4为什么是hadoop?由于hadoop的分布式特性,它被设计成以高可用性存储大量数据。另外,hadoop是一次写入多次读取的,这意味着它更多的是用于分析和报告目的,而不是用于传统数据库的事务性用途。更重要的是,它的开源!
希望这有助于你得到一个基线!

相关问题