<!DOCTYPE html>
<!-- Start _layouts/doc_page.html-->
<html lang="en">

<head>
<!-- Start _include/site_head.html -->
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="datasketches">

<title>DataSketches | </title>

<link rel="shortcut icon" href="/img/favicon.png">

<!-- original source: https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css -->
<link rel="stylesheet" href="/css/font-awesome.min.css">
<!-- original source: https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css -->
<link rel="stylesheet" href="/css/bootstrap.min.css">

<link rel="stylesheet" href="/css/fonts.css" type="text/css">

<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/header.css">
<link rel="stylesheet" href="/css/footer.css">
<link rel="stylesheet" href="/css/syntax.css">
<link rel="stylesheet" href="/css/docs.css">

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},showMathMenu:false,showMathMenuMSIE:false,showProcessingMessages:false});
</script>

<!-- original source: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMX_HTML-full -->
<script type="text/javascript" src="/js/MathJax.js?config=TeX-AMS_HTML"></script>

<!-- original source: https://code.jquery.com/jquery.min.js -->
<script src="/js/jquery.min.js"></script>

<!-- original source: https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js -->
<script src="/js/bootstrap.min.js"></script> <!-- 3.2.0-->
<!-- End _include/site_head.html -->

</head>

<body>
<!-- Start _include/nav_bar.html -->
<div class="navbar navbar-inverse navbar-static-top ds-nav">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="/" style="padding-top: 0px; padding-bottom: 0px;">
        <span class="ds-small-h-logo"></span></a>
    </div>
    <div class="navbar-collapse collapse">
      <ul class="nav navbar-nav navbar-right">
        <li>
          <a href="/docs/Background/TheChallenge.html">
            <span class="fa fa-info-circle"></span> DOCUMENTATION</a>
        </li>
        <li>
          <a href="/docs/Community/Downloads.html">
            <span class="fa fa-download"></span> DOWNLOAD</a>
        </li>
        <!--
        <li>
          <a href="/docs/Architecture/Components.html">
            <span class="fa fa-github"></span> GITHUB</a>
        </li>
        -->
        <li>
          <a href="/docs/Community/Research.html">
            <span class="fa fa-paper-plane"></span> RESEARCH</a>
        </li>
        <li>
          <a href="/docs/Community/index.html" style="padding-top: 0; padding-bottom: 0;">
            <img class="ds-small-man" src="/img/datasketches-ManWhite.svg"/>COMMUNITY</a>
        </li>
        <li>
          <ul class="nav navbar-nav navbar-right ds-nav">
            <li class="dropdown ds-nav" >
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" style="padding-top: 0; padding-bottom: 0;"><img class="apache-logo" src="/img/feather.svg"/>Apache <span class="caret"></span></a>
              <ul class="dropdown-menu ds-nav">
                <li><a href="https://www.apache.org/" target="_blank">Foundation</a></li>
                <li><a href="https://www.apache.org/events/current-event" target="_blank">Events</a></li>
                <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
                <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy Policy</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</div>
<!-- End _include/nav_bar.html -->


<!-- Start _include/javadocs.html -->
<div class="ds-header">
  <div class="container">
    <h4>API Snapshots:
      <a href="https://apache.github.io/datasketches-java/4.2.0/">Java Core</a>,
      <a href="https://apache.github.io/datasketches-cpp/5.0.0/">C++ Core</a>,
      <a href="https://apache.github.io/datasketches-python/main/">Python</a>,
      <a href="https://apache.github.io/datasketches-memory/master/">Memory</a>,
      <a href="/api/pig/snapshot/apidocs/index.html">Pig</a>,
      <a href="/api/hive/snapshot/apidocs/index.html">Hive</a>,
    </h4>
  </div>
</div>
<!-- End _include/javadocs.html -->


  <div class="container">
    <div class="row">
      <!-- Start ToC Block -->
      <div class="col-md-3">
        <div class="searchbox" style="position:relative">
          <gcse:searchbox-only></gcse:searchbox-only>
        </div>
