Hive的特性有哪些呢?
Hive的特性:
面向主题性:主题是一种抽象概念,数据综合体与分析需求相关!
集成性:确定分析主题后,寻找与主题相关的数据源数据,经过抽取转换加载(ETL)最终把数据变成表格式,统一干净规整的数据,填充到数据仓库的主题下!
非易失性:数仓式数据分析的平台,不是数据创造的平台,分析数据的规律而不是修改创造数据的规律。数仓的数据都是已经生产的历史数据,已经是客观事实!
时变性:数仓的数据会随着时间成周期性变化,分析的频率相关,一年一分析?一季度?一月?一天?一小时?
hive数仓架构
图示解释:
用户接口主要有三个:CLI JDBC/ODBC及WebUI
CLI(command line interface):即Shell命令行!
JDBC:传统数据库!
ODBC:是Hive的Java实现,与JDBC数据库类似!
WebUI:是通过浏览器访问Hive(浏览器中设置的埋点数据)
Hive将元数据存储到数据库中(meta store):目前只支持MySQL、derby(db)。Hive中的元数据包括表的名字,表的列分区及其属性,表的属性(是否是外部表等),表的数据所在目录等!
解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化及其查询计划(plan)的生成!生成的查询计划存储在HDFS中,并在随后有MR(MapReduce)调用执行!
Hive的数据存储在HDFS中,大部分的查询有MR(MapReduce)完成(包含 * 的查询,比如select * from table 不会生成[MR] MapReduce任务)
小节:
用户接口包含:CLI、JDBC、ODBC、WebUI
元数据存储:通常是存储在关系型数据库如MySQL、deber中!
解析器、编译器、优化器、执行器
Hive与Hadoop的关系:
Hive是基于Hadoop的数据仓库:
数据存储能力:Hadoop HDFS
数据分析能力:Hadoop MR(MapReduce)
把一份结构化数据映射成为一张表,通过提供用户编号sql hive转换为MR处理数据的能力 (下方为详细介绍如何将结构化数据映射为hive的一张表)!
如何将HDFS上的结构化数据映射为Hive中的一张表
文件路径似乎有规律。我们应该把结构化数据放在这条路径下吗?
答:不一定
在外部表中指定文件路径!
数据库.表 ====> /user/hive/warehouse/数据库.db/表名
注意:表创建字段的顺序和类型必须与文件一致!
create table t_3(id int ,name string ,age int )row format delimited fields terminated by ","
注意:如果类型不一致,hive将自动转换,不能保证转换成功,如果转换成功则显示,否则转换为null!
不一定需要指定分隔符,如果未指定,则将使用默认分隔符(例如)
create table t_1(id int ,name string , age int );
create table t_2(id int ,name string ,age int) row format delimited fields terminated by ",";
如果觉得对你有所帮助。记得收藏和关注呦!(每日更新各种框架)
如需转载请注明出处(创作不易请见谅)
和巨婴程序猿一起成长。让自己变得更优秀
想了解更多精彩内容,快来关注跟着巨婴去逆袭
我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~
领取专属 10元无门槛券
私享最新 技术干货