(window.webpackJsonp=window.webpackJsonp||[]).push([[294],{858:function(a,e,s){"use strict";s.r(e);var n=s(68),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}}]);