son*_*nia 8 indexing hive partition
我是hadoop和hive的新手,我知道hive中的索引和分区有什么区别?当我使用索引和分区时?
谢谢!
小智 6
索引是新的和不断发展的(正在添加功能),但目前索引仅限于单个表,不能与外部表一起使用。创建索引会创建一个单独的表。索引可以分区(匹配基表的分区)。索引用于加速表中数据的搜索。
分区在 hdfs 级别提供数据隔离,为每个分区创建子目录。分区允许限制在查询中读取的文件数和搜索的数据量。但是,要发生这种情况,必须在 WHERE 子句中指定分区列。
在构建数据模型时,您可以根据数据大小和预期使用模式确定索引和/或分区的最佳使用方式。
索尼娅,
\n\n以下是一本书中的一个部分,可能对您有用。
\n\n\n\n\n“Hive 的索引功能有限。通常的关系数据库意义上没有键,但您可以在列上建立索引来加快某些操作的速度。一个表的索引数据存储在另一个表中。\n 另外,该功能是相对较新,因此\xe2\x80\x99还没有很多选项。但是,索引过程被设计为可通过插件 Java 代码进行自定义,因此团队可以扩展该功能以满足他们的需求。\n 索引当逻辑分区实际上太多太小而无法使用时,也是分区的一个很好的替代方案。索引可以帮助从表中修剪一些块作为 MapReduce 作业的输入。并非所有查询都可以从索引\xe2\ 中受益x80\x94EXPLAIN 语法和 Hive 可用于确定给定查询是否由索引辅助。\n Hive 中的索引与关系数据库中的索引一样,需要仔细评估。
\n\n维护索引需要额外的磁盘空间,并且构建索引会产生处理成本。用户在查询表时必须权衡这些成本和它们提供的好处。”
\n
编程 Hive 书第 117 页
\n| 归档时间: |
|
| 查看次数: |
11036 次 |
| 最近记录: |