(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{667:function(e,t,s){"use strict";s.r(t);var a=s(69),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"query-by-device-alignment"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#query-by-device-alignment"}},[e._v("#")]),e._v(" Query by device alignment")]),e._v(" "),s("p",[e._v("The table structure of AlignByDevice Query is:")]),e._v(" "),s("table",[s("thead",[s("tr",[s("th",[e._v("time")]),e._v(" "),s("th",[e._v("device")]),e._v(" "),s("th",[e._v("sensor1")]),e._v(" "),s("th",[e._v("sensor2")]),e._v(" "),s("th",[e._v("sensor3")]),e._v(" "),s("th",[e._v("...")])])]),e._v(" "),s("tbody",[s("tr",[s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td")])])]),e._v(" "),s("h2",{attrs:{id:"design-principle"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#design-principle"}},[e._v("#")]),e._v(" Design principle")]),e._v(" "),s("p",[e._v("The implementation principle of the device-by-device query is mainly to calculate the measurement points and filter conditions corresponding to each device in the query, and then the query is performed separately for each device, and the result set is assembled and returned.")]),e._v(" "),s("h3",{attrs:{id:"meaning-of-important-fields-in-alignbydeviceplan"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#meaning-of-important-fields-in-alignbydeviceplan"}},[e._v("#")]),e._v(" Meaning of important fields in AlignByDevicePlan")]),e._v(" "),s("p",[e._v("First explain the meaning of some important fields in AlignByDevicePlan:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("List<String> measurements")]),e._v("：The list of measurements that appear in the query.")]),e._v(" "),s("li",[s("code",[e._v("List<String> devices")]),e._v(": The list of devices got from prefix paths.")]),e._v(" "),s("li",[s("code",[e._v("Map<String, IExpression> deviceToFilterMap")]),e._v(": This field is used to store the filter conditions corresponding to the device.")]),e._v(" "),s("li",[s("code",[e._v("Map<String, TSDataType> measurementDataTypeMap")]),e._v("：AlignByDevicePlan requires that the data type of the sensor of the same name be the same for different devices. This field is a Map structure of "),s("code",[e._v("measurementName-> dataType")]),e._v(".  For example "),s("code",[e._v("root.sg.d1.s1")]),e._v(" and"),s("code",[e._v("root.sg.d2.s1")]),e._v(" should be of the same data type.")]),e._v(" "),s("li",[s("code",[e._v("enum MeasurementType")]),e._v("：Three measurement types are recorded.  Measurements that do not exist in any device are of type "),s("code",[e._v("NonExist")]),e._v("; measurements with single or double quotes are of type"),s("code",[e._v("Constant")]),e._v("; measurements that exist are of type "),s("code",[e._v("Exist")]),e._v(".")]),e._v(" "),s("li",[s("code",[e._v("Map<String, MeasurementType> measurementTypeMap")]),e._v(": This field is a Map structure of "),s("code",[e._v("measureName-> measurementType")]),e._v(", which is used to record all measurement types in the query.")]),e._v(" "),s("li",[e._v("groupByPlan, fillQueryPlan, aggregationPlan：To avoid redundancy, these three execution plans are set as subclasses of RawDataQueryPlan and set as variables in AlignByDevicePlan.  If the query plan belongs to one of these three plans, the field is assigned and saved.")])]),e._v(" "),s("p",[e._v("Before explaining the specific implementation process, a relatively complete example is given first, and the following explanation will be used in conjunction with this example.")]),e._v(" "),s("div",{staticClass:"language-sql line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-sql"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("SELECT")]),e._v(" s1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("*")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" s2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" s5 "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("FROM")]),e._v(" root"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("sg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("d1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" root"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("sg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("*")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("WHERE")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("time")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("AND")]),e._v(" s1 "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("<")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("25")]),e._v(" ALIGN "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("BY")]),e._v(" DEVICE\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br")])]),s("p",[e._v("Among them, the time series in the system is:")]),e._v(" "),s("ul",[s("li",[e._v("root.sg.d1.s1")]),e._v(" "),s("li",[e._v("root.sg.d1.s2")]),e._v(" "),s("li",[e._v("root.sg.d2.s1")])]),e._v(" "),s("p",[e._v("The storage group "),s("code",[e._v("root.sg")]),e._v(" contains two devices d1 and d2, where d1 has two sensors s1 and s2, d2 has only sensor s1, and the same sensor s1 has the same data type.")]),e._v(" "),s("p",[e._v("The following will be explained according to the specific process:")]),e._v(" "),s("h3",{attrs:{id:"logical-plan-generation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#logical-plan-generation"}},[e._v("#")]),e._v(" Logical plan generation")]),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.qp.Planner")])]),e._v(" "),s("p",[e._v("Unlike the original data query, the alignment by device query does not concatenate the suffix paths in the SELECT statement and the WHERE statement at this stage, but when the physical plan is subsequently generated, the mapping value and filter conditions corresponding to each device are calculated.  Therefore, the work done at this stage by device alignment only includes optimization of filter conditions in WHERE statements.")]),e._v(" "),s("p",[e._v("The optimization of the filtering conditions mainly includes three parts: removing the negation, transforming the disjunction paradigm, and merging the same path filtering conditions.  The corresponding optimizers are: RemoveNotOptimizer, DnfFilterOptimizer, MergeSingleFilterOptimizer.  This part of the logic can refer to:"),s("RouterLink",{attrs:{to:"/SystemDesign/2-QueryEngine/2-Planner.html"}},[e._v("Planner")]),e._v(".")],1),e._v(" "),s("h3",{attrs:{id:"physical-plan-generation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#physical-plan-generation"}},[e._v("#")]),e._v(" Physical plan generation")]),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.qp.strategy.PhysicalGenerator")])]),e._v(" "),s("p",[e._v("After the logical plan is generated, the "),s("code",[e._v("transformToPhysicalPlan ()")]),e._v(" method in the PhysicalGenerator class is called to convert the logical plan into a physical plan.  For device-aligned queries, the main logic of this method is implemented in the transformQuery () method.")]),e._v(" "),s("p",[s("strong",[e._v("The main work done at this stage is to generate the corresponding")]),e._v(" "),s("code",[e._v("AlignByDevicePlan")]),e._v("，"),s("strong",[e._v("Fill in the variable information。")])]),e._v(" "),s("p",[e._v("First explain the meaning of some important fields in the "),s("code",[e._v("transformQuery ()")]),e._v(" method (see above for the duplicate fields in AlignByDevicePlan):")]),e._v(" "),s("ul",[s("li",[e._v("prefixPaths, suffixPaths：The former is the prefix path in the FROM clause, in the example "),s("code",[e._v("[root.sg.d1, root.sg. *]")]),e._v("; The latter is the suffix path in the SELECT clause, in the example "),s("code",[e._v('[s1," 1 " , *, s2, s5]')]),e._v(".")]),e._v(" "),s("li",[e._v("devices：The device list obtained by removing wildcards and de-duplicating the prefix path, in the example, [[root.sg.d1, root.sg.d2] `.")]),e._v(" "),s("li",[e._v("measurementSetOfGivenSuffix：The intermediate variable records the measurement corresponding to a suffix. In the example, for the suffix \\ *, "),s("code",[e._v("measurementSetOfGivenSuffix = {s1, s2}")]),e._v(", for the suffix s1, "),s("code",[e._v("measurementSetOfGivenSuffix = {s1}")]),e._v(";")])]),e._v(" "),s("p",[e._v("Next, introduce the calculation process of AlignByDevicePlan:")]),e._v(" "),s("ol",[s("li",[e._v("Check whether the query type is one of three types of queries: groupByPlan, fillQueryPlan, aggregationPlan. If it is, assign the corresponding variable and change the query type of "),s("code",[e._v("AlignByDevicePlan")]),e._v(".")]),e._v(" "),s("li",[e._v("Iterate through the SELECT suffix path, and set an intermediate variable for each suffix path as "),s("code",[e._v("measurementSetOfGivenSuffix")]),e._v(" to record all measurements corresponding to the suffix path.  If the suffix path starts with single or double quotes, increase the value directly in "),s("code",[e._v("measurements")]),e._v(" and note that its type is"),s("code",[e._v("Constant")]),e._v(".")]),e._v(" "),s("li",[e._v("Otherwise, the device list is stitched with the suffix path to obtain a complete path. If the spliced path does not exist, you need to further determine whether the measurement exists in other devices. If none, temporarily identify it as NonExist. If the subsequent device appears,  measurement, the NonExist value is overridden.")]),e._v(" "),s("li",[e._v("If the path exists after splicing, it is proved that the measurement is of type "),s("code",[e._v("Exist")]),e._v(", and the consistency of the data type needs to be checked. If it is not satisfied, an error message is returned. If it is met, the measurement is recorded.")]),e._v(" "),s("li",[e._v("After the suffix loop of a layer ends, the "),s("code",[e._v("measurementSetOfGivenSuffix")]),e._v(" appearing in the loop of that layer is added to the"),s("code",[e._v("measurements")]),e._v(".  At the end of the entire loop, the variable information obtained in the loop is assigned to AlignByDevicePlan.  The list of measurements obtained here is not duplicated and will be de-duplicated when the ColumnHeader is generated.")]),e._v(" "),s("li",[e._v("Finally, call the "),s("code",[e._v("concatFilterByDevice ()")]),e._v(" method to calculate "),s("code",[e._v("deviceToFilterMap")]),e._v(", and get the corresponding Filter information after splicing each device separately.")])]),e._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Map")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("IExpression")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(">")])]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("concatFilterByDevice")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(">")])]),e._v(" devices"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n      "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("FilterOperator")]),e._v(" operator"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Input")]),e._v("："),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Deduplicated")]),e._v(" devices list and un"),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("-")]),e._v("stitched "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("FilterOperator")]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Input")]),e._v("："),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("The")]),e._v(" deviceToFilterMap after splicing records the "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Filter")]),e._v(" information corresponding "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("to")]),e._v(" each device\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br"),s("span",{staticClass:"line-number"},[e._v("3")]),s("br"),s("span",{staticClass:"line-number"},[e._v("4")]),s("br")])]),s("p",[e._v("The main processing logic of the "),s("code",[e._v("concatFilterByDevice ()")]),e._v(" method is in "),s("code",[e._v("concatFilterPath ()")]),e._v(":")]),e._v(" "),s("p",[e._v("The "),s("code",[e._v("concatFilterPath ()")]),e._v(" method traverses the unspliced FilterOperator binary tree to determine whether the node is a leaf node. If so, the path of the leaf node is taken. If the path starts with time or root, it is not processed, otherwise the device name and node are not processed.  The paths are spliced and returned; if not, all children of the node are iteratively processed.  In the example, the result of splicing the filter conditions of device 1 is "),s("code",[e._v("time = 1 AND root.sg.d1.s1 <25")]),e._v(", and device 2 is"),s("code",[e._v("time = 1 AND root.sg.d2.s1 <25")]),e._v(".")]),e._v(" "),s("p",[e._v("The following example summarizes the variable information calculated through this stage:")]),e._v(" "),s("ul",[s("li",[e._v("measurement list "),s("code",[e._v("measurements")]),e._v("："),s("code",[e._v('[s1, "1", s1, s2, s2, s5]')])]),e._v(" "),s("li",[e._v("measurement type "),s("code",[e._v("measurementTypeMap")]),e._v("：\n"),s("ul",[s("li",[s("code",[e._v("s1 -> Exist")])]),e._v(" "),s("li",[s("code",[e._v("s2 -> Exist")])]),e._v(" "),s("li",[s("code",[e._v('"1" -> Constant')])]),e._v(" "),s("li",[s("code",[e._v("s5 -> NonExist")])])])]),e._v(" "),s("li",[e._v("Filter condition "),s("code",[e._v("deviceToFilterMap")]),e._v(" for each device:\n"),s("ul",[s("li",[s("code",[e._v("root.sg.d1 -> time = 1 AND root.sg.d1.s1 < 25")])]),e._v(" "),s("li",[s("code",[e._v("root.sg.d2 -> time = 1 AND root.sg.d2.s1 < 25")])])])])]),e._v(" "),s("h3",{attrs:{id:"constructing-a-header-columnheader"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#constructing-a-header-columnheader"}},[e._v("#")]),e._v(" Constructing a Header (ColumnHeader)")]),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.service.TSServiceImpl")])]),e._v(" "),s("p",[e._v("After generating the physical plan, you can execute the executeQueryStatement () method in TSServiceImpl to generate a result set and return it. The first step is to construct the header.")]),e._v(" "),s("p",[e._v("Query by device alignment After calling the TSServiceImpl.getQueryColumnHeaders () method, enter TSServiceImpl.getAlignByDeviceQueryHeaders () according to the query type to construct the headers.")]),e._v(" "),s("p",[e._v("The "),s("code",[e._v("getAlignByDeviceQueryHeaders ()")]),e._v(" method is declared as follows:")]),e._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("private")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("void")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("getAlignByDeviceQueryHeaders")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("\n      "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("AlignByDevicePlan")]),e._v(" plan"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(">")])]),e._v(" respColumns"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("List")]),s("span",{pre:!0,attrs:{class:"token generics"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(">")])]),e._v(" columnTypes"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Input")]),e._v("："),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("The")]),e._v(" currently executing physical plan "),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("AlignByDevicePlan")]),e._v(" and the column names that need "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("to")]),e._v(" be output respColumns and their corresponding data types columnTypes\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Input")]),e._v("："),s("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Calculated")]),e._v(" column name respColumns and data type columnTypes\n")])]),e._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[e._v("1")]),s("br"),s("span",{staticClass:"line-number"},[e._v("2")]),s("br"),s("span",{staticClass:"line-number"},[e._v("3")]),s("br"),s("span",{staticClass:"line-number"},[e._v("4")]),s("br")])]),s("p",[e._v("The specific implementation logic is as follows:")]),e._v(" "),s("ol",[s("li",[e._v("First add the "),s("code",[e._v("Device")]),e._v(" column, whose data type is"),s("code",[e._v("TEXT")]),e._v(";")]),e._v(" "),s("li",[e._v("Traverse the list of measurements without deduplication to determine the type of measurement currently traversed. If it is an Exist type, get its type from the measurementTypeMap; set the other two types to TEXT, and then add measurement and its type to the header data structure.")]),e._v(" "),s("li",[e._v("Deduplicate measurements based on the intermediate variable deduplicatedMeasurements.")])]),e._v(" "),s("p",[e._v("The resulting header is:")]),e._v(" "),s("table",[s("thead",[s("tr",[s("th",[e._v("Time")]),e._v(" "),s("th",[e._v("Device")]),e._v(" "),s("th",[e._v("s1")]),e._v(" "),s("th",[e._v("1")]),e._v(" "),s("th",[e._v("s1")]),e._v(" "),s("th",[e._v("s2")]),e._v(" "),s("th",[e._v("s2")]),e._v(" "),s("th",[e._v("s5")])])]),e._v(" "),s("tbody",[s("tr",[s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td"),e._v(" "),s("td")])])]),e._v(" "),s("p",[e._v("The deduplicated "),s("code",[e._v("measurements")]),e._v(" are"),s("code",[e._v('[s1, "1", s2, s5]')]),e._v(".")]),e._v(" "),s("h3",{attrs:{id:"result-set-generation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#result-set-generation"}},[e._v("#")]),e._v(" Result set generation")]),e._v(" "),s("p",[e._v("After the ColumnHeader is generated, the final step is to populate the result set with the results and return.")]),e._v(" "),s("h4",{attrs:{id:"result-set-creation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#result-set-creation"}},[e._v("#")]),e._v(" Result set creation")]),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.service.TSServiceImpl")])]),e._v(" "),s("p",[e._v("At this stage, you need to call "),s("code",[e._v("TSServiceImpl.createQueryDataSet ()")]),e._v(" to create a new result set. This part of the implementation logic is relatively simple. For AlignByDeviceQuery, you only need to create a new "),s("code",[e._v("AlignByDeviceDataSet")]),e._v(". In the constructor, the parameters in AlignByDevicePlan  Assign to the newly created result set.")]),e._v(" "),s("h4",{attrs:{id:"result-set-population"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#result-set-population"}},[e._v("#")]),e._v(" Result set population")]),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.utils.QueryDataSetUtils")])]),e._v(" "),s("p",[e._v("Next you need to fill the results. AlignByDeviceQuery will call the "),s("code",[e._v("TSServiceImpl.fillRpcReturnData ()")]),e._v(" method, and then enter the "),s("code",[e._v("QueryDataSetUtils.convertQueryDataSetByFetchSize ()")]),e._v(" method according to the query type.")]),e._v(" "),s("p",[e._v("The important method for getting results in the "),s("code",[e._v("convertQueryDataSetByFetchSize ()")]),e._v(" method is the "),s("code",[e._v("hasNext ()")]),e._v(" method of QueryDataSet.")]),e._v(" "),s("p",[e._v("The main logic of the "),s("code",[e._v("hasNext ()")]),e._v(" method is as follows:")]),e._v(" "),s("ol",[s("li",[e._v("Determine if there is a specified row offset "),s("code",[e._v("rowOffset")]),e._v(", if there is, skip the number of rows that need to be offset; if the total number of results is less than the specified offset, return false.")]),e._v(" "),s("li",[e._v("Determines whether there is a specified limit on the number of rows "),s("code",[e._v("rowLimit")]),e._v(", if there is, it compares the current number of output rows, and returns false if the current number of output rows is greater than the limit.")]),e._v(" "),s("li",[e._v("Enter "),s("code",[e._v("AlignByDeviceDataSet.hasNextWithoutConstraint ()")]),e._v(" method")])]),e._v(" "),s("br"),e._v(" "),s("ul",[s("li",[e._v("org.apache.iotdb.db.query.dataset.AlignByDeviceDataSet")])]),e._v(" "),s("p",[e._v("First explain the meaning of the important fields in the result set:")]),e._v(" "),s("ul",[s("li",[s("code",[e._v("deviceIterator")]),e._v(": Query by device is essentially to calculate the mapping value and filtering conditions corresponding to each device, and then the query is performed separately for each device. This field is an iterator for the device. Each query obtains a device to perform.")]),e._v(" "),s("li",[s("code",[e._v("currentDataSet")]),e._v("：This field represents the result set obtained by querying a certain device.")])]),e._v(" "),s("p",[e._v("The work done by the "),s("code",[e._v("hasNextWithoutConstraint ()")]),e._v(" method is mainly to determine whether the current result set has the next result, if not, the next device is obtained, the path, data type and filter conditions required by the device to execute the query are calculated, and then executed according to its query type  The result set is obtained after a specific query plan, until no device is available for querying.")]),e._v(" "),s("p",[e._v("The specific implementation logic is as follows:")]),e._v(" "),s("ol",[s("li",[e._v("First determine whether the current result set is initialized and there is a next result. If it is, it returns true directly, that is, you can call the "),s("code",[e._v("next()")]),e._v(" method to get the next "),s("code",[e._v("RowRecord")]),e._v("; otherwise, the result set is not initialized and proceeds to step 2.")]),e._v(" "),s("li",[e._v("Iterate "),s("code",[e._v("deviceIterator")]),e._v(" to get the devices needed for this execution, and then find the device node from MManger by the device path to get all sensor nodes under it.")]),e._v(" "),s("li",[e._v("Compare all measurements in the query and the sensor nodes under the current device to get the "),s("code",[e._v("executeColumns")]),e._v(" which need to be queried. Then concatenate the current device name and measurements to calculate the query path, data type, and filter conditions of the current device. The corresponding fields are "),s("code",[e._v("executePaths")]),e._v(","),s("code",[e._v("tsDataTypes")]),e._v(", and "),s("code",[e._v("expression")]),e._v(". If it is an aggregate query, you need to calculate "),s("code",[e._v("executeAggregations")]),e._v(".")]),e._v(" "),s("li",[e._v("Determine whether the current subquery type is GroupByQuery, AggregationQuery, FillQuery or RawDataQuery. Perform the corresponding query and return the result set. The implementation logic "),s("RouterLink",{attrs:{to:"/#/SystemDesign/progress/chap5/sec3"}},[e._v("Raw data query")]),e._v("，"),s("RouterLink",{attrs:{to:"/#/SystemDesign/progress/chap5/sec4"}},[e._v("Aggregate query")]),e._v("，"),s("RouterLink",{attrs:{to:"/#/SystemDesign/progress/chap5/sec5"}},[e._v("Downsampling query")]),e._v("  can be referenced.")],1)]),e._v(" "),s("p",[e._v("After initializing the result set through the "),s("code",[e._v("hasNextWithoutConstraint ()")]),e._v(" method and ensuring that there is a next result, you can call "),s("code",[e._v("QueryDataSet.next ()")]),e._v(" method to get the next "),s("code",[e._v("RowRecord")]),e._v(".")]),e._v(" "),s("p",[e._v("The "),s("code",[e._v("next ()")]),e._v(" method is mainly implemented as the "),s("code",[e._v("AlignByDeviceDataSet.nextWithoutConstraint ()")]),e._v(" method.")]),e._v(" "),s("p",[e._v("The work done by the "),s("code",[e._v("nextWithoutConstraint ()")]),e._v(" method is to ** transform the time-aligned result set form obtained by a single device query into a device-aligned result set form **, and return the transformed "),s("code",[e._v("RowRecord")]),e._v(".")]),e._v(" "),s("p",[e._v("The specific implementation logic is as follows:")]),e._v(" "),s("ol",[s("li",[e._v("First get the next time-aligned "),s("code",[e._v("originRowRecord")]),e._v(" from the result set.")]),e._v(" "),s("li",[e._v("Create a new "),s("code",[e._v("RowRecord")]),e._v(" with timestamp, add device columns to it, and first create a Map structure"),s("code",[e._v("currentColumnMap")]),e._v(" of "),s("code",[e._v("measurementName-> Field")]),e._v(" according to"),s("code",[e._v("executeColumns")]),e._v(" and the obtained result.")]),e._v(" "),s("li",[e._v("After that, you only need to traverse the deduplicated "),s("code",[e._v("measurements")]),e._v(" list to determine its type. If the type is"),s("code",[e._v("Exist")]),e._v(", get the corresponding result from the "),s("code",[e._v("currentColumnMap")]),e._v(" according to the measurementName. If not, set it to"),s("code",[e._v("null")]),e._v("; if it is "),s("code",[e._v("NonExist")]),e._v("Type is set to"),s("code",[e._v("null")]),e._v(" directly; if it is "),s("code",[e._v("Constant")]),e._v(" type,"),s("code",[e._v("measureName")]),e._v(" is used as the value of this column.")])]),e._v(" "),s("p",[e._v("After writing the output data stream according to the transformed "),s("code",[e._v("RowRecord")]),e._v(", the result set can be returned.")])])}),[],!1,null,null,null);t.default=n.exports}}]);