"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1730],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=d(n),m=r,g=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(g,i(i({ref:t},p),{},{components:n})):a.createElement(g,i({ref:t},p))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var d=2;d<o;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},6745:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var a=n(7462),r=n(3366),o=(n(7294),n(3905)),i=["components"],l={id:"datasketches-hll",title:"DataSketches HLL Sketch module"},s=void 0,d={unversionedId:"development/extensions-core/datasketches-hll",id:"development/extensions-core/datasketches-hll",title:"DataSketches HLL Sketch module",description:"\x3c!--",source:"@site/docs/26.0.0/development/extensions-core/datasketches-hll.md",sourceDirName:"development/extensions-core",slug:"/development/extensions-core/datasketches-hll",permalink:"/docs/26.0.0/development/extensions-core/datasketches-hll",draft:!1,tags:[],version:"current",frontMatter:{id:"datasketches-hll",title:"DataSketches HLL Sketch module"}},p={},u=[{value:"Aggregators",id:"aggregators",level:2},{value:"HLLSketchBuild aggregator",id:"hllsketchbuild-aggregator",level:3},{value:"HLLSketchMerge aggregator",id:"hllsketchmerge-aggregator",level:3},{value:"Post aggregators",id:"post-aggregators",level:2},{value:"Estimate",id:"estimate",level:3},{value:"Estimate with bounds",id:"estimate-with-bounds",level:3},{value:"Union",id:"union",level:3},{value:"Sketch to string",id:"sketch-to-string",level:3}],c={toc:u},m="wrapper";function g(e){var t=e.components,n=(0,r.Z)(e,i);return(0,o.kt)(m,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This module provides Apache Druid aggregators for distinct counting based on HLL sketch from ",(0,o.kt)("a",{parentName:"p",href:"https://datasketches.apache.org/"},"Apache DataSketches")," library. At ingestion time, this aggregator creates the HLL sketch objects to store in Druid segments. By default, Druid reads and merges sketches at query time. The default result is\nthe estimate of the number of distinct values presented to the sketch. You can also use post aggregators to produce a union of sketch columns in the same row.\nYou can use the HLL sketch aggregator on any column to estimate its cardinality."),(0,o.kt)("p",null,"To use this aggregator, make sure you ",(0,o.kt)("a",{parentName:"p",href:"/docs/26.0.0/development/extensions#loading-extensions"},"include")," the extension in your config file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'druid.extensions.loadList=["druid-datasketches"]\n')),(0,o.kt)("p",null,"For additional sketch types supported in Druid, see ",(0,o.kt)("a",{parentName:"p",href:"/docs/26.0.0/development/extensions-core/datasketches-extension"},"DataSketches extension"),"."),(0,o.kt)("h2",{id:"aggregators"},"Aggregators"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Property"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Required?"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"type")),(0,o.kt)("td",{parentName:"tr",align:null},"Either ",(0,o.kt)("a",{parentName:"td",href:"#hllsketchbuild-aggregator"},(0,o.kt)("inlineCode",{parentName:"a"},"HLLSketchBuild"))," or ",(0,o.kt)("a",{parentName:"td",href:"#hllsketchmerge-aggregator"},(0,o.kt)("inlineCode",{parentName:"a"},"HLLSketchMerge")),"."),(0,o.kt)("td",{parentName:"tr",align:null},"yes")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"name")),(0,o.kt)("td",{parentName:"tr",align:null},"String representing the output column to store sketch values."),(0,o.kt)("td",{parentName:"tr",align:null},"yes")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"fieldName")),(0,o.kt)("td",{parentName:"tr",align:null},"The name of the input field."),(0,o.kt)("td",{parentName:"tr",align:null},"yes")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"lgK")),(0,o.kt)("td",{parentName:"tr",align:null},"log2 of K that is the number of buckets in the sketch, parameter that controls the size and the accuracy. Must be between 4 and 21 inclusively."),(0,o.kt)("td",{parentName:"tr",align:null},"no, defaults to ",(0,o.kt)("inlineCode",{parentName:"td"},"12"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"tgtHllType")),(0,o.kt)("td",{parentName:"tr",align:null},"The type of the target HLL sketch. Must be ",(0,o.kt)("inlineCode",{parentName:"td"},"HLL_4"),", ",(0,o.kt)("inlineCode",{parentName:"td"},"HLL_6")," or ",(0,o.kt)("inlineCode",{parentName:"td"},"HLL_8")),(0,o.kt)("td",{parentName:"tr",align:null},"no, defaults to ",(0,o.kt)("inlineCode",{parentName:"td"},"HLL_4"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"round")),(0,o.kt)("td",{parentName:"tr",align:null},"Round off values to whole numbers. Only affects query-time behavior and is ignored at ingestion-time."),(0,o.kt)("td",{parentName:"tr",align:null},"no, defaults to ",(0,o.kt)("inlineCode",{parentName:"td"},"false"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"shouldFinalize")),(0,o.kt)("td",{parentName:"tr",align:null},"Return the final double type representing the estimate rather than the intermediate sketch type itself. In addition to controlling the finalization of this aggregator, you can control whether all aggregators are finalized with the query context parameters ",(0,o.kt)("a",{parentName:"td",href:"/docs/26.0.0/querying/query-context"},(0,o.kt)("inlineCode",{parentName:"a"},"finalize"))," and ",(0,o.kt)("a",{parentName:"td",href:"/docs/26.0.0/querying/sql-query-context"},(0,o.kt)("inlineCode",{parentName:"a"},"sqlFinalizeOuterSketches")),"."),(0,o.kt)("td",{parentName:"tr",align:null},"no, defaults to ",(0,o.kt)("inlineCode",{parentName:"td"},"true"))))),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"The default ",(0,o.kt)("inlineCode",{parentName:"p"},"lgK")," value has proven to be sufficient for most use cases; expect only very negligible improvements in accuracy with ",(0,o.kt)("inlineCode",{parentName:"p"},"lgK")," values over ",(0,o.kt)("inlineCode",{parentName:"p"},"16")," in normal circumstances.")),(0,o.kt)("h3",{id:"hllsketchbuild-aggregator"},"HLLSketchBuild aggregator"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchBuild",\n  "name": <output name>,\n  "fieldName": <metric name>,\n  "lgK": <size and accuracy parameter>,\n  "tgtHllType": <target HLL type>,\n  "round": <false | true>\n }\n')),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"HLLSketchBuild")," aggregator builds an HLL sketch object from the specified input column. When used during ingestion, Druid stores pre-generated HLL sketch objects in the datasource instead of the raw data from the input column.\nWhen applied at query time on an existing dimension, you can use the resulting column as an intermediate dimension by the ",(0,o.kt)("a",{parentName:"p",href:"#post-aggregators"},"post-aggregators"),"."),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"It is very common to use ",(0,o.kt)("inlineCode",{parentName:"p"},"HLLSketchBuild")," in combination with ",(0,o.kt)("a",{parentName:"p",href:"/docs/26.0.0/ingestion/rollup"},"rollup")," to create a ",(0,o.kt)("a",{parentName:"p",href:"../../ingestion/ingestion-spec.html#metricsspec"},"metric")," on high-cardinality columns.  In this example, a metric called ",(0,o.kt)("inlineCode",{parentName:"p"},"userid_hll")," is included in the ",(0,o.kt)("inlineCode",{parentName:"p"},"metricsSpec"),".  This will perform a HLL sketch on the ",(0,o.kt)("inlineCode",{parentName:"p"},"userid")," field at ingestion time, allowing for highly-performant approximate ",(0,o.kt)("inlineCode",{parentName:"p"},"COUNT DISTINCT")," query operations and improving roll-up ratios when ",(0,o.kt)("inlineCode",{parentName:"p"},"userid")," is then left out of the ",(0,o.kt)("inlineCode",{parentName:"p"},"dimensionsSpec"),"."),(0,o.kt)("pre",{parentName:"blockquote"},(0,o.kt)("code",{parentName:"pre"},'"metricsSpec": [\n  {\n    "type": "HLLSketchBuild",\n    "name": "userid_hll",\n    "fieldName": "userid",\n    "lgK": 12,\n    "tgtHllType": "HLL_4"\n  }\n]\n'))),(0,o.kt)("h3",{id:"hllsketchmerge-aggregator"},"HLLSketchMerge aggregator"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchMerge",\n  "name": <output name>,\n  "fieldName": <metric name>,\n  "lgK": <size and accuracy parameter>,\n  "tgtHllType": <target HLL type>,\n  "round": <false | true>\n}\n')),(0,o.kt)("p",null,"You can use the ",(0,o.kt)("inlineCode",{parentName:"p"},"HLLSketchMerge")," aggregator to ingest pre-generated sketches from an input dataset. For example, you can set up a batch processing job to generate the sketches before sending the data to Druid. You must serialize the sketches in the input dataset to Base64-encoded bytes. Then, specify ",(0,o.kt)("inlineCode",{parentName:"p"},"HLLSketchMerge")," for the input column in the native ingestion ",(0,o.kt)("inlineCode",{parentName:"p"},"metricsSpec"),"."),(0,o.kt)("h2",{id:"post-aggregators"},"Post aggregators"),(0,o.kt)("h3",{id:"estimate"},"Estimate"),(0,o.kt)("p",null,"Returns the distinct count estimate as a double."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchEstimate",\n  "name": <output name>,\n  "field": <post aggregator that returns an HLL Sketch>,\n  "round": <if true, round the estimate. Default is false>\n}\n')),(0,o.kt)("h3",{id:"estimate-with-bounds"},"Estimate with bounds"),(0,o.kt)("p",null,"Returns a distinct count estimate and error bounds from an HLL sketch.\nThe result will be an array containing three double values: estimate, lower bound and upper bound.\nThe bounds are provided at a given number of standard deviations (optional, defaults to 1).\nThis must be an integer value of 1, 2 or 3 corresponding to approximately 68.3%, 95.4% and 99.7% confidence intervals."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchEstimateWithBounds",\n  "name": <output name>,\n  "field": <post aggregator that returns an HLL Sketch>,\n  "numStdDev": <number of standard deviations: 1 (default), 2 or 3>\n}\n')),(0,o.kt)("h3",{id:"union"},"Union"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchUnion",\n  "name": <output name>,\n  "fields": <array of post aggregators that return HLL sketches>,\n  "lgK": <log2 of K for the target sketch>,\n  "tgtHllType": <target HLL type>\n}\n')),(0,o.kt)("h3",{id:"sketch-to-string"},"Sketch to string"),(0,o.kt)("p",null,"Human-readable sketch summary for debugging."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{\n  "type": "HLLSketchToString",\n  "name": <output name>,\n  "field": <post aggregator that returns an HLL Sketch>\n}\n')))}g.isMDXComponent=!0}}]);