如何启用分区并使“Where”子句在自定义 Trino 插件中工作

问题描述 投票:0回答:1

我构建了一个自定义 Trino 插件,它从存储在文件系统中的 XML 文件中获取数据。

SELECT 
查询工作正常,现在我们需要使
WHERE
子句为此工作。据我所知,我们需要根据提供的分区条件来分割数据。

ChatGPT 建议“我需要为您的表定义分区列并在您的插件中实现分区修剪。

大家可以帮我解决这个问题吗?请参考以下代码

SplitManager 
实现:

public ConnectorSplitSource getSplits(ConnectorTransactionHandle transaction, ConnectorSession session,
        ConnectorTableHandle connectorTableHandle, DynamicFilter dynamicFilter, Constraint constraint) {
            ECFTrinoTableHandle tableHandle = (ECFTrinoTableHandle) connectorTableHandle;
            TupleDomain<ECFTrinoColumnHandle> predicate = tableHandle.getPartitionPredicates();
            List<ConnectorSplit> splits = new ArrayList<>();

          // Get the partitioning columns for the table
          List<String> partitionColumns = new ArrayList<>();
          partitionColumns.add("daterange");

          // Add code here to get the splits.


           Collection<Domain> domains=   predicate.getDomains().get().values();
           if (domains.size() != 0) {
            Domain dd = domains.stream().findFirst().get();
            dd.getValues().getRanges().getSpan().getLowValue();
           }
        }
java presto trino
1个回答
0
投票

我现在处于同样的情况,正在寻找访问拆分管理器中的过滤器列和值的方法。你解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.