(window.webpackJsonp=window.webpackJsonp||[]).push([[1024],{1597:function(a,e,s){"use strict";s.r(e);var n=s(71),t=Object(n.a)({},(function(){var a=this,e=a.$createElement,s=a._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"原始数据查询"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#原始数据查询"}},[a._v("#")]),a._v(" 原始数据查询")]),a._v(" "),s("h2",{attrs:{id:"设计原理"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#设计原理"}},[a._v("#")]),a._v(" 设计原理")]),a._v(" "),s("p",[a._v("原始数据查询根据是否包含值过滤条件，可以分为两类。不包含值过滤条件时，根据结果集结构又可分为两类。")]),a._v(" "),s("ul",[s("li",[a._v("不包含值过滤条件（无过滤条件 or 仅包含时间过滤条件）\n"),s("ul",[s("li",[a._v("结果集按时间戳对齐（默认原始数据查询）")]),a._v(" "),s("li",[a._v("结果集不按时间戳对齐（disable align）")])])]),a._v(" "),s("li",[a._v("包含值过滤条件\n"),s("ul",[s("li",[a._v("结果集按时间戳对齐")])])])]),a._v(" "),s("p",[a._v("以上三种查询在代码中对应三种不同的 DataSet，封装了这三种查询的执行逻辑。")]),a._v(" "),s("h2",{attrs:{id:"不包含值过滤条件-结果集按时间戳对齐"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#不包含值过滤条件-结果集按时间戳对齐"}},[a._v("#")]),a._v(" 不包含值过滤条件 + 结果集按时间戳对齐")]),a._v(" "),s("h3",{attrs:{id:"org-apache-iotdb-db-query-dataset-rawquerydatasetwithoutvaluefilter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#org-apache-iotdb-db-query-dataset-rawquerydatasetwithoutvaluefilter"}},[a._v("#")]),a._v(" org.apache.iotdb.db.query.dataset.RawQueryDataSetWithoutValueFilter")]),a._v(" "),s("p",[s("code",[a._v("RawQueryDataSetWithoutValueFilter")]),a._v("实现了没有值过滤条件，且需要按照时间戳对齐的查询逻辑。虽然最后的查询结果需要每个时间序列按照时间戳对齐，但是每个时间序列的查询是可以做并行化的。这里借助消费者-生产者队列的思想，将每个时间序列获取数据的操作与最后对所有时间序列进行对齐的操作解耦。每个时间序列对应一个生产者线程，且有其对应的"),s("code",[a._v("BlockingQueue")]),a._v("，生产者任务负责读取相应的时间序列的数据放进"),s("code",[a._v("BlockingQueue")]),a._v("中；消费者线程只有一个，负责从每个时间序列的"),s("code",[a._v("BlockingQueue")]),a._v("中取出数据，进行时间戳对齐之后，将结果组装成"),s("code",[a._v("TSQueryDataSet")]),a._v("形式返回。")]),a._v(" "),s("p",[a._v("在具体实现的时候，考虑到机器的资源限制，并非为每个查询的每一个时间序列创建一个线程，而是采用线程池技术，将每一个时间序列的生产者任务当作一个"),s("code",[a._v("Runnable")]),a._v("的task提交到线程池中执行。")]),a._v(" "),s("p",[a._v("下面就先介绍生产者的代码，它被封装在是"),s("code",[a._v("RawQueryDataSetWithoutValueFilter")]),a._v("的一个内部类"),s("code",[a._v("ReadTask")]),a._v("中，实现了"),s("code",[a._v("Runnable")]),a._v("接口。")]),a._v(" "),s("h3",{attrs:{id:"org-apache-iotdb-db-query-dataset-rawquerydatasetwithoutvaluefilter-readtask"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#org-apache-iotdb-db-query-dataset-rawquerydatasetwithoutvaluefilter-readtask"}},[a._v("#")]),a._v(" org.apache.iotdb.db.query.dataset.RawQueryDataSetWithoutValueFilter.ReadTask")]),a._v(" "),s("p",[s("code",[a._v("ReadTask")]),a._v("中有两个字段")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v(" private final ManagedSeriesReader reader;\n private BlockingQueue<BatchData> blockingQueue;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br")])]),s("p",[s("code",[a._v("ManagedSeriesReader")]),a._v("接口继承了"),s("code",[a._v("IBatchReader")]),a._v("接口，主要用来读取单个时间序列的数据，并且新增了以下四个方法")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("boolean isManagedByQueryManager();\n\nvoid setManagedByQueryManager(boolean managedByQueryManager);\n\nboolean hasRemaining();\n\nvoid setHasRemaining(boolean hasRemaining);\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br")])]),s("p",[a._v("前两个方法用以表征该时间序列对应的生产者任务有没有被查询管理器所管理，即生产者任务有没有因为阻塞队列满了，而自行退出（后文会解释为什么不阻塞等待，而是直接退出）；后两个方法用以表征该时间序列对应的reader里还有没有数据。")]),a._v(" "),s("p",[s("code",[a._v("blockingQueue")]),a._v("就是该生产者任务的阻塞队列，实际上该阻塞队列只会在消费者取数据时单边阻塞，生产者放数据时，如果发现队列满了，便会直接退出，不会阻塞。")]),a._v(" "),s("p",[a._v("下面看一下"),s("code",[a._v("ReadTask")]),a._v("的"),s("code",[a._v("run()")]),a._v("方法，执行流程的解释以注释的形式展现在代码中")]),a._v(" "),s("h4",{attrs:{id:"run"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#run"}},[a._v("#")]),a._v(" run()")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v('public void run() {\n  try {\n    // 这里加锁的原因是为了保证对于blockingQueue满不满的判断是正确同步的\n    synchronized (reader) {\n      // 由于每次提交生产者任务时(不论是生产者自己递归的提交自己，还是消费者发现生产者任务自行退出而提交的)，都会检查队列是不是满的，如果队列满了，是不会提交生产者任务的\n      // 所以生产者任务一旦被提交，blockingQueue里一定是有空余位置的，我们不需要检查队列是否满\n      // 如果时间序列对应的reader还有数据，进入循环体\n      while (reader.hasNextBatch()) {\n        BatchData batchData = reader.nextBatch();\n        // 由于拿到的BatchData有可能为空，所以需要一直迭代到第一个不为空的BatchData\n        if (batchData.isEmpty()) {\n          continue;\n        }\n        // 将不为空的batchData放进阻塞队列中，此时的阻塞队列一定是不满的，所以不会阻塞\n        blockingQueue.put(batchData);\n        // 如果阻塞队列仍然没有满，生产者任务再次向线程池里递归地提交自己，进行下一个batchData的获取\n        if (blockingQueue.remainingCapacity() > 0) {\n          pool.submit(this);\n        }\n        // 如果阻塞队列满了，生产者任务退出，并将对应reader的managedByQueryManager置为false\n        else {\n          reader.setManagedByQueryManager(false);\n        }\n        return;\n      }\n      // 代码执行到这边，代表之前的while循环条件不满足，即该时间序列对应的reader里没有数据了\n      // 我们往阻塞队列里放入一个SignalBatchData，用以告知消费者，这个时间序列已经没有数据了，不需要再从该时间序列对应的队列里取数据了\n      blockingQueue.put(SignalBatchData.getInstance());\n      // 将reader的hasRemaining字段置为false\n      // 通知消费者不需要再为这个时间序列提交生产者任务\n      reader.setHasRemaining(false);\n      // 将reader的managedByQueryManager字段置为false\n      reader.setManagedByQueryManager(false);\n    }\n  } catch (InterruptedException e) {\n    LOGGER.error("Interrupted while putting into the blocking queue: ", e);\n    Thread.currentThread().interrupt();\n  } catch (IOException e) {\n    LOGGER.error("Something gets wrong while reading from the series reader: ", e);\n  } catch (Exception e) {\n    LOGGER.error("Something gets wrong: ", e);\n  }\n}\n')])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br"),s("span",{staticClass:"line-number"},[a._v("21")]),s("br"),s("span",{staticClass:"line-number"},[a._v("22")]),s("br"),s("span",{staticClass:"line-number"},[a._v("23")]),s("br"),s("span",{staticClass:"line-number"},[a._v("24")]),s("br"),s("span",{staticClass:"line-number"},[a._v("25")]),s("br"),s("span",{staticClass:"line-number"},[a._v("26")]),s("br"),s("span",{staticClass:"line-number"},[a._v("27")]),s("br"),s("span",{staticClass:"line-number"},[a._v("28")]),s("br"),s("span",{staticClass:"line-number"},[a._v("29")]),s("br"),s("span",{staticClass:"line-number"},[a._v("30")]),s("br"),s("span",{staticClass:"line-number"},[a._v("31")]),s("br"),s("span",{staticClass:"line-number"},[a._v("32")]),s("br"),s("span",{staticClass:"line-number"},[a._v("33")]),s("br"),s("span",{staticClass:"line-number"},[a._v("34")]),s("br"),s("span",{staticClass:"line-number"},[a._v("35")]),s("br"),s("span",{staticClass:"line-number"},[a._v("36")]),s("br"),s("span",{staticClass:"line-number"},[a._v("37")]),s("br"),s("span",{staticClass:"line-number"},[a._v("38")]),s("br"),s("span",{staticClass:"line-number"},[a._v("39")]),s("br"),s("span",{staticClass:"line-number"},[a._v("40")]),s("br"),s("span",{staticClass:"line-number"},[a._v("41")]),s("br"),s("span",{staticClass:"line-number"},[a._v("42")]),s("br"),s("span",{staticClass:"line-number"},[a._v("43")]),s("br")])]),s("p",[a._v("接下来介绍消费者的代码，消费者的主要逻辑是从每个时间序列的队列里拿出值，做时间戳对齐，然后拼凑结果集。时间戳的对齐主要通过一个时间戳的最小堆来实现，如果该时间序列的时间戳等于堆顶的时间戳，则取出该值，反之，将该时间戳下该时间序列的值置为"),s("code",[a._v("null")]),a._v("。")]),a._v(" "),s("p",[a._v("先介绍消费者任务的一些重要字段")]),a._v(" "),s("ul",[s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("TreeSet<Long> timeHeap\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("时间戳的最小堆，用以实现时间戳对齐操作")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("BlockingQueue<BatchData>[] blockingQueueArray;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("阻塞队列的数组，用以存储每个时间序列对应的阻塞队列")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("boolean[] noMoreDataInQueueArray\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("用以表征某个时间序列的阻塞队列里还有没有值，如果为false，则消费者不会再去调用"),s("code",[a._v("take()")]),a._v("方法，以防消费者线程被阻塞。")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("BatchData[] cachedBatchDataArray\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("缓存从阻塞队列里取出的一个BatchData，因为阻塞队列里"),s("code",[a._v("take()")]),a._v("出的"),s("code",[a._v("BatchData")]),a._v("并不能一次性消费完，所以需要做缓存")])])]),a._v(" "),s("p",[a._v("在消费者"),s("code",[a._v("RawQueryDataSetWithoutValueFilter")]),a._v("的构造函数里首先调用了"),s("code",[a._v("init()")]),a._v("方法")]),a._v(" "),s("h4",{attrs:{id:"init"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#init"}},[a._v("#")]),a._v(" init()")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private void init() throws InterruptedException {\n\ttimeHeap = new TreeSet<>();\n\t// 为每个时间序列构建生产者任务\n\tfor (int i = 0; i < seriesReaderList.size(); i++) {\n\t  ManagedSeriesReader reader = seriesReaderList.get(i);\n\t  reader.setHasRemaining(true);\n\t  reader.setManagedByQueryManager(true);\n\t  pool.submit(new ReadTask(reader, blockingQueueArray[i]));\n\t}\n\t// 初始化最小堆，填充每个时间序列对应的缓存\n\tfor (int i = 0; i < seriesReaderList.size(); i++) {\n\t  // 调用fillCache(int)方法填充缓存\n\t  fillCache(i);\n\t  // 尝试将每个时间序列的当前最小时间戳放进堆中\n\t  if (cachedBatchDataArray[i] != null && cachedBatchDataArray[i].hasCurrent()) {\n\t    long time = cachedBatchDataArray[i].currentTime();\n\t    timeHeap.add(time);\n\t  }\n\t}\n}\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br")])]),s("h4",{attrs:{id:"fillcache-int"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fillcache-int"}},[a._v("#")]),a._v(" fillCache(int)")]),a._v(" "),s("p",[a._v("该方法负责从阻塞队列中取出数据，并填充缓存，具体逻辑见下文注释")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private void fillCache(int seriesIndex) throws InterruptedException {\n    // 从阻塞队列中拿数据，如果没有数据，则会阻塞等待队列中有数据\n\tBatchData batchData = blockingQueueArray[seriesIndex].take();\n\t// 如果是一个信号BatchData，则将相应时间序列的oMoreDataInQueue置为false\n\tif (batchData instanceof SignalBatchData) {\n\t  noMoreDataInQueueArray[seriesIndex] = true;\n\t}\n\telse {\n\t  // 将取出的BatchData放进cachedBatchDataArray缓存起来\n\t  cachedBatchDataArray[seriesIndex] = batchData;\n\t\n\t  // 这里加锁的原因与生产者任务那边一样，是为了保证对于blockingQueue满不满的判断是正确同步的\n\t  synchronized (seriesReaderList.get(seriesIndex)) {\n\t    // 只有当阻塞队列不满的时候，我们才需要判断是不是需要提交生产者任务，这里也保证了生产者任务会被提交，当且仅当阻塞队列不满\n\t    if (blockingQueueArray[seriesIndex].remainingCapacity() > 0) {\n\t      ManagedSeriesReader reader = seriesReaderList.get(seriesIndex);、\n\t      // 如果该时间序列的reader并没有被查询管理器管理(即生产者任务由于队列满了，自行退出)，并且该reader里还有数据，我们需要再次提交该时间序列的生产者任务\n\t      if (!reader.isManagedByQueryManager() && reader.hasRemaining()) {\n\t        reader.setManagedByQueryManager(true);\n\t        pool.submit(new ReadTask(reader, blockingQueueArray[seriesIndex]));\n\t      }\n\t    }\n\t  }\n\t}\n}\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br"),s("span",{staticClass:"line-number"},[a._v("21")]),s("br"),s("span",{staticClass:"line-number"},[a._v("22")]),s("br"),s("span",{staticClass:"line-number"},[a._v("23")]),s("br"),s("span",{staticClass:"line-number"},[a._v("24")]),s("br"),s("span",{staticClass:"line-number"},[a._v("25")]),s("br")])]),s("p",[a._v("有了每个时间序列的数据，接下来就是将每个时间戳的数据做对齐，并将结果组装成"),s("code",[a._v("TSQueryDataSet")]),a._v("返回。这里的逻辑封装在"),s("code",[a._v("fillBuffer()")]),a._v("方法中，该方法里还包含了"),s("code",[a._v("limit")]),a._v("和"),s("code",[a._v("offset")]),a._v("，以及格式化结果集的逻辑，对此我们不作赘述，只分析其中数据读取和时间戳对齐的流程。")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("// 从最小堆中取出当前时间戳\nlong minTime = timeHeap.pollFirst();\nfor (int seriesIndex = 0; seriesIndex < seriesNum; seriesIndex++) {\n\tif (cachedBatchDataArray[seriesIndex] == null\n\t    || !cachedBatchDataArray[seriesIndex].hasCurrent()\n\t    || cachedBatchDataArray[seriesIndex].currentTime() != minTime) {\n\t  // 该时间序列在当前时间戳没有数据，置为null\n\t  ...\n\t  \n\t} else {\n\t  // 该时间序列在当前时间戳有数据，将该数据格式化成结果集格式\n\t  TSDataType type = cachedBatchDataArray[seriesIndex].getDataType();\n\t  ...\n\t  \n\t}\n\t\t\n  // 将该时间序列缓存的batchdata游标向后移\n  cachedBatchDataArray[seriesIndex].next();\n\t\n  // 如果当前缓存的batchdata为空，并且阻塞队列依然有数据，则再次调用fillCache()方法填充缓存\n  if (!cachedBatchDataArray[seriesIndex].hasCurrent()\n      && !noMoreDataInQueueArray[seriesIndex]) {\n    fillCache(seriesIndex);\n  }\n\t\n  // 尝试将该时间序列的下一个时间戳放进最小堆中\n  if (cachedBatchDataArray[seriesIndex].hasCurrent()) {\n    long time = cachedBatchDataArray[seriesIndex].currentTime();\n    timeHeap.add(time);\n  }\n}\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br"),s("span",{staticClass:"line-number"},[a._v("21")]),s("br"),s("span",{staticClass:"line-number"},[a._v("22")]),s("br"),s("span",{staticClass:"line-number"},[a._v("23")]),s("br"),s("span",{staticClass:"line-number"},[a._v("24")]),s("br"),s("span",{staticClass:"line-number"},[a._v("25")]),s("br"),s("span",{staticClass:"line-number"},[a._v("26")]),s("br"),s("span",{staticClass:"line-number"},[a._v("27")]),s("br"),s("span",{staticClass:"line-number"},[a._v("28")]),s("br"),s("span",{staticClass:"line-number"},[a._v("29")]),s("br"),s("span",{staticClass:"line-number"},[a._v("30")]),s("br"),s("span",{staticClass:"line-number"},[a._v("31")]),s("br")])]),s("h2",{attrs:{id:"不包含值过滤条件-结果集不按时间戳对齐"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#不包含值过滤条件-结果集不按时间戳对齐"}},[a._v("#")]),a._v(" 不包含值过滤条件 + 结果集不按时间戳对齐")]),a._v(" "),s("h3",{attrs:{id:"org-apache-iotdb-db-query-dataset-nonalignenginedataset"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#org-apache-iotdb-db-query-dataset-nonalignenginedataset"}},[a._v("#")]),a._v(" org.apache.iotdb.db.query.dataset.NonAlignEngineDataSet")]),a._v(" "),s("p",[s("code",[a._v("NonAlignEngineDataSet")]),a._v("实现了没有值过滤条件，且不需要按照时间戳对齐的查询逻辑。这里的查询逻辑跟"),s("code",[a._v("RawQueryDataSetWithoutValueFilter")]),a._v("很类似，但是它的消费者逻辑更为简单，因为不需要做时间戳对齐的操作。并且每个生产者任务中也可以做更多的工作，不仅可以从Reader中取出BatchData，还可以进一步讲取出的BatchData格式化为结果集需要的输出，从而提高了程序的并行度。如此，消费者只需要从每个阻塞队列里取出数据，set进"),s("code",[a._v("TSQueryNonAlignDataSet")]),a._v("相应的位置即可。")]),a._v(" "),s("p",[a._v("具体的查询逻辑，在此就不再赘述了，可以参照"),s("code",[a._v("RawQueryDataSetWithoutValueFilter")]),a._v("的查询逻辑分析。")]),a._v(" "),s("h2",{attrs:{id:"包含值过滤条件-结果集按时间戳对齐"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#包含值过滤条件-结果集按时间戳对齐"}},[a._v("#")]),a._v(" 包含值过滤条件 + 结果集按时间戳对齐")]),a._v(" "),s("h3",{attrs:{id:"org-apache-iotdb-db-query-dataset-enginedatasetwithvaluefilter"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#org-apache-iotdb-db-query-dataset-enginedatasetwithvaluefilter"}},[a._v("#")]),a._v(" org.apache.iotdb.db.query.dataset.EngineDataSetWithValueFilter")]),a._v(" "),s("p",[s("code",[a._v("EngineDataSetWithValueFilter")]),a._v("实现了有值过滤条件的查询逻辑。")]),a._v(" "),s("p",[a._v("它的查询逻辑是，首先根据查询条件生成满足过滤条件的时间戳，通过满足条件的时间戳查询投影列的值，然后返回结果集。它有四个字段")]),a._v(" "),s("ul",[s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private EngineTimeGenerator timeGenerator;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("是用来生成满足过滤条件的时间戳的")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private List<IReaderByTimestamp> seriesReaderByTimestampList;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("每个时间序列对应的reader，用来根据时间戳获取数据")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private boolean hasCachedRowRecord;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("当前是否缓存了数据行")])]),a._v(" "),s("li",[s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private RowRecord cachedRowRecord;\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("当前缓存的数据行")])])]),a._v(" "),s("p",[a._v("它的主要查询逻辑封装在"),s("code",[a._v("cacheRowRecord()")]),a._v("方法中，具体分析见代码中的注释")]),a._v(" "),s("h4",{attrs:{id:"cacherowrecord"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cacherowrecord"}},[a._v("#")]),a._v(" cacheRowRecord()")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("private boolean cacheRowRecord() throws IOException {\n   // 判断有没有下一个符合条件的时间戳\n\twhile (timeGenerator.hasNext()) {\n\t  boolean hasField = false;\n\t  // 获得当前符合条件的时间戳\n\t  long timestamp = timeGenerator.next();\n\t  RowRecord rowRecord = new RowRecord(timestamp);\n\t  for (int i = 0; i < seriesReaderByTimestampList.size(); i++) {\n\t    // 根获得每个时间序列当前时间戳下的value\n\t    IReaderByTimestamp reader = seriesReaderByTimestampList.get(i);\n\t    Object value = reader.getValueInTimestamp(timestamp);\n\t    // 如果该时间序列在当前时间戳下没有值，则置null\n\t    if (value == null) {\n\t      rowRecord.addField(null);\n\t    } \n\t    // 否则将hasField置为true\n\t    else {\n\t      hasField = true;\n\t      rowRecord.addField(value, dataTypes.get(i));\n\t    }\n\t  }\n\t  // 如果该时间戳下，任何一个时间序列有值，则表示该时间戳有效，缓存该数据行\n\t  if (hasField) {\n\t    hasCachedRowRecord = true;\n\t    cachedRowRecord = rowRecord;\n\t    break;\n\t  }\n\t}\n\treturn hasCachedRowRecord;\n}\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br"),s("span",{staticClass:"line-number"},[a._v("21")]),s("br"),s("span",{staticClass:"line-number"},[a._v("22")]),s("br"),s("span",{staticClass:"line-number"},[a._v("23")]),s("br"),s("span",{staticClass:"line-number"},[a._v("24")]),s("br"),s("span",{staticClass:"line-number"},[a._v("25")]),s("br"),s("span",{staticClass:"line-number"},[a._v("26")]),s("br"),s("span",{staticClass:"line-number"},[a._v("27")]),s("br"),s("span",{staticClass:"line-number"},[a._v("28")]),s("br"),s("span",{staticClass:"line-number"},[a._v("29")]),s("br"),s("span",{staticClass:"line-number"},[a._v("30")]),s("br")])])])}),[],!1,null,null,null);e.default=t.exports}}]);