<!-- Start _includes/toc.html -->
<!-- Computer Generated File, Do Not Edit! -->
<link rel="stylesheet" href="/css/toc.css">
<div id="toc" class="nav toc hidden-print">

  <p id="background">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_background">Background</a>
  </p>
  <div class="collapse" id="collapse_background">
    <li><a href="/docs/Background/TheChallenge.html">•The Challenge</a></li>
    <li><a href="/docs/Background/SketchOrigins.html">•Sketch Origins</a></li>
    <li><a href="/docs/Background/SketchElements.html">•Sketch Elements</a></li>
    <li><a href="/docs/Background/Presentations.html">•Presentations</a></li>
    <li><a href="https://github.com/apache/datasketches-website/tree/master/docs/pdf/DataSketches_deck.pdf">•Overview Slide Deck</a></li>
  </div>

  <p id="architecture-and-design">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_architecture_and_design">Architecture And Design</a>
  </p>
  <div class="collapse" id="collapse_architecture_and_design">
    <li><a href="/docs/Architecture/MajorSketchFamilies.html">•The Major Sketch Families</a></li>
    <li><a href="/docs/Architecture/LargeScale.html">•Large Scale Computing</a></li>
    <li><a href="/docs/Architecture/KeyFeatures.html">•Key Features</a></li>
    <li><a href="/docs/Architecture/SketchFeaturesMatrix.html">•Sketch Features Matrix</a></li>
    <li><a href="/docs/Architecture/Components.html">•Components</a></li>
    <li><a href="/docs/Architecture/SketchesByComponent.html">•Sketches by Component</a></li>
    <li><a href="/docs/Architecture/SketchCriteria.html">•Sketch Criteria</a></li>

    <p id="memory-component">
      <a data-toggle="collapse" class="menu collapsed" href="#collapse_memory_component">Memory Component</a>
    </p>
    <div class="collapse" id="collapse_memory_component">
      <li><a href="/docs/Memory/MemoryComponent.html">•Memory Component</a></li>
      <li><a href="/docs/Memory/MemoryPerformance.html">•Memory Component Performance</a></li>
    </div>
    <li><a href="/docs/Architecture/OrderSensitivity.html">•Notes on Order Sensitivity</a></li>
    <li><a href="/docs/Architecture/Concurrency.html">•Notes on Concurrency</a></li>
  </div>

  <p id="sketch-families">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_sketch_families">Sketch Families</a>
  </p>
  <div class="collapse" id="collapse_sketch_families">

    <p id="distinct-counting">
      <a data-toggle="collapse" class="menu collapsed" href="#collapse_distinct_counting">Distinct Counting</a>
    </p>
    <div class="collapse" id="collapse_distinct_counting">
      <li><a href="/docs/DistinctCountFeaturesMatrix.html">•Features Matrix</a></li>
      <li><a href="/docs/DistinctCountMeritComparisons.html">•Figures-of-Merit Comparison</a></li>

      <p id="cpc-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_cpc_sketches">CPC Sketches</a>
      </p>
      <div class="collapse" id="collapse_cpc_sketches">
        <li><a href="/docs/CPC/CPC.html">•CPC Sketch</a></li>
        <li><a href="/docs/CPC/CpcPerformance.html">•CPC Sketch Performance</a></li>

        <p id="cpc-examples">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_cpc_examples">CPC Examples</a>
        </p>
        <div class="collapse" id="collapse_cpc_examples">
          <li><a href="/docs/CPC/CpcJavaExample.html">•CPC Sketch Java Example</a></li>
          <li><a href="/docs/CPC/CpcCppExample.html">•CPC Sketch C++ Example</a></li>
          <li><a href="/docs/CPC/CpcPigExample.html">•CPC Sketch Pig UDFs</a></li>
          <li><a href="/docs/CPC/CpcHiveExample.html">•CPC Sketch Hive UDFs</a></li>
        </div>
      </div>

      <p id="hyperloglog-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_hyperloglog_sketches">HyperLogLog Sketches</a>
      </p>
      <div class="collapse" id="collapse_hyperloglog_sketches">
        <li><a href="/docs/HLL/HLL.html">•HLL Sketch</a></li>
        <li><a href="/docs/HLL/HllMap.html">•HLL Map Sketch</a></li>

        <p id="hll-examples">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_hll_examples">HLL Examples</a>
        </p>
        <div class="collapse" id="collapse_hll_examples">
          <li><a href="/docs/HLL/HllJavaExample.html">•HLL Sketch Java Example</a></li>
          <li><a href="/docs/HLL/HllCppExample.html">•HLL Sketch C++ Example</a></li>
          <li><a href="/docs/HLL/HllPigUDFs.html">•HLL Sketch Pig UDFs</a></li>
          <li><a href="/docs/HLL/HllHiveUDFs.html">•HLL Sketch Hive UDFs</a></li>
        </div>

        <p id="hll-studies">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_hll_studies">HLL Studies</a>
        </p>
        <div class="collapse" id="collapse_hll_studies">
          <li><a href="/docs/HLL/HllPerformance.html">•HLL Sketch Performance</a></li>
          <li><a href="/docs/HLL/Hll_vs_CS_Hllpp.html">•HLL vs Clearspring HLL++</a></li>
          <li><a href="/docs/HLL/HllSketchVsDruidHyperLogLogCollector.html">•HLL Sketch vs Druid HyperLogLogCollector</a></li>
        </div>
      </div>

      <p id="theta-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_sketches">Theta Sketches</a>
      </p>
      <div class="collapse" id="collapse_theta_sketches">
        <li><a href="/docs/Theta/ThetaSketchFramework.html">•Theta Sketch Framework</a></li>

        <p id="theta-examples">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_examples">Theta Examples</a>
        </p>
        <div class="collapse" id="collapse_theta_examples">
          <li><a href="/docs/Theta/ConcurrentThetaSketch.html">•Concurrent Theta Sketch</a></li>
          <li><a href="/docs/Theta/ThetaJavaExample.html">•Theta Sketch Java Example</a></li>
          <li><a href="/docs/Theta/ThetaSparkExample.html">•Theta Sketch Spark Example</a></li>
          <li><a href="/docs/Theta/ThetaPigUDFs.html">•Theta Sketch Pig UDFs</a></li>
          <li><a href="/docs/Theta/ThetaHiveUDFs.html">•Theta Sketch Hive UDFs</a></li>
        </div>

        <p id="kmv-tutorial">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_kmv_tutorial">KMV Tutorial</a>
        </p>
        <div class="collapse" id="collapse_kmv_tutorial">
          <li><a href="/docs/Theta/InverseEstimate.html">•The Inverse Estimate</a></li>
          <li><a href="/docs/Theta/KMVempty.html">•Empty Sketch</a></li>
          <li><a href="/docs/Theta/KMVfirstEst.html">•First Estimator</a></li>
          <li><a href="/docs/Theta/KMVbetterEst.html">•Better Estimator</a></li>
          <li><a href="/docs/Theta/KMVrejection.html">•Rejection Rules</a></li>
          <li><a href="/docs/Theta/KMVupdateVkth.html">•Update V(kth) Rule</a></li>
        </div>

        <p id="set-operations-and-p-sampling">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_set_operations_and_p-sampling">Set Operations and P-sampling</a>
        </p>
        <div class="collapse" id="collapse_set_operations_and_p-sampling">
          <li><a href="/docs/Theta/ThetaSketchSetOps.html">•Set Operations</a></li>
          <li><a href="/docs/Theta/ThetaSetOpsCornerCases.html">•Model & Test Set Operations</a></li>
          <li><a href="/docs/Theta/ThetaPSampling.html">•<i>p</i>-Sampling</a></li>
        </div>

        <p id="accuracy">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_accuracy">Accuracy</a>
        </p>
        <div class="collapse" id="collapse_accuracy">
          <li><a href="/docs/Theta/ThetaAccuracy.html">•Basic Accuracy</a></li>
          <li><a href="/docs/Theta/ThetaAccuracyPlots.html">•Accuracy Plots</a></li>
          <li><a href="/docs/Theta/ThetaErrorTable.html">•Relative Error Table</a></li>
          <li><a href="/docs/Theta/ThetaSketchSetOpsAccuracy.html">•SetOp Accuracy</a></li>
          <li><a href="/docs/Theta/AccuracyOfDifferentKUnions.html">•Unions With Different k</a></li>
        </div>

        <p id="size">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_size">Size</a>
        </p>
        <div class="collapse" id="collapse_size">
          <li><a href="/docs/Theta/ThetaSize.html">•Theta Sketch Size</a></li>
        </div>

        <p id="speed">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_speed">Speed</a>
        </p>
        <div class="collapse" id="collapse_speed">
          <li><a href="/docs/Theta/ThetaUpdateSpeed.html">•Update Speed</a></li>
          <li><a href="/docs/Theta/ThetaMergeSpeed.html">•Merge Speed</a></li>
        </div>

        <p id="theta-sketch-theory">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_sketch_theory">Theta Sketch Theory</a>
        </p>
        <div class="collapse" id="collapse_theta_sketch_theory">
          <li><a href="https://github.com/apache/datasketches-website/tree/master/docs/pdf/ThetaSketchFramework.pdf">•Theta Sketch Framework (PDF)</a></li>
          <li><a href="https://github.com/apache/datasketches-website/tree/master/docs/pdf/ThetaSketchEquations.pdf">•Theta Sketch Equations (PDF)</a></li>
          <li><a href="https://github.com/apache/datasketches-website/tree/master/docs/pdf/DataSketches.pdf">•DataSketches (PDF)</a></li>
          <li><a href="/docs/Theta/ThetaConfidenceIntervals.html">•Confidence Intervals Notes</a></li>
          <li><a href="/docs/Theta/ThetaMergingAlgorithm.html">•Merging Algorithm Notes</a></li>
          <li><a href="/docs/Theta/ThetaReferences.html">•Theta References</a></li>
        </div>
      </div>

      <p id="tuple-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_tuple_sketches">Tuple Sketches</a>
      </p>
      <div class="collapse" id="collapse_tuple_sketches">
        <li><a href="/docs/Tuple/TupleOverview.html">•Tuple Overview</a></li>

        <p id="tuple-examples">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_tuple_examples">Tuple Examples</a>
        </p>
        <div class="collapse" id="collapse_tuple_examples">
          <li><a href="/docs/Tuple/TupleJavaExample.html">•Tuple Java Example</a></li>
          <li><a href="/docs/Tuple/TupleEngagementExample.html">•Tuple Engagement Example</a></li>
          <li><a href="/docs/Tuple/TuplePigUDFs.html">•Tuple Pig UDFs</a></li>
          <li><a href="/docs/Tuple/TupleHiveUDFs.html">•Tuple Hive UDFs</a></li>
        </div>
      </div>
    </div>

    <p id="most-frequent">
      <a data-toggle="collapse" class="menu collapsed" href="#collapse_most_frequent">Most Frequent</a>
    </p>
    <div class="collapse" id="collapse_most_frequent">
      <li><a href="/docs/Frequency/FrequencySketchesOverview.html">•Frequency Sketches Overview</a></li>

      <p id="frequent-item-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_frequent_item_sketches">Frequent Item Sketches</a>
      </p>
      <div class="collapse" id="collapse_frequent_item_sketches">
        <li><a href="/docs/Frequency/FrequentItemsOverview.html">•Frequent Items Overview</a></li>
        <li><a href="/docs/Frequency/FrequentItemsErrorTable.html">•Frequent Items Error Table</a></li>
        <li><a href="/docs/Frequency/FrequentItemsReferences.html">•Frequent Items References</a></li>
        <li><a href="/docs/Frequency/FrequentItemsPerformance.html">•Frequent Items Performance</a></li>

        <p id="most-frequent-examples">
          <a data-toggle="collapse" class="menu collapsed" href="#collapse_most_frequent_examples">Most Frequent Examples</a>
        </p>
        <div class="collapse" id="collapse_most_frequent_examples">
          <li><a href="/docs/Frequency/FrequentItemsJavaExample.html">•Frequent Items Java Example</a></li>
          <li><a href="/docs/Frequency/FrequentItemsCppExample.html">•Frequent Items C++ Example</a></li>
          <li><a href="/docs/Frequency/FrequentItemsPigUDFs.html">•Frequent Items Pig UDFs</a></li>
          <li><a href="/docs/Frequency/FrequentItemsHiveUDFs.html">•Frequent Items Hive UDFs</a></li>
        </div>
      </div>

      <p id="frequent-distinct-sketches">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_frequent_distinct_sketches">Frequent Distinct Sketches</a>
      </p>
      <div class="collapse" id="collapse_frequent_distinct_sketches">
        <li><a href="/docs/Frequency/FrequentDistinctTuplesSketch.html">•Frequent Distinct Tuples Sketch</a></li>
      </div>
    </div>

    <p id="quantiles-and-histograms">
      <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_and_histograms">Quantiles And Histograms</a>
    </p>
    <div class="collapse" id="collapse_quantiles_and_histograms">
      <li><a href="/docs/Quantiles/SketchingQuantilesAndRanksTutorial.html">•Quantiles and Ranks Tutorial</a></li>
      <li><a href="/docs/Quantiles/QuantilesOverview.html">•Quantiles Overview</a></li>
      <li><a href="/docs/KLL/KLLSketch.html">•KLL Floats sketch</a></li>
      <li><a href="/docs/KLL/KLLAccuracyAndSize.html">•KLL Sketch Accuracy and Size</a></li>
      <li><a href="/docs/REQ/ReqSketch.html">•REQ Floats sketch</a></li>
      <li><a href="/docs/Quantiles/OrigQuantilesSketch.html">•Original QuantilesSketch</a></li>

      <p id="quantiles-examples">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_examples">Quantiles Examples</a>
      </p>
      <div class="collapse" id="collapse_quantiles_examples">
        <li><a href="/docs/Quantiles/QuantilesJavaExample.html">•Quantiles Sketch Java Example</a></li>
        <li><a href="/docs/KLL/KLLCppExample.html">•KLL Quantiles Sketch C++ Example</a></li>
        <li><a href="/docs/Quantiles/QuantilesPigUDFs.html">•Quantiles Sketch Pig UDFs</a></li>
        <li><a href="/docs/Quantiles/QuantilesHiveUDFs.html">•Quantiles Sketch Hive UDFs</a></li>
      </div>

      <p id="quantiles-studies">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_studies">Quantiles Studies</a>
      </p>
      <div class="collapse" id="collapse_quantiles_studies">
        <li><a href="/docs/QuantilesStudies/DruidApproxHistogramStudy.html">•Druid Approximate Histogram</a></li>
        <li><a href="/docs/QuantilesStudies/MomentsSketchStudy.html">•Moments Sketch Study</a></li>
        <li><a href="/docs/QuantilesStudies/QuantilesStreamAStudy.html">•Quantiles StreamA Study</a></li>
        <li><a href="/docs/QuantilesStudies/ExactQuantiles.html">•Exact Quantiles for Studies</a></li>
      </div>

      <p id="quantiles-sketch-theory">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_sketch_theory">Quantiles Sketch Theory</a>
      </p>
      <div class="collapse" id="collapse_quantiles_sketch_theory">
        <li><a href="https://github.com/apache/datasketches-website/tree/master/docs/pdf/Quantiles_KLL.pdf">•Optimal Quantile Approximation in Streams</a></li>
        <li><a href="/docs/Quantiles/QuantilesReferences.html">•Quantiles References</a></li>
      </div>
    </div>

    <p id="sampling">
      <a data-toggle="collapse" class="menu collapsed" href="#collapse_sampling">Sampling</a>
    </p>
    <div class="collapse" id="collapse_sampling">
      <li><a href="/docs/Sampling/ReservoirSampling.html">•Reservoir Sampling</a></li>
      <li><a href="/docs/Sampling/ReservoirSamplingPerformance.html">•Reservoir Sampling Performance</a></li>
      <li><a href="/docs/Sampling/VarOptSampling.html">•VarOpt Sampling</a></li>

      <p id="sampling-examples">
        <a data-toggle="collapse" class="menu collapsed" href="#collapse_sampling_examples">Sampling Examples</a>
      </p>
      <div class="collapse" id="collapse_sampling_examples">
        <li><a href="/docs/Sampling/ReservoirSamplingJava.html">•Reservoir Sampling Java Example</a></li>
        <li><a href="/docs/Sampling/ReservoirSamplingPigUDFs.html">•Reservoir Sampling Pig UDFs</a></li>
        <li><a href="/docs/Sampling/VarOptSamplingJava.html">•VarOpt Sampling Java Example</a></li>
        <li><a href="/docs/Sampling/VarOptPigUDFs.html">•VarOpt Sampling Pig UDFs</a></li>
      </div>
    </div>
  </div>

  <p id="system-integrations">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_system_integrations">System Integrations</a>
  </p>
  <div class="collapse" id="collapse_system_integrations">
    <li><a href="/docs/SystemIntegrations/ApacheDruidIntegration.html">•Using Sketches in ApacheDruid</a></li>
    <li><a href="/docs/SystemIntegrations/ApacheHiveIntegration.html">•Using Sketches in Apache Hive</a></li>
    <li><a href="/docs/SystemIntegrations/ApachePigIntegration.html">•Using Sketches in Apache Pig</a></li>
    <li><a href="/docs/SystemIntegrations/PostgreSQLIntegration.html">•Using Sketches in PostgreSQL</a></li>
  </div>

  <p id="community">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_community">Community</a>
  </p>
  <div class="collapse" id="collapse_community">
    <li><a href="/docs/Community/index.html">•Community</a></li>
    <li><a href="/docs/Community/Downloads.html">•Downloads</a></li>
    <li><a href="/docs/Community/NewCommitterProcess.html">•Committer Process</a></li>
    <li><a href="/docs/Community/ReleaseProcessForCppComponents.html">•Release Process For CPP Components</a></li>
    <li><a href="/docs/Community/ReleaseProcessForJavaComponents.html">•Release Process For Java Components</a></li>
    <li><a href="/docs/Community/Transitioning.html">•Transitioning from prior GitHub Site</a></li>
  </div>

  <p id="research">
    <a data-toggle="collapse" class="menu collapsed" href="#collapse_research">Research</a>
  </p>
  <div class="collapse" id="collapse_research">
    <li><a href="/docs/Community/Research.html">•Research</a></li>
  </div>
