Class DruidConnectionImpl

    • Constructor Summary

      Constructors 
      Constructor Description
      DruidConnectionImpl​(java.lang.String url, java.lang.String coordinatorUrl)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Enumerable<Row> enumerable​(QueryType queryType, java.lang.String request, java.util.List<java.lang.String> fieldNames, java.util.concurrent.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 expect​(com.fasterxml.jackson.core.JsonToken token, com.fasterxml.jackson.core.JsonToken expected)  
      private void expectObjectField​(com.fasterxml.jackson.core.JsonParser parser, java.lang.String name)  
      private void expectScalarField​(com.fasterxml.jackson.core.JsonParser parser, java.lang.String name)  
      private java.lang.Long extractTimestampField​(com.fasterxml.jackson.core.JsonParser parser)  
      (package private) void metadata​(java.lang.String dataSourceName, java.lang.String timestampColumnName, java.util.List<org.joda.time.Interval> intervals, java.util.Map<java.lang.String,​SqlTypeName> fieldBuilder, java.util.Set<java.lang.String> metricNameBuilder, java.util.Map<java.lang.String,​java.util.List<ComplexMetric>> complexMetrics)
      Reads segment metadata, and populates a list of columns and metrics.
      private void parse​(QueryType queryType, java.io.InputStream in, Sink sink, java.util.List<java.lang.String> fieldNames, java.util.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​(java.util.List<java.lang.String> fieldNames, java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, int posTimestampField, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser)  
      private void parseFieldForName​(java.util.List<java.lang.String> fieldNames, java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, int posTimestampField, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser, java.lang.String fieldName)  
      private void parseFields​(java.util.List<java.lang.String> fieldNames, java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, int posTimestampField, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser)  
      private void parseFields​(java.util.List<java.lang.String> fieldNames, java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, Row.RowBuilder rowBuilder, com.fasterxml.jackson.core.JsonParser parser)  
      void request​(QueryType queryType, java.lang.String data, Sink sink, java.util.List<java.lang.String> fieldNames, java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes, DruidConnectionImpl.Page page)
      Executes a query request.
      (package private) java.util.Set<java.lang.String> tableNames()
      Reads data source names from Druid.
      private java.io.InputStream traceResponse​(java.io.InputStream in)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • url

        private final java.lang.String url
      • coordinatorUrl

        private final java.lang.String coordinatorUrl
      • DEFAULT_RESPONSE_TIMESTAMP_COLUMN

        public static final java.lang.String DEFAULT_RESPONSE_TIMESTAMP_COLUMN
        See Also:
        Constant Field Values
      • UTC_TIMESTAMP_FORMAT

        private static final java.text.SimpleDateFormat UTC_TIMESTAMP_FORMAT
      • TIMESTAMP_FORMAT

        private static final java.text.SimpleDateFormat TIMESTAMP_FORMAT
    • Constructor Detail

      • DruidConnectionImpl

        DruidConnectionImpl​(java.lang.String url,
                            java.lang.String coordinatorUrl)
    • Method Detail

      • request

        public void request​(QueryType queryType,
                            java.lang.String data,
                            Sink sink,
                            java.util.List<java.lang.String> fieldNames,
                            java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                            DruidConnectionImpl.Page page)
        Executes a query request.
        Parameters:
        queryType - Query type
        data - Data to post
        sink - Sink to which to send the parsed rows
        fieldNames - Names of fields
        fieldTypes - Types of fields (never null, but elements may be null)
        page - Page definition (in/out)
      • parse

        private void parse​(QueryType queryType,
                           java.io.InputStream in,
                           Sink sink,
                           java.util.List<java.lang.String> fieldNames,
                           java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                           DruidConnectionImpl.Page page)
        Parses the output of a query, sending the results to a Sink.
      • parseFields

        private void parseFields​(java.util.List<java.lang.String> fieldNames,
                                 java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                                 Row.RowBuilder rowBuilder,
                                 com.fasterxml.jackson.core.JsonParser parser)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFields

        private void parseFields​(java.util.List<java.lang.String> fieldNames,
                                 java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                                 int posTimestampField,
                                 Row.RowBuilder rowBuilder,
                                 com.fasterxml.jackson.core.JsonParser parser)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • parseField

        private void parseField​(java.util.List<java.lang.String> fieldNames,
                                java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                                int posTimestampField,
                                Row.RowBuilder rowBuilder,
                                com.fasterxml.jackson.core.JsonParser parser)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFieldForName

        private void parseFieldForName​(java.util.List<java.lang.String> fieldNames,
                                       java.util.List<org.apache.calcite.avatica.ColumnMetaData.Rep> fieldTypes,
                                       int posTimestampField,
                                       Row.RowBuilder rowBuilder,
                                       com.fasterxml.jackson.core.JsonParser parser,
                                       java.lang.String fieldName)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • expect

        private void expect​(com.fasterxml.jackson.core.JsonParser parser,
                            com.fasterxml.jackson.core.JsonToken token)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • expect

        private void expect​(com.fasterxml.jackson.core.JsonToken token,
                            com.fasterxml.jackson.core.JsonToken expected)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • expectScalarField

        private void expectScalarField​(com.fasterxml.jackson.core.JsonParser parser,
                                       java.lang.String name)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • expectObjectField

        private void expectObjectField​(com.fasterxml.jackson.core.JsonParser parser,
                                       java.lang.String name)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • extractTimestampField

        private java.lang.Long extractTimestampField​(com.fasterxml.jackson.core.JsonParser parser)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • enumerable

        public Enumerable<Row> enumerable​(QueryType queryType,
                                          java.lang.String request,
                                          java.util.List<java.lang.String> fieldNames,
                                          java.util.concurrent.ExecutorService service)
                                   throws java.io.IOException
        Executes a request and returns the resulting rows as an Enumerable, running the parser in a thread provided by service.
        Throws:
        java.io.IOException
      • metadata

        void metadata​(java.lang.String dataSourceName,
                      java.lang.String timestampColumnName,
                      java.util.List<org.joda.time.Interval> intervals,
                      java.util.Map<java.lang.String,​SqlTypeName> fieldBuilder,
                      java.util.Set<java.lang.String> metricNameBuilder,
                      java.util.Map<java.lang.String,​java.util.List<ComplexMetric>> complexMetrics)
        Reads segment metadata, and populates a list of columns and metrics.
      • tableNames

        java.util.Set<java.lang.String> tableNames()
        Reads data source names from Druid.
      • traceResponse

        private java.io.InputStream traceResponse​(java.io.InputStream in)