sql拓展
sql与hive、与JAVA、与python的关系
数据库拓展
数据分SQL、NOSQL
-
SQL就是结构化数据,如关系型数据库
特点:存在关系模型,有清晰的结构划分
数据化查询数据规模有限、增长速度有预期 -
NOSQL 包括半结构化数据、非结构化数据
2.1 半结构化数据,包括EMAIL、XML文件
特点:非关系模型,有基本固定结构模式
解释:EMAIL有收件地址、收件人发件地址、发件人这些是固定的,但是内容是不固定的
2.2 非结构化数据,包括WORD、PPT、图片
特点:没有固定模式,采用内容管理
对NOSQL数据对结构化查询的支持比较差,而且海量数据增长速度难以预期,但是要挖掘信息还是需要这种海量的信息支持
数据库拓展–HIVE
HIVE是数据系统仓库工具
HIVE能做的事情:比假设一个公司有五个系统,每个系统都有操作型数据(比如在系统中进行了某项操作,那么就会有一条操作型数据的记录),HIVE系统是将这些操作型数据抽取出来,对数据进行数据清洗,在进行加工、汇总、整理,最后将所有数据放入数据仓库中。
Q1:为什么要进行加工整理这些工作
A1:保证数据一致性,因为不同的系统数据抽取时的数据口径可能不太一样
Q2:原始数据与数据仓库区别?
A2:数据仓库中的数据是面向主题的(比如按业务分类,或者按着使用目分类),经过事务处理的数据进入数据仓库是为了进行决策分析的。整个过程可能就是将NONSQL的数据经过加工后变成SQL数据,数据仓库中的数据就是结构型的数据。
数据仓库工具HIVE有什么特性?
(1)HIVE的底层架构是Hadoop,Hadoop这种结构就决定了HIVE能为海量数据提供存储和计算。
(2)HIVE提供工具ETL(ETL 数据提取转化加载),ETL可以存储、查询、分析存储在Hadoop中的大规模数据。
(即HIVE 最终得到的是结构型数据(SQL型),但是HIVE使用的底层逻辑是Hadoop海量数据(可以是NOSQL型)。HIVE架起了SQL与NOSQL之间的桥梁)
(3)在HIVE中使用的是一种类似SQL的查询语言,称为HQL。(也是结构化的查询语言)
数据库拓展–JAVA、Python
1.JAVA、Python都是编程语言
Q1:什么是编程语言?
A1:编程实现了人与机器的通信。从人类语言到机器语言是怎么跨越的?从人类语言,发展有Python、JAVA这种高级语言,再有汇编语言,最后到机器语言。
语言形式越接近于机器语言,那么这种语言则处理速度最快。语言形式越接近于人类语言,那么这种语言则越容易书写理解。
对比JAVA、Python区别
Python----有十分完善的数据分析生态系统(Numpy&Scipy、Pandas、matplotlib),可以实现各种数据分析和绘图,在机器学习、深度学习、神经网络有优势
JAVA—适合作为底层语言,适合企业级应用的编写,目前流行的大数据框架Hadoop、map-reduce很多部分是用java编写的,大数据中也有自己的优势。