Documentation ¶
Index ¶
- Constants
- Variables
- func GranDuration(duration string, origin string) granDuration
- func GranPeriod(period string, timeZone string, origin string) granPeriod
- type AggRefer
- type Aggregation
- func AggCardinality(name string, fieldNames []string, byRow ...bool) Aggregation
- func AggCount(name string) *Aggregation
- func AggDoubleMax(name, fieldName string) *Aggregation
- func AggDoubleMin(name, fieldName string) *Aggregation
- func AggDoubleSum(name, fieldName string) *Aggregation
- func AggFiltered(filter *Filter, aggregator *Aggregation) Aggregation
- func AggHistoFold(name string, fieldName string, resolution int32, numBuckets int32, ...) Aggregation
- func AggJavaScript(name, fnAggregate, fnCombine, fnReset string, fieldNames []string) Aggregation
- func AggLongMax(name, fieldName string) *Aggregation
- func AggLongMin(name, fieldName string) *Aggregation
- func AggLongSum(name, fieldName string) *Aggregation
- func AggMax(name, fieldName string) *Aggregation
- func AggMin(name, fieldName string) *Aggregation
- func AggRawJson(rawJson string) *Aggregation
- type Client
- type Column
- type ColumnItem
- type DimExtractionFn
- func DimExFnJavascript(function string) *DimExtractionFn
- func DimExFnPartial(expr string) *DimExtractionFn
- func DimExFnRegex(expr string) *DimExtractionFn
- func DimExFnSearchQuerySpec(query *SearchQuery) *DimExtractionFn
- func DimExFnTime(timeFormat, timeZone string, locale string, granularity string, asMillis bool) *DimExtractionFn
- type DimSpec
- type DimValue
- type Dimension
- type ExtractionFn
- type Filter
- func FilterAnd(filters ...*Filter) *Filter
- func FilterJavaScript(dimension, function string) *Filter
- func FilterLowerBound(dimension string, ordering Ordering, bound float32, strict bool) *Filter
- func FilterLowerUpperBound(dimension string, ordering Ordering, lowerBound float32, lowerStrict bool, ...) *Filter
- func FilterNot(filter *Filter) *Filter
- func FilterOr(filters ...*Filter) *Filter
- func FilterRegex(dimension, pattern string) *Filter
- func FilterSelector(dimension string, value interface{}) *Filter
- func FilterUpperBound(dimension string, ordering Ordering, bound float32, strict bool) *Filter
- type Granlarity
- type GroupbyItem
- type Having
- func HavingAnd(havings ...*Having) *Having
- func HavingEqualTo(agg string, value interface{}) *Having
- func HavingGreaterThan(agg string, value interface{}) *Having
- func HavingLessThan(agg string, value interface{}) *Having
- func HavingNot(having *Having) *Having
- func HavingOr(havings ...*Having) *Having
- type Intervals
- type Limit
- type Ordering
- type PostAggregation
- func PostAggArithmetic(name, fn string, fields []PostAggregation) PostAggregation
- func PostAggConstant(name string, value interface{}) PostAggregation
- func PostAggFieldAccessor(fieldName string) PostAggregation
- func PostAggFieldHyperUnique(fieldName string) PostAggregation
- func PostAggJavaScript(name, function string, fieldNames []string) PostAggregation
- func PostAggRawJson(rawJson string) PostAggregation
- type Query
- type QueryGroupBy
- type QueryScan
- type QuerySearch
- type QuerySegmentMetadata
- type QuerySelect
- type QueryTimeBoundary
- type QueryTimeseries
- type QueryTopN
- type QueryType
- type RegisteredLookupExtractionFn
- type ScanBlob
- type SearchItem
- type SearchQuery
- type SearchSort
- type SegmentMetaData
- type SelectBlob
- type SelectEvent
- type SelectResult
- type SimpleGran
- type TimeBoundary
- type TimeBoundaryItem
- type TimeExtractionDimensionSpec
- type TimeExtractionFn
- type Timeseries
- type ToInclude
- type TopNItem
- type TopNMetric
- type VirtualColumn
- type VirtualColumnOutputType
Constants ¶
View Source
const ( LOWERSTRICT = "lowerStrict" UPPERSTRICT = "upperStrict" LOWERLIMIT = "lowerLimit" UPPERLIMIT = "upperLimit" )
Filter constants
View Source
const ( TIMEOUT = "timeout" SKIPEMPTYBUCKETS = "skipEmptyBuckets" QUERYID = "queryId" )
Context constants
View Source
const ( DirectionASC = "ASCENDING" DirectionDESC = "DESCENDING" )
View Source
const (
DefaultEndPoint = "/druid/v2"
)
Variables ¶
View Source
var ( ToIncludeAll = &ToInclude{Type: "All"} ToIncludeNone = &ToInclude{Type: "None"} )
View Source
var ( SearchSortLexicographic = &SearchSort{Type: "lexicographic"} SearchSortStrlen = &SearchSort{Type: "strlen"} )
Functions ¶
func GranDuration ¶
func GranPeriod ¶
Types ¶
type AggRefer ¶
type AggRefer struct { Name string Refer string // The refer of Name, empty means Name has no refer. }
The agg reference.
type Aggregation ¶
type Aggregation struct { Type string `json:"type"` Name string `json:"name,omitempty"` FieldName string `json:"fieldName,omitempty"` FieldNames []string `json:"fieldNames,omitempty"` FnAggregate string `json:"fnAggregate,omitempty"` FnCombine string `json:"fnCombine,omitempty"` FnReset string `json:"fnReset,omitempty"` ByRow bool `json:"byRow,omitempty"` Filter *Filter `json:"filter,omitempty"` Resolution int32 `json:"resolution,omitempty"` NumBuckets int32 `json:"numBuckets,omitempty"` LowerLimit string `json:"lowerLimit,omitempty"` UpperLimit string `json:"upperLimit,omitempty"` Aggregator *Aggregation `json:"aggregator,omitempty"` Round bool `json:"round,omitempty"` }
func AggCardinality ¶
func AggCardinality(name string, fieldNames []string, byRow ...bool) Aggregation
func AggCount ¶
func AggCount(name string) *Aggregation
func AggDoubleMax ¶
func AggDoubleMax(name, fieldName string) *Aggregation
func AggDoubleMin ¶
func AggDoubleMin(name, fieldName string) *Aggregation
func AggDoubleSum ¶
func AggDoubleSum(name, fieldName string) *Aggregation
func AggFiltered ¶
func AggFiltered(filter *Filter, aggregator *Aggregation) Aggregation
func AggHistoFold ¶
func AggJavaScript ¶
func AggJavaScript(name, fnAggregate, fnCombine, fnReset string, fieldNames []string) Aggregation
func AggLongMax ¶
func AggLongMax(name, fieldName string) *Aggregation
func AggLongMin ¶
func AggLongMin(name, fieldName string) *Aggregation
func AggLongSum ¶
func AggLongSum(name, fieldName string) *Aggregation
func AggMax ¶
func AggMax(name, fieldName string) *Aggregation
func AggMin ¶
func AggMin(name, fieldName string) *Aggregation
func AggRawJson ¶
func AggRawJson(rawJson string) *Aggregation
type Client ¶
type ColumnItem ¶
type DimExtractionFn ¶
type DimExtractionFn struct { Type string `json:"type"` Expr string `json:"expr,omitempty"` Query *SearchQuery `json:"query,omitempty"` Format string `json:"format,omitempty"` Function string `json:"function,omitempty"` TimeZone string `json:"timeZone,omitempty"` Locale string `json:"locale,omitempty"` Granularity string `json:"granularity,omitempty"` AsMillis bool `json:"asMillis,omitempty"` }
func DimExFnJavascript ¶
func DimExFnJavascript(function string) *DimExtractionFn
func DimExFnPartial ¶
func DimExFnPartial(expr string) *DimExtractionFn
func DimExFnRegex ¶
func DimExFnRegex(expr string) *DimExtractionFn
func DimExFnSearchQuerySpec ¶
func DimExFnSearchQuerySpec(query *SearchQuery) *DimExtractionFn
func DimExFnTime ¶
func DimExFnTime(timeFormat, timeZone string, locale string, granularity string, asMillis bool) *DimExtractionFn
type DimSpec ¶
type DimSpec interface{}
func DimDefault ¶
func DimExtraction ¶
func DimExtraction(dimension, outputName string, fn *DimExtractionFn) DimSpec
type Dimension ¶
type Dimension struct { Type string `json:"type"` Dimension string `json:"dimension"` OutputName string `json:"outputName"` ExtractionFn *DimExtractionFn `json:"extractionFn,omitempty"` }
type ExtractionFn ¶
type ExtractionFn interface{}
type Filter ¶
type Filter struct { Type string `json:"type"` Dimension string `json:"dimension,omitempty"` Value interface{} `json:"value,omitempty"` Values interface{} `json:"values,omitempty"` Pattern string `json:"pattern,omitempty"` Function string `json:"function,omitempty"` Field *Filter `json:"field,omitempty"` Fields []*Filter `json:"fields,omitempty"` Upper float32 `json:"upper,omitempty"` Lower float32 `json:"lower,omitempty"` Ordering Ordering `json:"ordering,omitempty"` UpperStrict bool `json:"upperStrict,omitempty"` LowerStrict bool `json:"lowerStrict,omitempty"` ExtractionFn *ExtractionFn `json:"extractionFn,omitempty"` }
func FilterJavaScript ¶
func FilterLowerBound ¶
func FilterLowerUpperBound ¶
func FilterRegex ¶
func FilterSelector ¶
type Granlarity ¶
type Granlarity interface{}
type GroupbyItem ¶
type Having ¶
type Having struct { Type string `json:"type"` Aggregation string `json:"aggregation,omitempty"` Value interface{} `json:"value,omitempty"` HavingSpec *Having `json:"havingSpec,omitempty"` HavingSpecs []*Having `json:"havingSpecs,omitempty"` }
func HavingEqualTo ¶
func HavingGreaterThan ¶
func HavingLessThan ¶
type Limit ¶
type Limit struct { Type string `json:"type"` Limit int `json:"limit"` Columns []Column `json:"columns,omitempty"` }
func LimitDefault ¶
type PostAggregation ¶
type PostAggregation struct { Type string `json:"type"` Name string `json:"name,omitempty"` Value interface{} `json:"value,omitempty"` Fn string `json:"fn,omitempty"` Fields []PostAggregation `json:"fields,omitempty"` FieldName string `json:"fieldName,omitempty"` FieldNames []string `json:"fieldNames,omitempty"` Function string `json:"function,omitempty"` }
func PostAggArithmetic ¶
func PostAggArithmetic(name, fn string, fields []PostAggregation) PostAggregation
func PostAggConstant ¶
func PostAggConstant(name string, value interface{}) PostAggregation
func PostAggFieldAccessor ¶
func PostAggFieldAccessor(fieldName string) PostAggregation
func PostAggFieldHyperUnique ¶
func PostAggFieldHyperUnique(fieldName string) PostAggregation
func PostAggJavaScript ¶
func PostAggJavaScript(name, function string, fieldNames []string) PostAggregation
func PostAggRawJson ¶
func PostAggRawJson(rawJson string) PostAggregation
func (PostAggregation) GetReferAggs ¶
func (pa PostAggregation) GetReferAggs(parentName ...string) (refers []AggRefer)
Return the aggregations or post aggregations which this post aggregation used. It could be helpful while automatically filling the aggregations or post aggregations base on this.
type Query ¶
type Query interface { GetRawJSON() []byte // contains filtered or unexported methods }
The Query interface stands for any kinds of druid query.
type QueryGroupBy ¶
type QueryGroupBy struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Dimensions []DimSpec `json:"dimensions"` Granularity Granlarity `json:"granularity"` LimitSpec *Limit `json:"limitSpec,omitempty"` Having *Having `json:"having,omitempty"` Filter *Filter `json:"filter,omitempty"` Aggregations []Aggregation `json:"aggregations"` PostAggregations []PostAggregation `json:"postAggregations,omitempty"` Intervals Intervals `json:"intervals"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []GroupbyItem `json:"-"` RawJSON []byte }
func (*QueryGroupBy) GetRawJSON ¶
func (q *QueryGroupBy) GetRawJSON() []byte
type QueryScan ¶
type QueryScan struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Limit int `json:"limit,omitempty"` Columns []string `json:"columns,omitempty"` ResultFormat string `json:"resultFormat,omitempty"` Metric interface{} `json:"metric"` // *TopNMetric Filter *Filter `json:"filter,omitempty"` Intervals Intervals `json:"intervals"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []ScanBlob `json:"-"` RawJSON []byte }
func (*QueryScan) GetRawJSON ¶
type QuerySearch ¶
type QuerySearch struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Granularity Granlarity `json:"granularity"` Filter *Filter `json:"filter,omitempty"` Intervals Intervals `json:"intervals"` SearchDimensions []string `json:"searchDimensions,omitempty"` Query *SearchQuery `json:"query"` Sort *SearchSort `json:"sort"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []SearchItem `json:"-"` RawJSON []byte }
func (*QuerySearch) GetRawJSON ¶
func (q *QuerySearch) GetRawJSON() []byte
type QuerySegmentMetadata ¶
type QuerySegmentMetadata struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Intervals Intervals `json:"intervals"` ToInclude *ToInclude `json:"toInclude,omitempty"` Merge interface{} `json:"merge,omitempty"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []SegmentMetaData `json:"-"` RawJSON []byte }
func (*QuerySegmentMetadata) GetRawJSON ¶
func (q *QuerySegmentMetadata) GetRawJSON() []byte
type QuerySelect ¶
type QuerySelect struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Intervals Intervals `json:"intervals"` Filter *Filter `json:"filter,omitempty"` Dimensions []DimSpec `json:"dimensions"` Metrics []string `json:"metrics"` Granularity Granlarity `json:"granularity"` PagingSpec map[string]interface{} `json:"pagingSpec,omitempty"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult SelectBlob `json:"-"` RawJSON []byte }
func (*QuerySelect) GetRawJSON ¶
func (q *QuerySelect) GetRawJSON() []byte
type QueryTimeBoundary ¶
type QueryTimeBoundary struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Bound string `json:"bound,omitempty"` Context map[string]interface{} `json:"context,omitempty"` QueryResult []TimeBoundaryItem `json:"-"` RawJSON []byte }
func (*QueryTimeBoundary) GetRawJSON ¶
func (q *QueryTimeBoundary) GetRawJSON() []byte
type QueryTimeseries ¶
type QueryTimeseries struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Granularity Granlarity `json:"granularity"` Filter *Filter `json:"filter,omitempty"` Aggregations []Aggregation `json:"aggregations"` PostAggregations []PostAggregation `json:"postAggregations,omitempty"` Intervals Intervals `json:"intervals"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []Timeseries `json:"-"` RawJSON []byte }
func (*QueryTimeseries) GetRawJSON ¶
func (q *QueryTimeseries) GetRawJSON() []byte
type QueryTopN ¶
type QueryTopN struct { QueryType QueryType `json:"queryType"` DataSource string `json:"dataSource"` Granularity Granlarity `json:"granularity"` Dimension DimSpec `json:"dimension"` Threshold int `json:"threshold"` Metric interface{} `json:"metric"` // *TopNMetric Filter *Filter `json:"filter,omitempty"` Aggregations []Aggregation `json:"aggregations"` PostAggregations []PostAggregation `json:"postAggregations,omitempty"` Intervals Intervals `json:"intervals"` Context map[string]interface{} `json:"context,omitempty"` VirtualColumns []VirtualColumn `json:"virtualColumns,omitempty"` QueryResult []TopNItem `json:"-"` RawJSON []byte }
func (*QueryTopN) GetRawJSON ¶
type SearchItem ¶
type SearchQuery ¶
type SearchQuery struct { Type string `json:"type"` Value interface{} `json:"value,omitempty"` Values []interface{} `json:"values,omitempty"` }
func SearchQueryFragmentSearch ¶
func SearchQueryFragmentSearch(values []interface{}) *SearchQuery
func SearchQueryInsensitiveContains ¶
func SearchQueryInsensitiveContains(value interface{}) *SearchQuery
type SearchSort ¶
type SearchSort struct {
Type string `json:"type"`
}
type SegmentMetaData ¶
type SegmentMetaData struct { Id string `json:"id"` Intervals Intervals `json:"intervals"` Columns map[string]ColumnItem `json:"columns"` }
type SelectBlob ¶
type SelectBlob struct { Timestamp string `json:"timestamp"` Result SelectResult `json:"result"` }
Select json blob from druid comes back as following: http://druid.io/docs/latest/querying/select-query.html the interesting results are in events blob which we call as 'SelectEvent'.
type SelectEvent ¶
type SelectResult ¶
type SelectResult struct { PagingIdentifiers map[string]interface{} `json:"pagingIdentifiers"` Events []SelectEvent `json:"events"` }
type SimpleGran ¶
type SimpleGran string
const ( GranAll SimpleGran = "all" GranNone SimpleGran = "none" GranMinute SimpleGran = "minute" GranFifteenMin SimpleGran = "fifteen_minute" GranThirtyMin SimpleGran = "thirty_minute" GranHour SimpleGran = "hour" GranDay SimpleGran = "day" GranWeek SimpleGran = "week" GranMonth SimpleGran = "month" GranQuarter SimpleGran = "quarter" GranYear SimpleGran = "year" )
type TimeBoundary ¶
type TimeBoundaryItem ¶
type TimeBoundaryItem struct { Timestamp string `json:"timestamp"` Result TimeBoundary `json:"result"` }
type TimeExtractionDimensionSpec ¶
type TimeExtractionDimensionSpec struct { Type string `json:"type"` Dimension string `json:"dimension"` OutputName string `json:"outputName"` ExtractionFunction ExtractionFn `json:"extractionFn"` }
type TimeExtractionFn ¶
type Timeseries ¶
type ToInclude ¶
func ToIncludeList ¶
type TopNMetric ¶
type TopNMetric struct { Type string `json:"type"` Metric interface{} `json:"metric,omitempty"` PreviousStop string `json:"previousStop"` }
func TopNMetricAlphaNumeric ¶
func TopNMetricAlphaNumeric(previousStop string) *TopNMetric
func TopNMetricInverted ¶
func TopNMetricInverted(metric *TopNMetric) *TopNMetric
func TopNMetricLexicographic ¶
func TopNMetricLexicographic(previousStop string) *TopNMetric
func TopNMetricNumeric ¶
func TopNMetricNumeric(metric string) *TopNMetric
type VirtualColumn ¶
type VirtualColumn struct { Type string `json:"type"` Name string `json:"name"` Expression string `json:"expression"` OutputType VirtualColumnOutputType `json:"outputType"` }
func NewVirtualColumn ¶
func NewVirtualColumn(name string, expression string, outputType VirtualColumnOutputType) VirtualColumn
type VirtualColumnOutputType ¶
type VirtualColumnOutputType string
const ( VirtualColumnLong VirtualColumnOutputType = "LONG" VirtualColumnFloat VirtualColumnOutputType = "FLOAT" VirtualColumnDouble VirtualColumnOutputType = "DOUBLE" VirtualColumnString VirtualColumnOutputType = "STRING" )
Click to show internal directories.
Click to hide internal directories.