</div>
<!-- End _includes/toc.html -->


<!-- Start _includes/tocScript.html -->
<script>
  (function () {

    var findLineItem = function (path) {
      return document.querySelector(`#toc [href="${path}"]`);
    };

    function findNavItem(path) {
      return document.querySelector(`.nav [href="${path}"]`);
    }

    var highlighLineItem = function (element) {
      element.classList.add('highlight');
    };

    var checkHasClass = function (element, className) {
      return element.className.split(' ').find(function (item) { return item === className || '' })
    }

    var findAllCollapseParents = function (element) {
      var collapseMenus = [];
      var elementPointer = element;
      while (elementPointer !== document.body) {
        if (checkHasClass(elementPointer, 'collapse')) {
          collapseMenus.push(elementPointer);
        }
        elementPointer = elementPointer.parentElement
      }
      return collapseMenus
    };

    var openMenuItem = function (element) {
      // $(element).collapse('show') would start a transition, adding `in` class instead.
      element.classList.add('in');
    };

    var openAllFromList = function (elementList) {
      elementList.forEach(openMenuItem);
    };

    var highlightAndOpenMenu = function () {
      // Highlight & expand nav item in the TOC
      var currentLineItem = findLineItem(document.location.pathname);
      highlighLineItem(currentLineItem);
      openAllFromList(findAllCollapseParents(currentLineItem));

      // Highlight nav item in top navigation
      highlighLineItem(findNavItem(document.location.pathname));
    };

    $(highlightAndOpenMenu);

  }());
