Hive 如何跨蜂箱和presto处理蜂箱锁定

Hive 如何跨蜂箱和presto处理蜂箱锁定,hive,presto,trino,Hive,Presto,Trino,我有几个配置单元表是从spark和配置单元插入的。这些表格也可由presto上的分析师访问。很自然,我们遇到了一些时间窗口,用户遇到了不完整的数据集,因为presto忽略了锁 我能想到的选择是: 将presto配置单元连接器叉入,以适当地支撑配置单元S和X锁。这不算太糟,但是正确地做起来很费时 插入覆盖完成后,交换配置单元元存储上的表位置。这是可以的,但有点混乱,因为我们喜欢在数据库级别存储显式位置,并让表继承位置 停止在这些表上执行insert OVERRIDE,只需为已更改的内容添加一个新

我有几个配置单元表是从spark和配置单元插入的。这些表格也可由presto上的分析师访问。很自然,我们遇到了一些时间窗口,用户遇到了不完整的数据集,因为presto忽略了锁

我能想到的选择是:

  • 将presto配置单元连接器叉入,以适当地支撑配置单元S和X锁。这不算太糟,但是正确地做起来很费时
  • 插入覆盖完成后,交换配置单元元存储上的表位置。这是可以的,但有点混乱,因为我们喜欢在数据库级别存储显式位置,并让表继承位置
  • 停止在这些表上执行insert OVERRIDE,只需为已更改的内容添加一个新分区,然后在写入新分区后,更改配置单元表以查看它。然后,我们可以在数据的顶部创建视图,以正确协调每行的最新版本
  • 停止在s3上执行插入覆盖,因为s3有一个从配置单元暂存复制到目标表的长窗口。如果我们使用hdfs进行所有插入覆盖,我们仍然会遇到问题,但这是在完成hdfs mv所需的时间范围内完成的,而hdfs mv的速度要快得多。(可能不好:我们仍然有一个窗口可以获取不完整的数据)

我的问题是人们通常是如何处理的?这似乎是一个常见的场景,会有一个明确的解决方案,但我似乎错过了它。对于任何可以查询hive元存储并直接与hdfs/s3交互的第三方工具,通常都会提出这一问题,而不考虑hive锁。

在Presto for hive中处理ACID存在一个公开问题。