配置单元CREATE TABLE
不会复制任何数据。数据保留在表DDL中指定的位置。 CREATE TABLE仅在Hive Metastore中创建元数据。
您以后可以在同一位置添加文件。
HDFS不允许更新。您可以删除文件并放入新文件。 select将在删除和放置新文件之间的中间返回空数据集。
如果它是S3文件系统,而您要重写相同的文件或删除它们,则最终可能会发生一致性问题(找不到文件等)。
另外,当您直接操作文件时,由于Hive不知道您已更改数据,因此不会刷新Hive统计信息。
Hive不知道是否更改了文件,因为文件系统和Hive松散连接。 Hive具有元数据,其中包含表架构定义,序列号和位置,统计信息等。在更改表位置中的数据后,它保持不变。
蜂巢式交易是原子性的。如果使用HiveQL插入或重写数据,则它将数据写入临时位置,并且只有在命令成功执行后,文件才会移动到表位置(如果重写,旧文件将被删除)。如果SQL失败,数据将保持命令之前的状态。
但是,由于Hive不会将数据从表位置复制到某些内部托管存储中,因此,如果在Hive读取文件时对文件进行操作,则在Hive进程中将是一个例外。 Hive无法在文件操作期间锁定表,因为Hive不知道该表。文件系统与hive完全分离,您可以执行文件系统中的所有操作,就好像根本没有hive一样。
另请参阅有关Hive ACID模式的信息:Hive Transactions
另请参阅the difference between managed and external tables in Hive。
本文链接:https://www.f2er.com/2246832.html