</script>
<!-- End _includes/tocScript.html -->

      </div>
      <!-- End ToC Block -->
      <div class="col-md-9 doc-content">
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<h2 id="hyperloglog-sketch">HyperLogLog Sketch</h2>
<p>The hll package contains a set of very compact implementations of Phillipe Flajolet’s
HyperLogLog (HLL) sketch but with significantly improved error behavior and excellent speed performance.</p>

<p>If the use case for sketching is primarily counting uniques and merging, 
the HLL sketch is the 2nd highest performing in terms of accuracy for storage space consumed (the new CPC sketch developed by Kevin J. Lang now beats HLL).
For large counts, HLL sketches can be 2 to 16 times smaller for the same 
accuracy than the Theta Sketches mentioned above, and the CPC sketch is another 30 to 40% smaller still.</p>

<p>A new HLL sketch is created with a simple constructor:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>int lgK = 12; //This is log-base2 of k, so k = 4096. lgK can be from 4 to 21
HllSketch sketch = new HllSketch(lgK); //TgtHllType.HLL_4 is the default
//OR
HllSketch sketch = new HllSketch(lgK, TgtHllType.HLL_6);
//OR
HllSketch sketch = new HllSketch(lgK, TgtHllType.HLL_8);
</code></pre></div></div>

<p>All three different sketch types are <i>targets</i> in that the sketches start out in a warm-up mode 
that is small in size and gradually grows as needed until the full HLL array is allocated. 
The HLL_4, HLL_6 and HLL_8 represent different levels of compression of the final HLL array
where the 4, 6 and 8 refer to the number of bits each bucket of the HLL array is compressed down to.
The HLL_4 is the most compressed but generally slightly slower than the other two, especially during union operations.</p>

