数据模型与存储
-
Hive:
- Hive 使用的是传统的关系型数据模型,数据存储在 Hadoop 分布式文件系统 (HDFS) 中,通常是以文本格式(如 CSV 或 TSV)或者二进制格式(如 Parquet 或 ORC)。
- Hive 的表定义和元数据存储在一个外部的关系数据库中,如 MySQL,用于跟踪表结构、分区和其他元数据信息。
-
Iceberg:
- Iceberg 设计为一个现代的表格格式,它可以存储在任何支持文件系统的存储后端,如 HDFS、S3、GCS 等。
- Iceberg 使用文件级别的元数据来跟踪数据的变化历史,包括版本控制和快照管理,这使得数据管理和恢复变得更加容易。
- Iceberg 表格支持 Parquet 和 ORC 格式,但它的元数据模型更加丰富,支持事务日志和快照。
事务支持
-
Hive:
- Hive 不支持事务性的操作,如更新和删除记录。这意味着一旦数据被写入到 Hive 表中,只能通过追加新数据的方式来更新数据集。
- 对于数据修正或删除,通常需要重新加载整个表或分区,这在大规模数据集上效率低下。
-
Iceberg:
- Iceberg 支持事务性的操作,包括 INSERT、UPDATE 和 DELETE。这意味着用户可以直接在数据集上进行修改,而不