
1查询语言不同:hive是hql语言,mysql是sql语句;
2数据存储位置不同:hive是把数据存储在hdfs上,而mysql数据是存储在自己的系统中;
3数据格式:hive数据格式可以用户自定义,mysql有自己的系统定义格式;
4数据更新:hive不支持数据更新,只可以读,不可以写,而sql支持数据更新;
5索引:hive没有索引,因此查询数据的时候是通过mapreduce很暴力的把数据都查询一遍,也造成了hive查询数据速度很慢的原因,而mysql有索引;
6延迟性:hive延迟性高,原因就是上边一点所说的,而mysql延迟性低;
7数据规模:hive存储的数据量超级大,而mysql只是存储一些少量的业务数据;
8底层执行原理:hive底层是用的mapreduce,而mysql是excutor执行器;
指定数据存放位置,如果没有指定,就会在hdfs的默认位置建立表文件。
Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。
Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:表(Table),外部表(External Table),分区(Partition),桶(Bucket)。
扩展资料:
Hive中的表和数据库中的表在概念上相似。 每个表在Hive中都有一个对应的目录来存储数据。
例如,一个表pvs,其在HDFS中的路径为:/ wh / pvs,其中wh是在 hive-sitexml 中由 ${hivemetastorewarehousedir} 指定的数据仓库的目录,所有表数据( 不包括外部表)存储在此目录中。
Partition 对应于数据库中的 Partition 列的密集索引,但是Hive中的Partition的组织方式与数据库中的完全不同。 在Hive中,表中的Partition与表下的目录相对应,所有Partition的数据都存储在相应的目录中。
在元数据库执行以下语句:
alter database hue character set latin1;
alter table beeswax_queryhistory modify `query` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
以上就是关于hive和mysql都是行数据库全部的内容,包括:hive和mysql都是行数据库、hive中创建外部分区表使用location是指定数据存放位置还是指数据来源、为什么linux 查看hive数据库中文不乱码,到 HUE里查看就是乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)