<p>All three types share the same API. Updating the HllSketch is very simple:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>long n = 1000000;
for (int i = 0; i &lt; n; i++) {
  sketch.update(i);
}
</code></pre></div></div>

<p>Each of the presented integers above are first hashed into 128-bit hash values that are used by the 
sketch HLL algorithm, so the above loop is essentially equivalent to using a random number generator 
initialized with a seed so that the sequence is deterministic.</p>

<p>Obtaining the cardinality results from the sketch is also simple:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>double estimate = sketch.getEstimate();
double estUB = sketch.getUpperBound(1.0); //the upper bound at 1 standard deviation.
double estLB = sketch.getLowerBound(1.0); //the lower bound at 1 standard deviation.
//OR
System.out.println(sketch.toString()); //will output a summary of the sketch.
</code></pre></div></div>

<p>Which produces a console output something like this:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>### HLL SKETCH SUMMARY: 
  Log Config K   : 12
  Hll Target     : HLL_4
  Current Mode   : HLL
  LB             : 977348.7024560181
  Estimate       : 990116.6007366662
  UB             : 1003222.5095308956
  OutOfOrder Flag: false
  CurMin         : 5
  NumAtCurMin    : 1
  HipAccum       : 990116.6007366662
</code></pre></div></div>

<h3 id="hyperloglog-accuracy">HyperLogLog Accuracy</h3>

