class DruidConnectionImpl extends Object implements DruidConnection
DruidConnection.| Modifier and Type | Class and Description |
|---|---|
private static class |
DruidConnectionImpl.BlockingQueueEnumerator<E>
An
Enumerator that gets its rows from a BlockingQueue. |
private static class |
DruidConnectionImpl.JsonAggregator
Element of the "aggregators" collection in the result of a
"segmentMetadata" call, populated by Jackson.
|
private static class |
DruidConnectionImpl.JsonColumn
Element of the "columns" collection in the result of a
"segmentMetadata" call, populated by Jackson.
|
private static class |
DruidConnectionImpl.JsonSegmentMetadata
Result of a "segmentMetadata" call, populated by Jackson.
|
(package private) static class |
DruidConnectionImpl.Page
Progress through a large fetch.
|
private static interface |
DruidConnectionImpl.RunnableQueueSink
|
| Modifier and Type | Field and Description |
|---|---|
private String |
coordinatorUrl |
private static String |
DEFAULT_RESPONSE_TIMESTAMP_COLUMN |
private static Set<String> |
SUPPORTED_TYPES |
private String |
url |
private static SimpleDateFormat |
UTC_TIMESTAMP_FORMAT |
| Constructor and Description |
|---|
DruidConnectionImpl(String url,
String coordinatorUrl) |
| Modifier and Type | Method and Description |
|---|---|
Enumerable<Row> |
enumerable(QueryType queryType,
String request,
List<String> fieldNames,
ExecutorService service)
Executes a request and returns the resulting rows as an
Enumerable, running the parser in a thread provided by
service. |
private void |
expect(com.fasterxml.jackson.core.JsonParser parser,
com.fasterxml.jackson.core.JsonToken token) |
private void |
expectObjectField(com.fasterxml.jackson.core.JsonParser parser,
String name) |
private void |
expectScalarField(com.fasterxml.jackson.core.JsonParser parser,
String name) |
private Long |
extractTimestampField(com.fasterxml.jackson.core.JsonParser parser) |
private boolean |
isSupportedType(String type) |
(package private) void |
metadata(String dataSourceName,
String timestampColumnName,
List<org.joda.time.Interval> intervals,
Map<String,SqlTypeName> fieldBuilder,
Set<String> metricNameBuilder)
Reads segment metadata, and populates a list of columns and metrics.
|
private void |
parse(QueryType queryType,
InputStream in,
Sink sink,
List<String> fieldNames,
List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
DruidConnectionImpl.Page page)
Parses the output of a query, sending the results to a
Sink. |
private void |
parseField(List<String> fieldNames,
List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
int posTimestampField,
Row.RowBuilder rowBuilder,
com.fasterxml.jackson.core.JsonParser parser) |
private void |
parseFields(List<String> fieldNames,
List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
int posTimestampField,
Row.RowBuilder rowBuilder,
com.fasterxml.jackson.core.JsonParser parser) |
private void |
parseFields(List<String> fieldNames,
List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
Row.RowBuilder rowBuilder,
com.fasterxml.jackson.core.JsonParser parser) |
void |
request(QueryType queryType,
String data,
Sink sink,
List<String> fieldNames,
List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
DruidConnectionImpl.Page page)
Executes a query request.
|
(package private) Set<String> |
tableNames()
Reads data source names from Druid.
|
private InputStream |
traceResponse(InputStream in) |
private final String url
private final String coordinatorUrl
private static final String DEFAULT_RESPONSE_TIMESTAMP_COLUMN
private static final SimpleDateFormat UTC_TIMESTAMP_FORMAT
public void request(QueryType queryType, String data, Sink sink, List<String> fieldNames, List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, DruidConnectionImpl.Page page)
queryType - Query typedata - Data to postsink - Sink to which to send the parsed rowsfieldNames - Names of fieldsfieldTypes - Types of fields (never null, but elements may be null)page - Page definition (in/out)private void parse(QueryType queryType, InputStream in, Sink sink, List<String> fieldNames, List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, DruidConnectionImpl.Page page)
Sink.private void parseFields(List<String> fieldNames, List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser) throws IOException
IOExceptionprivate void parseFields(List<String> fieldNames, List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, int posTimestampField, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser) throws IOException
IOExceptionprivate void parseField(List<String> fieldNames, List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, int posTimestampField, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser) throws IOException
IOExceptionprivate void expect(com.fasterxml.jackson.core.JsonParser parser,
com.fasterxml.jackson.core.JsonToken token)
throws IOException
IOExceptionprivate void expectScalarField(com.fasterxml.jackson.core.JsonParser parser,
String name)
throws IOException
IOExceptionprivate void expectObjectField(com.fasterxml.jackson.core.JsonParser parser,
String name)
throws IOException
IOExceptionprivate Long extractTimestampField(com.fasterxml.jackson.core.JsonParser parser) throws IOException
IOExceptionpublic Enumerable<Row> enumerable(QueryType queryType, String request, List<String> fieldNames, ExecutorService service) throws IOException
Enumerable, running the parser in a thread provided by
service.IOExceptionprivate boolean isSupportedType(String type)
void metadata(String dataSourceName, String timestampColumnName, List<org.joda.time.Interval> intervals, Map<String,SqlTypeName> fieldBuilder, Set<String> metricNameBuilder)
private InputStream traceResponse(InputStream in)
Copyright © 2012–2016 The Apache Software Foundation. All rights reserved.