| import{_ as i,c as l,b as e,d as p,e as n,a as t,f as r,r as o,o as d}from"./app-C8175JBb.js";const c={};function m(v,s){const a=o("RouteLink");return d(),l("div",null,[s[3]||(s[3]=e('<h2 id="死区处理" tabindex="-1"><a class="header-anchor" href="#死区处理"><span>死区处理</span></a></h2><h3 id="旋转门压缩" tabindex="-1"><a class="header-anchor" href="#旋转门压缩"><span>旋转门压缩</span></a></h3><p>旋转门压缩(SDT)算法是一种死区处理算法。SDT 的计算复杂度较低,并使用线性趋势来表示大量数据。</p><p>在 IoTDB 中,SDT 在刷新到磁盘时会压缩并丢弃数据。</p><p>IoTDB 允许您在创建时间序列时指定 SDT 的属性,并支持以下三个属性:</p><ul><li>CompDev (Compression Deviation,压缩偏差)</li></ul><p>CompDev 是 SDT 中最重要的参数,它表示当前样本与当前线性趋势之间的最大差值。CompDev 设置的值需要大于 0。</p><ul><li>CompMinTime (Compression Minimum Time Interval,最小压缩时间间隔)</li></ul><p>CompMinTime 是测量两个存储的数据点之间的时间距离的参数,用于减少噪声。<br> 如果当前点和最后存储的点之间的时间间隔小于或等于其值,则无论压缩偏差如何,都不会存储当前点。<br> 默认值为 0,单位为毫秒。</p><ul><li>CompMaxTime (Compression Maximum Time Interval,最大压缩时间间隔)</li></ul><p>CompMaxTime 是测量两个存储的数据点之间的时间距离的参数。<br> 如果当前点和最后一个存储点之间的时间间隔大于或等于其值,<br> 无论压缩偏差如何,都将存储当前点。<br> 默认值为 9,223,372,036,854,775,807,单位为毫秒。</p><p>支持的数据类型:</p><ul><li>INT32(整型)</li><li>INT64(长整型)</li><li>FLOAT(单精度浮点数)</li><li>DOUBLE(双精度浮点数)</li></ul>',13)),p("p",null,[s[1]||(s[1]=n("SDT 的指定语法详见本文 ")),t(a,{to:"/zh/UserGuide/V0.13.x/Reference/SQL-Reference.html"},{default:r(()=>s[0]||(s[0]=[n("SQL 参考文档")])),_:1}),s[2]||(s[2]=n("。"))]),s[4]||(s[4]=e(`<p>以下是使用 SDT 压缩的示例。</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span>IoTDB> CREATE TIMESERIES root.sg1.d0.s0 WITH DATATYPE=INT32,ENCODING=PLAIN,LOSS=SDT,COMPDEV=2</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>刷入磁盘和 SDT 压缩之前,结果如下所示:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span>IoTDB> SELECT s0 FROM root.sg1.d0</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>| Time|root.sg1.d0.s0|</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.001+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.002+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.003+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.004+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.005+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.006+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.007+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.015+08:00| 10|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.016+08:00| 20|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.017+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.018+08:00| 30|</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>Total line number = 11</span></span> |
| <span class="line"><span>It costs 0.008s</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>刷入磁盘和 SDT 压缩之后,结果如下所示:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span>IoTDB> FLUSH</span></span> |
| <span class="line"><span>IoTDB> SELECT s0 FROM root.sg1.d0</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>| Time|root.sg1.d0.s0|</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.001+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.007+08:00| 1|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.015+08:00| 10|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.016+08:00| 20|</span></span> |
| <span class="line"><span>|2017-11-01T00:06:00.017+08:00| 1|</span></span> |
| <span class="line"><span>+-----------------------------+--------------+</span></span> |
| <span class="line"><span>Total line number = 5</span></span> |
| <span class="line"><span>It costs 0.044s</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>SDT 在刷新到磁盘时进行压缩。 SDT 算法始终存储第一个点,并且不存储最后一个点。</p><p>时间范围在 [2017-11-01T00:06:00.001, 2017-11-01T00:06:00.007] 的数据在压缩偏差内,因此被压缩和丢弃。<br> 之所以存储时间为 2017-11-01T00:06:00.007 的数据点,是因为下一个数据点 2017-11-01T00:06:00.015 的值超过压缩偏差。<br> 当一个数据点超过压缩偏差时,SDT 将存储上一个读取的数据点,并重新计算上下压缩边界。作为最后一个数据点,不存储时间 2017-11-01T00:06:00.018。</p>`,8))])}const T=i(c,[["render",m],["__file","Deadband-Process.html.vue"]]),b=JSON.parse('{"path":"/zh/UserGuide/V0.13.x/Data-Concept/Deadband-Process.html","title":"","lang":"zh-CN","frontmatter":{"description":"死区处理 旋转门压缩 旋转门压缩(SDT)算法是一种死区处理算法。SDT 的计算复杂度较低,并使用线性趋势来表示大量数据。 在 IoTDB 中,SDT 在刷新到磁盘时会压缩并丢弃数据。 IoTDB 允许您在创建时间序列时指定 SDT 的属性,并支持以下三个属性: CompDev (Compression Deviation,压缩偏差) CompDev ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/V0.13.x/Data-Concept/Deadband-Process.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/V0.13.x/Data-Concept/Deadband-Process.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:description","content":"死区处理 旋转门压缩 旋转门压缩(SDT)算法是一种死区处理算法。SDT 的计算复杂度较低,并使用线性趋势来表示大量数据。 在 IoTDB 中,SDT 在刷新到磁盘时会压缩并丢弃数据。 IoTDB 允许您在创建时间序列时指定 SDT 的属性,并支持以下三个属性: CompDev (Compression Deviation,压缩偏差) CompDev ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-07-10T03:11:17.000Z"}],["meta",{"property":"article:modified_time","content":"2023-07-10T03:11:17.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-07-10T03:11:17.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"死区处理","slug":"死区处理","link":"#死区处理","children":[{"level":3,"title":"旋转门压缩","slug":"旋转门压缩","link":"#旋转门压缩","children":[]}]}],"git":{"createdTime":1688958677000,"updatedTime":1688958677000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"}]},"readingTime":{"minutes":2.88,"words":863},"filePathRelative":"zh/UserGuide/V0.13.x/Data-Concept/Deadband-Process.md","localizedDate":"2023年7月10日","autoDesc":true}');export{T as comp,b as data}; |