设计目的:让有SQL技能,但无hadoop知识的人来查询分析大数据。 1. 基于hadoop的数据仓库工具, 2. Hive中的一张表对应的是HDFS的一个目录。 3. 支持一种与SQL几乎完全相同的语言HiveQL,除了不支持更新,索引和事务控制。 4. SQL到MapReduce的映射器。 5. 提供shell,JDBC/ODBC,Thrift,web接口
hive的数据存储概念
- hive没有专门的数据存储格式,也没有索引,只有按文件目录方式组织的表,目录文件只需要确定列分隔符和行分隔符,Hive就可以解析数据为一个“表”。
Hive中数据按目录结构依次分为:
Table(External Table也就是非hive目录下的Table),Partition,Bucket。
- Table:对应一个相应的目录存储数据。例如,一个表 t1,它在HDFS中的路径就为:/warehouse/t1.而External Table不在/warehouse目录下面。
- Partition: 一个 Partition(分区)对应于表下的一个目录,例如:t1表中的c1,c2分区,则对应于 c1=1,c2=2的目录为:/warehouse/t1/c1=1/c2=2;对应于 ds = 20090801, ctry = CA 的 HDFS 子目录为;/wh/pvs/ds=20090801/ctry=CA。
- Buckets:对应一个文件。如:t1表中的c3列,将t3列分散至多个bucket,首先对t3列的值计算hash,对应hash值为0的文件为:/warehouse/t1/c1=1/c2=2/part-0000
喜欢 (0)or分享 (0)