Package io.trino.plugin.pinot.client
Class PinotClient
- java.lang.Object
-
- io.trino.plugin.pinot.client.PinotClient
-
public class PinotClient extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePinotClient.BrokerResultRowstatic classPinotClient.BrokersForTablestatic classPinotClient.GetTablesstatic classPinotClient.QueryRequeststatic classPinotClient.ResultsIteratorstatic classPinotClient.TimeBoundary
-
Constructor Summary
Constructors Constructor Description 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 Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidaddJsonBinders(io.airlift.json.JsonCodecBinder jsonCodecBinder)Iterator<PinotClient.BrokerResultRow>createResultIterator(ConnectorSession session, PinotQueryInfo query, List<PinotColumnHandle> columnHandles)columnIndices: column name -> column index from column handles indiceToGroupByFunction(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)List<String>getAllBrokersForTable(String table)protected com.google.common.collect.Multimap<String,String>getAllTables()StringgetBrokerHost(String table)static <K,V>
VgetFromCache(com.google.common.cache.LoadingCache<K,V> cache, K key)StringgetPinotTableNameFromTrinoTableName(String trinoTableName)StringgetPinotTableNameFromTrinoTableNameIfExists(String trinoTableName)List<String>getPinotTableNames()Map<String,Map<String,List<String>>>getRoutingTableForTable(String tableName)org.apache.pinot.spi.data.SchemagetTableSchema(String table)PinotClient.TimeBoundarygetTimeBoundaryForTable(String table)
-
-
-
Constructor Detail
-
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 Detail
-
addJsonBinders
public static void addJsonBinders(io.airlift.json.JsonCodecBinder jsonCodecBinder)
-
doHttpActionWithHeadersJson
protected <T> T doHttpActionWithHeadersJson(io.airlift.http.client.Request.Builder requestBuilder, Optional<String> requestBody, io.airlift.json.JsonCodec<T> codec, com.google.common.collect.Multimap<String,String> additionalHeaders)
-
getTableSchema
public org.apache.pinot.spi.data.Schema getTableSchema(String table) throws Exception
- Throws:
Exception
-
getFromCache
public static <K,V> V getFromCache(com.google.common.cache.LoadingCache<K,V> cache, K key)
-
getPinotTableNameFromTrinoTableNameIfExists
public String getPinotTableNameFromTrinoTableNameIfExists(String trinoTableName)
-
getPinotTableNameFromTrinoTableName
public String getPinotTableNameFromTrinoTableName(String trinoTableName)
-
getRoutingTableForTable
public Map<String,Map<String,List<String>>> getRoutingTableForTable(String tableName)
-
getTimeBoundaryForTable
public PinotClient.TimeBoundary getTimeBoundaryForTable(String table)
-
createResultIterator
public Iterator<PinotClient.BrokerResultRow> createResultIterator(ConnectorSession session, PinotQueryInfo query, List<PinotColumnHandle> columnHandles)
columnIndices: column name -> column index from column handles indiceToGroupByFunction(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)
-
-