配置单元已为事务启用了分块表



因此,我们正试图创建一个单元单元表,该表采用ORC格式,并使用以下语句为事务启用

create table orctablecheck ( id int,name string) clustered by (sno) into 3  buckets stored as orc TBLPROPERTIES ( 'transactional'='true')

该表是在配置单元中创建的,也反映在Metastore和Spark SQL(我们已将其配置为在配置单元JDBC之上运行)中的Beeline中

我们现在通过配置单元将数据插入到该表中。然而,我们看到插入后,数据不会反映在Spark SQL中。它只在蜂巢中正确反映。

如果我们重新启动Thrift Server,该表仅显示表中的数据。

事务属性是否设置在您的表上?我观察到,hive事务存储结构还不能与spark一起工作。您可以通过查看配置单元控制台中下面命令输出中的transactional属性来确认这一点。

desc extended <tablename> ;

如果您需要访问事务表,请考虑进行主要压缩,然后尝试访问表

ALTER TABLE <tablename> COMPACT 'major';

我在配置单元中创建了一个事务表,并使用Spark(记录1,2,3)和配置单元(记录4)将数据存储在其中。

主要压实后,

  • 我可以在Hive中看到所有4条记录(使用直线)
  • 仅记录火花中的1,2,3(使用火花壳)
  • 无法更新配置单元中的记录1,2,3
  • 可以更新到配置单元中的记录4

最新更新