Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Reg:配置单元中查询优化器的效率_Hadoop_Indexing_Hive_Hiveql_Hive Partitions - Fatal编程技术网

Hadoop Reg:配置单元中查询优化器的效率

Hadoop Reg:配置单元中查询优化器的效率,hadoop,indexing,hive,hiveql,hive-partitions,Hadoop,Indexing,Hive,Hiveql,Hive Partitions,在阅读了查询优化技术之后,我了解了以下技术 1. Indexing - bitmap and BTree 2. Partitioning 3. Bucketing 我了解了分区和bucketing之间的区别,以及何时使用它们,但我仍然不清楚索引实际上是如何工作的。索引的元数据存储在哪里?存储它的是namenode吗?也就是说,实际上在创建分区或存储桶时,我们可以在hdfs中看到多个目录,这解释了查询性能优化,但如何可视化索引?它们是否真的在现实生活中使用,尽管在图片中有分区和bucketing

在阅读了查询优化技术之后,我了解了以下技术

1. Indexing - bitmap and BTree
2. Partitioning
3. Bucketing
我了解了分区和bucketing之间的区别,以及何时使用它们,但我仍然不清楚索引实际上是如何工作的。索引的元数据存储在哪里?存储它的是namenode吗?也就是说,实际上在创建分区或存储桶时,我们可以在hdfs中看到多个目录,这解释了查询性能优化,但如何可视化索引?它们是否真的在现实生活中使用,尽管在图片中有分区和bucketing

请帮我回答上述问题,是否有专门针对hadoop和hive开发者社区的页面

  • Hive中的索引从未在现实生活中使用过,也从未有过效率,正如@mazaneicha在评论索引功能中所注意到的,Hive 3.0中完全删除了这些索引,请阅读以下Jira:。不管怎样,这都是一次伟大的尝试,多亏了我们吸取了宝贵的经验教训 但ORC中有轻量级的索引(其实不是经典的索引,而是min、max和bloomfilter,它有助于修剪条纹)。ORC索引也是最有效的,因为在插入期间对数据进行了排序(distribute+sort)

  • 如果分区模式对应于表的过滤方式或加载方式,则分区是最有效的(如果增量数据是整个分区,则允许并行加载分区,它可以有效地工作)

  • Bucketing有助于优化联接和分组方式,但排序合并bucket mapjoin有严重的限制,使其效率也不高。两个表应该具有相同的bucketing模式,这在现实生活中很少见,或者效率极低。装载铲斗时,还应对数据进行排序

  • 考虑使用带有内置索引和Bloom过滤器的ORC,减少表中的文件数量,以避免元数据过载,并避免映射程序复制数千个文件。 读这个和这个

    有用的链接

    正式文件:

    Cloudera社区:

    “索引从3.0开始就被删除了”,所以您不必费心了。