(window.webpackJsonp=window.webpackJsonp||[]).push([[1016],{1587:function(e,a,t){"use strict";t.r(a);var s=t(71),n=Object(s.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"聚合查询"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#聚合查询"}},[e._v("#")]),e._v(" 聚合查询")]),e._v(" "),t("p",[e._v("聚合查询的主要逻辑在 AggregateExecutor")]),e._v(" "),t("ul",[t("li",[e._v("org.apache.iotdb.db.query.executor.AggregationExecutor")])]),e._v(" "),t("h2",{attrs:{id:"不带值过滤条件的聚合查询"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#不带值过滤条件的聚合查询"}},[e._v("#")]),e._v(" 不带值过滤条件的聚合查询")]),e._v(" "),t("p",[e._v("对于不带值过滤条件的聚合查询，通过 "),t("code",[e._v("executeWithoutValueFilter()")]),e._v(" 方法获得结果并构建 dataSet。首先使用 "),t("code",[e._v("mergeSameSeries()")]),e._v(" 方法将对于相同时间序列的聚合查询合并，例如：如果需要计算count(s1), sum(s2), count(s3), sum(s1)，即需要计算s1的两个聚合值，那么将会得到pathToAggrIndexesMap结果为：s1 -> 0, 3; s2 -> 1; s3 -> 2。")]),e._v(" "),t("p",[e._v("那么将会得到 "),t("code",[e._v("pathToAggrIndexesMap")]),e._v("，其中每一个 entry 都是一个 series 的聚合查询，因此可以通过调用 "),t("code",[e._v("groupAggregationsBySeries()")]),e._v(" 方法计算出其聚合值 "),t("code",[e._v("aggregateResults")]),e._v("。在最后创建结果集之前，需要将其顺序还原为用户查询的顺序。最后使用 "),t("code",[e._v("constructDataSet()")]),e._v(" 方法创建结果集并返回。")]),e._v(" "),t("p",[e._v("下面详细讲解 "),t("code",[e._v("groupAggregationsBySeries()")]),e._v(" 方法。首先创建一个 "),t("code",[e._v("IAggregateReader")]),e._v("：")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("IAggregateReader seriesReader = new SeriesAggregateReader(\n        pathToAggrIndexes.getKey(), tsDataType, context, QueryResourceManager.getInstance()\n        .getQueryDataSource(seriesPath, context, timeFilter), timeFilter, null);\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("对于每一个 entry（即series），首先为其每一种聚合查询创建一个聚合结果 "),t("code",[e._v("AggregateResult")]),e._v("，同时维护一个布尔值列表 "),t("code",[e._v("isCalculatedList")]),e._v("，对应每一个 "),t("code",[e._v("AggregateResult")]),e._v("是否已经计算完成，并记录需要剩余计算的聚合函数数目 "),t("code",[e._v("remainingToCalculate")]),e._v("。布尔值列表和这个计数值将会使得某些聚合函数（如 "),t("code",[e._v("FIRST_VALUE")]),e._v("）在获得结果后，不需要再继续进行整个循环过程。")]),e._v(" "),t("p",[e._v("接下来，按照5.2节所介绍的 "),t("code",[e._v("aggregateReader")]),e._v(" 使用方法，更新 "),t("code",[e._v("AggregateResult")]),e._v("：")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("while (aggregateReader.hasNextChunk()) {\n  if (aggregateReader.canUseCurrentChunkStatistics()) {\n    Statistics chunkStatistics = aggregateReader.currentChunkStatistics();\n    \n    // do some aggregate calculation using chunk statistics\n    ...\n    \n    aggregateReader.skipCurrentChunk();\n    continue;\n  }\n\t  \n  while (aggregateReader.hasNextPage()) {\n\t if (aggregateReader.canUseCurrentPageStatistics()) {\n\t   Statistics pageStatistic = aggregateReader.currentPageStatistics();\n\t   \n\t   // do some aggregate calculation using page statistics\n      ...\n\t   \n\t   aggregateReader.skipCurrentPage();\n\t   continue;\n\t } else {\n\t \tBatchData batchData = aggregateReader.nextPage();\n\t \t// do some aggregate calculation using batch data\n      ...\n\t }\t \n  }\n}\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br"),t("span",{staticClass:"line-number"},[e._v("18")]),t("br"),t("span",{staticClass:"line-number"},[e._v("19")]),t("br"),t("span",{staticClass:"line-number"},[e._v("20")]),t("br"),t("span",{staticClass:"line-number"},[e._v("21")]),t("br"),t("span",{staticClass:"line-number"},[e._v("22")]),t("br"),t("span",{staticClass:"line-number"},[e._v("23")]),t("br"),t("span",{staticClass:"line-number"},[e._v("24")]),t("br"),t("span",{staticClass:"line-number"},[e._v("25")]),t("br"),t("span",{staticClass:"line-number"},[e._v("26")]),t("br"),t("span",{staticClass:"line-number"},[e._v("27")]),t("br")])]),t("p",[e._v("需要注意的是，在对于每一个result进行更新之前，需要首先判断其是否已经被计算完（利用 "),t("code",[e._v("isCalculatedList")]),e._v(" 列表）；每一次更新后，调用 "),t("code",[e._v("isCalculatedAggregationResult()")]),e._v(" 方法同时更新列表中的布尔值。如果列表中所有值均为true，即 "),t("code",[e._v("remainingToCalculate")]),e._v(" 值为0，证明所有聚合函数结果均已计算完，可以返回。")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("if (Boolean.FALSE.equals(isCalculatedList.get(i))) {\n  AggregateResult aggregateResult = aggregateResultList.get(i);\n  ... // 更新\n  if (aggregateResult.isCalculatedAggregationResult()) {\n    isCalculatedList.set(i, true);\n    remainingToCalculate--;\n    if (remainingToCalculate == 0) {\n      return aggregateResultList;\n    }\n  }\n}\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br")])]),t("p",[e._v("在使用 "),t("code",[e._v("overlapedPageData")]),e._v(" 进行更新时，由于获得每一个聚合函数结果都会遍历这个 batchData，因此需要调用 "),t("code",[e._v("resetBatchData()")]),e._v(" 方法将指针指向其开始位置，使得下一个函数可以遍历。")]),e._v(" "),t("h2",{attrs:{id:"带值过滤条件的聚合查询"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#带值过滤条件的聚合查询"}},[e._v("#")]),e._v(" 带值过滤条件的聚合查询")]),e._v(" "),t("p",[e._v("对于带值过滤条件的聚合查询，通过 "),t("code",[e._v("executeWithoutValueFilter()")]),e._v(" 方法获得结果并构建 dataSet。首先根据表达式创建 "),t("code",[e._v("timestampGenerator")]),e._v("，然后为每一个时间序列创建一个 "),t("code",[e._v("SeriesReaderByTimestamp")]),e._v("，放到 "),t("code",[e._v("readersOfSelectedSeries")]),e._v("列表中；为每一个查询创建一个创建一个聚合结果 "),t("code",[e._v("AggregateResult")]),e._v("，放到 "),t("code",[e._v("aggregateResults")]),e._v("列表中。")]),e._v(" "),t("p",[e._v("初始化完成后，调用 "),t("code",[e._v("aggregateWithValueFilter()")]),e._v(" 方法更新结果：")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("while (timestampGenerator.hasNext()) {\n  // 生成timestamps\n  long[] timeArray = new long[aggregateFetchSize];\n  int timeArrayLength = 0;\n  for (int cnt = 0; cnt < aggregateFetchSize; cnt++) {\n    if (!timestampGenerator.hasNext()) {\n      break;\n    }\n    timeArray[timeArrayLength++] = timestampGenerator.next();\n  }\n\n  // 利用timestamps计算聚合结果\n  for (int i = 0; i < readersOfSelectedSeries.size(); i++) {\n    aggregateResults.get(i).updateResultUsingTimestamps(timeArray, timeArrayLength,\n      readersOfSelectedSeries.get(i));\n    }\n  }\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br")])]),t("h2",{attrs:{id:"使用level来统计点数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#使用level来统计点数"}},[e._v("#")]),e._v(" 使用Level来统计点数")]),e._v(" "),t("p",[e._v("对于count聚合查询，我们也可以使用level关键字来进一步汇总点数。")]),e._v(" "),t("p",[e._v("这个逻辑在 "),t("code",[e._v("AggregationExecutor")]),e._v("类里。")]),e._v(" "),t("ol",[t("li",[t("p",[e._v("首先，把所有涉及到的时序按level来进行汇集，最后的路径。")]),e._v(" "),t("blockquote",[t("p",[e._v("例如把root.sg1.d1.s0,root.sg1.d2.s1按level=1汇集成root.sg1。")])])]),e._v(" "),t("li",[t("p",[e._v("然后调用上述的聚合逻辑求出所有时序的总点数信息，这个会返回RowRecord数据结构。")])]),e._v(" "),t("li",[t("p",[e._v("最后，把聚合查询返回的RowRecord按上述的final paths，进行累加，组合成新的RowRecord。")]),e._v(" "),t("blockquote",[t("p",[e._v("例如，把《root.sg1.d1.s0,3》，《root.sg1.d2.s1，4》聚合成《root.sg1，7》")])])])]),e._v(" "),t("blockquote",[t("p",[e._v("注意:")]),e._v(" "),t("ol",[t("li",[e._v("这里只支持count操作")]),e._v(" "),t("li",[e._v("root的层级level=0")])])])])}),[],!1,null,null,null);a.default=n.exports}}]);