APP下载

Hive 大数据仓库构建与应用—以大陆在美上市股票数据为例

2021-05-07

数字通信世界 2021年4期
关键词:数据表数据仓库结构化

(西安欧亚学院,陕西 西安 710000)

1 Hive 数据仓库简介

Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL 查询功能。其优点是学习成本低,用户可以通过类SQL 语句快速实现简单的MapReduce 统计,即使用户不熟悉MapReduce 程序,只要熟悉SQL 语言,也同样可以通过分布式集群环境进行数据查询、汇总和分析,Hive 十分适合数据仓库的统计分析。

Hive 的类SQL 语言HiveQL,并不完全支持SQL 标准,Hive 大多数的查询是通过MapReduce 实现,而数据库通常有自己的执行引擎,Hive 不支持更新操作、索引和事务,其子查询和连接操作也存在很多限制。Hive查询数据延迟性较高,是由于没有索引,需要扫描整个数据库表,而且HQL 转换为MapReduce 程序后,执行也有延迟。相对来说,数据库延迟较低;但是如果数据规模非常大的时候,Hive 的并行计算就能体现出优势。

2 Hive 数据仓库搭建与启动

2.1 Hive 数据仓库搭建流程

(1)配置Hive 前,需要给集群服务器配置元数据库,在这里采取MySQL 作为元数据库,服务器上先安装MySQL,并启动MySQL 服务。

(2)本地MySQL 环境已经配置好,下载并解压hive 插件:

[root@master opt]# tar -zxvf apache-hive-2.1.1-bin.tar.gz

[root@master opt]# mv apache-hive-2.1.1-bin hive

(3)接下来配置Hive 环境变量,修改/root/.bash_profile 文件,添加如下环境变量内容:

export HIVE_HOME=/opt/hive

export PATH=$PATH:$HIVE_HOME/bin

(4)修改/opt/hive/conf/下面的所有配置文件,通过mv 命令将所有文件后缀的“.template”去掉。

(5)修改hive 执行脚本文件hive-env.sh,添加内容如下:

export HIVE_CONF_DIR=/opt/hive/conf/

export HIVE_AUX_JARS_PATH=/opt/hive/lib/

(6)配置好后,将hive 所有文件分别传递到slave1和slave2。

(7)配置服务端和客户端的hive-site.xml 文件。

(8)配置java 连接mysql 的驱动包。

(9)修改slave1和slave2所需要的Hive 环境变量并加载生效。

2.2 Hive 数据仓库启动与监控

Hive 运行需要先启动Hadoop 服务,再启动MetaStore 服务和hiveserver2 服务。Metastore 即hivestore 服务端,主要功能是提供将DDL,DML 等语句转换为MapReduce 程序,提交到hdfs 集群并运行中。hiveserver2 是Hive 的服务端,主要提供Hive 服务,用户可以使用beeline、jdbc 等方式连接到Hive 服务

(1)启动Hadoop,启动yarn

(2)初始化元数据库并启动MetaStore 服务

schematool -dbType mysql -initSchema

[root@master~]# hive --service metastore &

(3)启动hiveserver2服务,操作如下:

[root@master~]# hiveserver2 &

HiveServer2可以通过hive 命令直接访问数据服务,但是新的命令行工具Beeline,它是基于SQLLine CLI 的JDBC 客户端。Beeline 工作模式有两种,即本地嵌入模式和远程模式。与连接MySQL 的工具Navicat 功能类似,可以理解为Beeline 的客户端。

2.3 Hive 数据仓库应用分析

在Hadoop 大数据平台上,构建Hive 数据仓库,在Hive 数据仓库中对海量结构化数据进行分析,能达到大数据分析和处理的需求。通过获取相关结构化应用数据,初步处理后,提交到HDFS 集群,创建Hive 数据表,并加载数据,可以通过Hive 数据仓库进行数据分析、查询和统计。

3 大陆在美上市股票数据获取、存储与统计分析

本案例中,通过爬虫获取腾讯证券网站在美上市股票数据,提交到集群服务器,创建Stock_zhengquan 股票数据库,并创建在美上市数据表stocks_CN_US,加载数据后,在Hive 集群环境对在美上市股票数据进行分析和统计,为股票证券相关金融公司的数据仓库应用和服务的技能。

3.1 大陆在美上市股票数据仓库构建

在Hive 数据仓库创建Stock_zhengquan 数据库后,创建在美上市股票数据表stocks_CN_US,HQL 操作代码如下:

3.2 大陆在美上市股票数据仓库查询

3.2.1 复杂查询

查询代码为“C”开头和“A”结尾的股票的代码、名称和最新价:

查询代码:

SELECT Symbol_en,stocksname,newprice FROM stocks_cn_us where Symbol_en Rlike "(^C.*|.*A$)"order by newprice desc limit 5;

查询结果如下:

BABA 阿里巴巴 252.75

CEO 中海油 131.6

CBPO 泰邦生物 119.78

CSIQ 阿特斯太阳能 46.35

SINA 新浪 43.28

3.2.2 连接查询

查询股票中波动幅度相等并且其中任何一个股价大于20元的股票信息:

SELECT distinct a.Symbol_en,a.stocksname,a.newprice,b.Symbol_en,

b.stocksname,b.newprice FROM stocks_cn_us a JOIN stocks_cn_us b ON a.fluctuation=b.fluctuation and a.Symbol_en<>b.Symbol_en WHERE a.newprice>20;

查询结果如下:

CBPO 泰邦生物 119.78

COE 无忧英语 24.88

COE 无忧英语 24.88

CBPO 泰邦生物 119.78

SINA 新浪 43.28

PME 平潭海洋公司 1.48

VIPS 唯品会 36.48

CGA 中国绿色农业 5.46

4 Hive 数据仓库推广与应用

将数据仓库技术运用于金融科技企业大数据分析系统,搭建Hive 数据仓库,构建不同类型的数据库和数据表,对海量结构化历史数据进行分布式存储和分析,能帮助金融科技企业决策者从海量数据中挖掘更高的数据价值,作出有利于金融科技企业股票分析和统计的决策。

猜你喜欢

数据表数据仓库结构化
改进的非结构化对等网络动态搜索算法
深度学习的单元结构化教学实践与思考
基于数据仓库的数据倾斜解决方案研究
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现