Package io.trino.plugin.pinot.client
Class PinotClient
java.lang.Object
io.trino.plugin.pinot.client.PinotClient
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic classstatic classstatic classstatic classstatic class -
Constructor Summary
ConstructorsConstructorDescriptionPinotClient(PinotConfig config, PinotHostMapper pinotHostMapper, io.airlift.http.client.HttpClient httpClient, ExecutorService executor, io.airlift.json.JsonCodec<PinotClient.GetTables> tablesJsonCodec, io.airlift.json.JsonCodec<PinotClient.BrokersForTable> brokersForTableJsonCodec, io.airlift.json.JsonCodec<PinotClient.TimeBoundary> timeBoundaryJsonCodec, io.airlift.json.JsonCodec<org.apache.pinot.common.response.broker.BrokerResponseNative> brokerResponseCodec, PinotControllerAuthenticationProvider controllerAuthenticationProvider, PinotBrokerAuthenticationProvider brokerAuthenticationProvider) -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddJsonBinders(io.airlift.json.JsonCodecBinder jsonCodecBinder) createResultIterator(ConnectorSession session, PinotQueryInfo query, List<PinotColumnHandle> columnHandles) columnIndices: column name -> column index from column handles indiceToGroupByFunction<Int,String> (groupByFunctions): aggregationIndex -> groupByFunctionName(columnName) groupByFunctions is for values groupByColumnNames: from aggregationResult.groupByResult.groupByColumnNames() aggregationResults[GroupByColumns, GroupByResult] GroupByColumns: String[] // column names, i.e.protected <T> TdoHttpActionWithHeadersJson(io.airlift.http.client.Request.Builder requestBuilder, Optional<String> requestBody, io.airlift.json.JsonCodec<T> codec, com.google.common.collect.Multimap<String, String> additionalHeaders) static <T> TdoWithRetries(int retries, Function<Integer, T> caller) static PinotClient.ResultsIteratorfromResultTable(org.apache.pinot.common.response.broker.BrokerResponseNative brokerResponse, List<PinotColumnHandle> columnHandles, int groupByClauses) getAllBrokersForTable(String table) getBrokerHost(String table) static <K,V> V getFromCache(com.google.common.cache.LoadingCache<K, V> cache, K key) getPinotTableNameFromTrinoTableName(String trinoTableName) getPinotTableNameFromTrinoTableNameIfExists(String trinoTableName) getRoutingTableForTable(String tableName) org.apache.pinot.spi.data.SchemagetTableSchema(String table) getTimeBoundaryForTable(String table)
-
Constructor Details
-
PinotClient
@Inject public PinotClient(PinotConfig config, PinotHostMapper pinotHostMapper, io.airlift.http.client.HttpClient httpClient, ExecutorService executor, io.airlift.json.JsonCodec<PinotClient.GetTables> tablesJsonCodec, io.airlift.json.JsonCodec<PinotClient.BrokersForTable> brokersForTableJsonCodec, io.airlift.json.JsonCodec<PinotClient.TimeBoundary> timeBoundaryJsonCodec, io.airlift.json.JsonCodec<org.apache.pinot.common.response.broker.BrokerResponseNative> brokerResponseCodec, PinotControllerAuthenticationProvider controllerAuthenticationProvider, PinotBrokerAuthenticationProvider brokerAuthenticationProvider)
-
-
Method Details
-
addJsonBinders
public static void addJsonBinders(io.airlift.json.JsonCodecBinder jsonCodecBinder) -
doHttpActionWithHeadersJson
-
getAllTables
-
getTableSchema
- Throws:
Exception
-
getPinotTableNames
-
getFromCache
public static <K,V> V getFromCache(com.google.common.cache.LoadingCache<K, V> cache, K key) -
getPinotTableNameFromTrinoTableNameIfExists
-
getPinotTableNameFromTrinoTableName
-
getAllBrokersForTable
-
getBrokerHost
-
getRoutingTableForTable
-
getTimeBoundaryForTable
-
createResultIterator
public Iterator<PinotClient.BrokerResultRow> createResultIterator(ConnectorSession session, PinotQueryInfo query, List<PinotColumnHandle> columnHandles) columnIndices: column name -> column index from column handles indiceToGroupByFunction<Int,String> (groupByFunctions): aggregationIndex -> groupByFunctionName(columnName) groupByFunctions is for values groupByColumnNames: from aggregationResult.groupByResult.groupByColumnNames() aggregationResults[GroupByColumns, GroupByResult] GroupByColumns: String[] // column names, i.e. group by foo, bar, baz GroupByResult: Row[] Row: {group: String[] // values of groupBy columns, value: aggregationResult}Results: aggregationResults.get(0..aggregationResults.size()) Result: function, value means columnName -> columnValue
-
fromResultTable
public static PinotClient.ResultsIterator fromResultTable(org.apache.pinot.common.response.broker.BrokerResponseNative brokerResponse, List<PinotColumnHandle> columnHandles, int groupByClauses) -
doWithRetries
-