HIVE了解及SQL基础命令
hive(数据仓库工具)
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。术语“大数据”是大型数据集,其中包括体积庞大,高速,以及各种由与日俱增的数据的集合。使用传统的数据管理系统,它是难以加工大型数据。因此,Apache软件基金会推出了一款名为Hadoop的解决大数据管理和处理难题的框架。
SQL
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
常见SQL命令
SELECT 语句
作用:用于从表中选取数据,结果被存储在一个结果表中
语法:select 列名称 from 表名称
举例:select LastName from Person 或 select * from Person
WHERE 子句
作用:如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句
语法:SELECT 列名称 FROM 表名称WHERE 列 运算符 值
举例:SELECT * FROM Persons WHERE FirstName='John'
ORDER BY 语句
作用:ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序;如需按照降序,可使用DESC关键字
举例:ORDER BY SELECT LastName, FirstName FROM Persons ORDER BY FirstName
SELECT DISTINCT
作用:关键字DISTINCT 用于返回唯一不同的值
语法:SELECT DISTINCT 列名称 FROM 表名称
举例:要从Company列中仅选取唯一不同的值,
SELECTDISTINCT Company FROM Orders
AND 和 OR 运算符
作用: AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录
举例:使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人
SELECT* FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
SUM() 函数
作用:SUM 函数返回数值列的总数(总额)
语法:SELECT SUM(column_name) FROM table_name
举例:
我们希望查找 "OrderPrice" 字段的总数
SELECTSUM(OrderPrice) AS OrderTotal FROM Orders
GROUP BY 语句
“GroupBy”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理
举例:
select类别, sum(数量) as 数量之和fromA
groupby 类别
返回结果如下表,实际上就是分类汇总。
实例介绍:
1. 从persona_data_info 表中,查询job_id=279 的每个gender类别的人数总和
select gender,sum(persona_count) from persona_data_info where job_id=279 group by gender;
2. 从persona_data_city ,persona_city_map两个表中查询job_id=279且citycode= map.code
SELECTjob_id,citycode,persona_count,province,region,city_level FROM persona_data_city,persona_city_map where job_id=279 AND persona_data_city.citycode =persona_city_map.`code`;