Hive 股票数据SQL分析[Hive 案例]

股票数据

股票数据获取

1.  网址: http://money.163.com/stock/

2.  输入搜索关键字

Hive 股票数据SQL分析[Hive 案例]_第1张图片

3.  资金流向

Hive 股票数据SQL分析[Hive 案例]_第2张图片

4.  历史交易数据

Hive 股票数据SQL分析[Hive 案例]_第3张图片

5.  下载数据

数据预处理

1.  数据格式

Hive 股票数据SQL分析[Hive 案例]_第4张图片

2.  删除首行并独立保存,Hive 建表时参考作为列名

3.  处理数据编码,另存为UTF-8避免Hive加载中文乱码

4.  处理后数据格式如下

Hive 股票数据SQL分析[Hive 案例]_第5张图片

数据上传

上传HDFS

1.  HDFS中新建存储目录[/data已经存在,如不存在先创建data目录]

hdfs dfs -mkdir  /data/stock

2.  从本地上传[本地存储目录为/app/tvcdata/stock/]

hdfs dfs -put /app/tvcdata/stock/   /data

3.  数据确认

hdfs dfs -ls /data/stock

Hive环境

服务启动

1.  启动HiveServer2

nohup ./hive--service hiveserver2 &

2.  验证服务

ps aux |grep hive

http://host106:10002/hiveserver2.jsp

Hive 股票数据SQL分析[Hive 案例]_第6张图片

连接beeline shell

1.  连接到default数据库[default为默认数据库]

./beeline -u jdbc:hive2://localhost:10000/default -nroot -p root

2.  创建数据库 mystock

createdatabase mystock;

3.  选中创建的数据库

use mystock;

4.  查看当前选中的数据库

select current_database();

创建Hive表

1.       创建表[这里创建为外部表,使用’ org.apache.hadoop.hive.serde2.OpenCSVSerde’编码解码器]

createexternal table if not exists stock(cdate date,code string,namestring,closeprice float,maxprice float,minprice float,openprice float,prepricefloat,updownlimit float,updownrange float,turnoverrate float,volume float,turnover float,totalvalue float, circulationvalue float) comment '股票信息表' row format  serde'org.apache.hadoop.hive.serde2.OpenCSVSerde' stored as textfile location '/data/stock/';

2.       查看表信息

describe  stock;

Hive 股票数据SQL分析[Hive 案例]_第7张图片

基本操作

基本查询

1.        分页

select code,name,closeprice from stock limit 0,5;

Hive 股票数据SQL分析[Hive 案例]_第8张图片

2.        条件查询

select closepricefrom stock where code='\'300212' and cdate='2017-10-20';

3.        排序

selectcode,name,closeprice  from stock order bycloseprice desc limit 0,10;

上述查询触发了MR操作

Hive 股票数据SQL分析[Hive 案例]_第9张图片

Hive 股票数据SQL分析[Hive 案例]_第10张图片

4.        函数

selectmax(closeprice) as maxcloseprice,max(totalvalue) as maxtotalvalue from stock;

Hive 股票数据SQL分析[Hive 案例]_第11张图片

5.        聚合

select code,count(1)as totalrecord from stock group by code;

Hive 股票数据SQL分析[Hive 案例]_第12张图片

添加索引

         股票查询以日期作为索引列比较合适

 

1.        为cdate[日期]创建索引

create index index_stock_cdata on table stock(cdate) as'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERREDREBUILD;

2.        查看索引

show index on  stock;

Hive 股票数据SQL分析[Hive 案例]_第13张图片

你可能感兴趣的:(Hive,大数据,Hive)