gpt4 book ai didi

oracle - Hive 查询语言中的主键和索引是否可行?

转载 作者:行者123 更新时间:2023-12-05 07:58:37 32 4
gpt4 key购买 nike

我们正在尝试将 oracle 表迁移到 hive 并对其进行处理。目前oracle中的表有primary key,foreign key and unique key constraints.

我们可以在 hive 中复制相同的内容吗?

我们正在分析如何实现它。

最佳答案

hive indexing在 Hive 0.7.0 (HIVE-417) 中引入并在 Hive 3.0 (HIVE-18448) 中删除请阅读此 Jira 中的评论。该功能在 Hive 中完全没有用。这些索引对于大数据来说太昂贵了,RIP。

自 Hive 2.1.0 ( HIVE-13290 ) Hive 包括对未验证的主键和外键约束的支持。这些约束未经验证,上游系统需要在将数据加载到 Hive 之前确保数据完整性。这些约束对于生成 ER 图和查询的工具很有用。这种未经验证的约束也可用作 self 记录。如果表有这样的约束,你可以很容易地找出什么应该是 PK。

在 Oracle 数据库 Unique 中,PK 和 FK 约束由索引支持,因此它们可以快速工作并且非常有用。但这不是 Hive 的工作方式,也不是它的设计目的。

很正常的情况是当您在 HDFS 中加载带有半结构化数据的非常大的文件时。在其上构建索引成本太高,如果没有索引来检查 PK 违规,则只能扫描所有数据。通常您不能在 BigData 中强制执行约束。上游进程可以关注数据的完整性和一致性,但这并不能保证您最终不会在从不同来源加载的一些大表中的 Hive 中出现 PK 冲突。

一些文件存储格式,如 ORC具有内部轻量级“索引”以加速过滤和启用谓词下推(PPD),没有使用此类索引实现 PK 和 FK 约束。这是不可能做到的,因为通常你可以有许多这样的文件属于 Hive 中的同一个表,文件甚至可以有不同的模式。 Hive 为 PB 级创建,您可以在单次运行中处理 PB 级数据,数据可以是半结构化的,文件可以有不同的模式。 Hadoop 不支持随机写入,如果您想重建索引,这会增加更多的复杂性和成本。

关于oracle - Hive 查询语言中的主键和索引是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24213794/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com