<p>The pitch-fork accuracy plot for any of the HLL sketch types (HLL_4, HLL_6, or HLL_8) are identical because the different sketch types are isomorphic to each other. 
The following plot was generated with <i>LgK</i> = 14 using 2<sup>20</sup> trials.</p>

<p><img class="doc-img-full" src="/docs/img/hll/HllHipLgK14LgT20_Quantiles.png" alt="HllHipLgK14LgT20_Quantiles.png" /></p>

<p>The <i>Factor = 0.8326</i> is directly relatable to the Flajolet alpha factor of 1.04. 
As a result, this plot demonstrates that this implementation of the HLL sketch
will be about 20% = (0.8326/1.04 - 1) more accurate than a conventional HLL sketch using Flajolet’s estimators (or derived estimators). 
This is partially due to the use of the HIP estimator[1] for range above the transition point, which occurs at about 1500 on the graph. 
Below this transition point the accuracy is near zero (an RSE of about 50 ppm), which is far better than any known implementation of HLL. 
This is due to a newly developed theory and estimator developed by Kevin Lang[2].</p>

<p>The base Relative Standard Error (RSE) for this sketch (at LgK = 14) is 0.0065 = 0.8326 / sqrt(2<sup>14</sup>).
The horizontal gridlines are configured to be +/- multiples of the base RSE.</p>

