4 回答
TA贡献1825条经验 获得超6个赞
你先明白数据仓库的作用--存储历史数据-进而对数据进行分析,只提供查询-不提供修改
1。Hive 的目标是做成数据仓库,所以它提供了SQL,提供了文件-表的映射关系,又由于Hive基于HDFS,所以不提供Update,因为HDFS本身就不支持。
2.HBase 是NoSQL数据库-所以不要跟传统混淆并谈-NoSQL 提供的是另一种思路来满足高性能的需求,而这些是传统数据库的短板,与传统数据库的理念不一样
3.load data 这个可以自己去查。Hbase要使用自己的API
4.是的。
5.这句话不对。
6.映射就是结构对应-如文件每一行的第一个字段-映射到Hive表的第一个字段
类似Hibernate的语法解析。
Hive本身实现了一套语法结构也就是操作符。如扫描文件等,最终记本都会转换成MapReduce来运行
TA贡献1798条经验 获得超3个赞
1. Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据。
2. Hive是基于MapReduce来处理数据,而MapReduce处理数据是基于行的模式;HBase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。
3. HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而Hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。
4. Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而HBase是近实时系统,支持实时查询。
5. Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。
6. Hive提供完整的SQL实现,通常被用来做一些基于历史数据的挖掘、分析。而HBase不适用与有join,多级索引,表关系复杂的应用场景。
- 4 回答
- 0 关注
- 1876 浏览
添加回答
举报