为什么要用Hive?
前面我用MapReduce端join操作两张表,大家也看到很麻烦,而现在有一个工具可以不用那么麻烦的去写MapReduce程序了,只需要用Hive就可以照样显示需要的结果。
Hive是基于Hadoop的一个数据仓库工具;它是MapReduce的一个封装,底层就是MapReduce程序;
Hive可以将结构化的数据文件(按照各字段分类的数据)映射成一张虚表,并提供类SQL查询功能;
有了Hive后我们就不用再写麻烦的MapReduce程序了。
说白了Hive的本质是把SQL语句转化成了MapReduce程序。
Hive中处理的数据分两部分存放:
① 处理的结构化数据,存储在HDFS中
② 表的元数据存储在元数据库mysql中
表的元数据和mysql中的结构化数据,通过映射,构成一张虚表,用于Hive查询数据分析。
接下来就看如何建表,其实和mysql语法有很多类似地方;
在添加mysql配置的时候就已经配置好了数据库名叫hive。
数据表分为内部表和外部表
(1)内部表(管理表)
HDFS中为所属数据库目录下的子文件夹
数据完全由Hive管理,删除表(元数据)会删除hdfs中数据
(2)外部表(External Tables)
数据保存在指定位置的HDFS路径中
Hive不完全管理数据,删除表(元数据)不会删除hdfs中数据
新建一张外部表
cerate external table [if not exists] customs(
cust_id string,
cus

本文介绍了Hive作为数据分析工具的优势,并详细讲解了如何创建Hive的内部表和外部表,包括列定义、数据类型和存储格式。此外,还提到了数据导入HDFS的步骤,以及删除库和表的操作。在创建数据库时,要注意字符集的选择,以避免出现错误。
最低0.47元/天 解锁文章
1418

被折叠的 条评论
为什么被折叠?