<p>The different color curves are contours of the actual error distribution measured at normalized rank values 
derived from the Gaussian distribution at +/- 1, 2, and 3 standard deviations. (See “The Error Distribution Is Not Gaussian” below.)</p>

<p>Therefore, the area between the orange and the green curves represent +/- 1 SD, which corresponds to a confidence level of 68.3%.
The area between the red and the blue curves represent +/- 2 SD, which corresponds to a confidence level of 95.4%.
The area between the brown and the purple curves represent +/- 3 SD, which correspons to a confidence level of 99.7%.</p>

<p>The reader of this chart can easily see that this size HLL sketch will have error “bounds” of +/- 1.3% with 95.4% confidence.
The actual value bounds can also be derived directly from the sketch itself by calling the <i>getUpperBound(numStdDev)</i> 
and <i>getLowerBound(numStdDev)</i> methods.</p>

<h4 id="the-error-distribution-is-not-gaussian">The Error Distribution Is Not Gaussian</h4>

<p>The underlying stochastic processes for unique count sketches (both HLL and Theta) do not produce a symmetric Gaussian error distribution at all.  In fact, it is quite complex and more related to the family of multinomial distributions. Nonetheless, the Central Limit Theorem still applies if both K and N are large enough.  If K is small (K &lt;= 4096, lgK&lt;=12), and even if N is large, the distribution becomes quite distorted.  The following plot for a very small-sized HLL sketch is a good example:</p>

<p><img class="doc-img-full" src="/docs/img/hll/HLL_HIP_K4T20U20_Accuracy.png" alt="HllHipLgK4LgT20LgU20_accuracy.png" /></p>

<p>This graph shows the quantile contours for the HLL sketch where LgK = 4 (K = 16). 
The normalized rank values (the values inside the parentheses, e.g. Q(.00135)) correspond to the normalized rank values at +/- 1,2 and 3 standard deviations of a Gaussian, which this is obviously not! 
Nonetheless, choosing these quantile points allows us to also claim that the area between the +/- 1 Standard Deviation contours corresponds to 68% confidence; 
between the +/- 2 Standard Deviation contours corresponds to 95.4% confidence, and between the +/- 3 Standard Deviation contours corresponds to 99.7% confidence.
These normalized rank values were chosen because they allow easy comparison with confidence intervals that are commonly used in statistics.</p>

<p>Returning meaningful bounds for low values of K is empirical and approximate. There are no known closed-form mathematical solutions for these error distributions so we use lookup tables and empirical measurements to produce hopefully meaningful bounds.</p>

<p>It is important to understand that the bounds values returned by calling the <i>getUpperBound(numStdDev)</i> and <i>getLowerBound(numStdDev)</i> methods
are not hard limits, but attempts to measure meaningful “waist-lines” of distributions that theoretically can reach out to +/- infinity.</p>

<h3 id="hyperloglog-speed-comparisons">HyperLogLog Speed Comparisons</h3>

<p>The update speed behavior of the HLL sketches compared to the Theta-Alpha sketch will be similar to the following graph:</p>

<p><img class="doc-img-half" src="/docs/img/hll/SpeedComparisons.png" alt="SpeedComparisons.png" /></p>

<p>The Theta-Alpha sketch is clearly the fastest achieving about 6.5 nanoseconds per update at the high end and staying below 20 nS for nearly the entire range.</p>

<p>All of the HLL types share the same growth strategy below the transition point to the HLL array, which on this graph occurs at about 384 uniques. Above the transition point, the HLL_8 sketch is the fastest followed by the HLL_6 an HLL_4, which are fairly close together.</p>

<h3 id="hyperloglog-serialized-size-comparisons">HyperLogLog Serialized Size Comparisons</h3>

<p>The serialization sizes of the HLL sketches compared to the Theta-Alpha sketch will be similar to the following graph:</p>

<p><img class="doc-img-half" src="/docs/img/hll/SerCompactSizes.png" alt="SerCompactSizes.png" /></p>

<p>Both the HLL sketches and the Theta sketches have a similar growth strategy below their respective transition points. 
The HLL sketches grow in increments of 4 bytes, and the Theta sketches grow in increments of 8 bytes. 
Thus, below the HLL transition point the Theta sketch is 2X larger than the HLL sketch.<br />
Above the transition point the HLL_4 sketch has a 16X size advantage over the Theta sketch.</p>

<h3 id="caveats">Caveats</h3>
<p>Large data with many dimensions and dimension coordinates are often highly skewed 
creating a “long-tailed” or power-law distribution of unique values per sketch. 
This can create millions of sketches where a vast majority of the sketches will have only a few entries.
It is this long tail of the distribution of sketch sizes that can dominate the overall storage cost for all of the sketches. 
In this scenario, the size advantage of the HLL can be significantly reduced down to a factor of 2 to 4 compared to Theta sketches. 
This behavior is strictly a function of the distribution of the input data so it is advisable to understand 
and measure this phenomenon with your own data.</p>

<p>The HLL sketch is not recommended if you anticipate the need of performing set intersection 
or difference operations with reasonable accuracy.  Instead, use the Theta sketch family.</p>

<p>HLL sketches cannot be intermixed or merged in any way with Theta Sketches.</p>

<hr />

<ul>
  <li>[1] Edith Cohen, All-Distances Sketches, Revisited: HIP Estimators for Massive Graphs Analysis, PODS 2014.</li>
  <li>[2] Kevin Lang, Back to the Future: an Even More Nearly Optimal Cardinality Estimation Algorithm. https://arxiv.org/abs/1708.06839</li>
</ul>

      </div> <!-- End content -->
    </div> <!-- End row -->
  </div> <!-- End Container -->

<!-- Start _include/page_footer.html -->
<footer class="ds-footer">
  <div class="container">
    <div class="text-center">
      <p>
        <div>Copyright © 2024 <a href="https://www.apache.org">Apache Software Foundation</a>, 
          Licensed under the Apache License, Version 2.0. All Rights Reserved.
          | <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a><br/>
          Apache DataSketches, Apache, the Apache feather logo, and the Apache DataSketches project logos are trademarks of The Apache Software Foundation.<br/>
          All other marks mentioned may be trademarks or registered trademarks of their respective owners.
        </div>
      </p>
    </div>
  </div>
</footer>
<!-- End _include/page_footer.html -->

</body>

</html>
<!-- End _layouts/doc_page.html-->