blob: f3ecaa038ad858139dea9a0e3b258a36dea1f1d0 [file] [log] [blame]
import{_ as p,c as r,d as l,b as n,e as a,a as o,f as t,r as c,o as i}from"./app-C-fAkKj6.js";const y={};function D(d,s){const e=c("RouteLink");return i(),r("div",null,[s[6]||(s[6]=l("h2",{id:"删除数据",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#删除数据"},[l("span",null,"删除数据")])],-1)),l("p",null,[s[1]||(s[1]=a("用户使用 ")),o(e,{to:"/zh/UserGuide/V0.13.x/Reference/SQL-Reference.html"},{default:t(()=>s[0]||(s[0]=[a("DELETE 语句")])),_:1}),s[2]||(s[2]=a(" 可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带、*路径对某一个时间区间内的数据进行删除。"))]),s[7]||(s[7]=n(`<p>在 JAVA 编程环境中,您可以使用 JDBC API 单条或批量执行 DELETE 语句。</p><h3 id="单传感器时间序列值删除" tabindex="-1"><a class="header-anchor" href="#单传感器时间序列值删除"><span>单传感器时间序列值删除</span></a></h3><p>以测控 ln 集团为例,存在这样的使用场景:</p><p>wf02 子站的 wt02 设备在 2017-11-01 16:26:00 之前的供电状态出现多段错误,且无法分析其正确数据,错误数据影响了与其他设备的关联分析。此时,需要将此时间段前的数据删除。进行此操作的 SQL 语句为:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;">&lt;=</span><span style="color:#D19A66;">2017</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">11</span><span style="color:#ABB2BF;">-01T16:</span><span style="color:#D19A66;">26</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">;</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>如果我们仅仅想要删除 2017 年内的在 2017-11-01 16:26:00 之前的数据,可以使用以下 SQL:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;">&gt;=</span><span style="color:#D19A66;">2017</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">01</span><span style="color:#ABB2BF;">-01T00:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#C678DD;"> and</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;">&lt;=</span><span style="color:#D19A66;">2017</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">11</span><span style="color:#ABB2BF;">-01T16:</span><span style="color:#D19A66;">26</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">;</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>IoTDB 支持删除一个时间序列任何一个时间范围内的所有时序点,用户可以使用以下 SQL 语句指定需要删除的时间范围:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;</span><span style="color:#D19A66;"> 10</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;=</span><span style="color:#D19A66;"> 10</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;</span><span style="color:#D19A66;"> 20</span><span style="color:#C678DD;"> and</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &gt;</span><span style="color:#D19A66;"> 10</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;=</span><span style="color:#D19A66;"> 20</span><span style="color:#C678DD;"> and</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &gt;=</span><span style="color:#D19A66;"> 10</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &gt;</span><span style="color:#D19A66;"> 20</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &gt;=</span><span style="color:#D19A66;"> 20</span></span>
<span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 20</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></div><p>需要注意,当前的删除语句不支持 where 子句后的时间范围为多个由 OR 连接成的时间区间。如下删除语句将会解析出错:</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>delete from root.ln.wf02.wt02.status where time &gt; 4 or time &lt; 0</span></span>
<span class="line"><span>Msg: 303: Check metadata error: For delete statement, where clause can only contain atomic</span></span>
<span class="line"><span>expressions like : time &gt; XXX, time &lt;= XXX, or two atomic expressions connected by &#39;AND&#39;</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></div><p>如果 delete 语句中未指定 where 子句,则会删除时间序列中的所有数据。</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">status</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="多传感器时间序列值删除" tabindex="-1"><a class="header-anchor" href="#多传感器时间序列值删除"><span>多传感器时间序列值删除</span></a></h3>`,14)),l("p",null,[s[4]||(s[4]=a("当 ln 集团 wf02 子站的 wt02 设备在 2017-11-01 16:26:00 之前的供电状态和设备硬件版本都需要删除,此时可以使用含义更广的 ")),o(e,{to:"/zh/UserGuide/V0.13.x/Data-Concept/Data-Model-and-Terminology.html"},{default:t(()=>s[3]||(s[3]=[a("路径模式(Path Pattern)")])),_:1}),s[5]||(s[5]=a(" 进行删除操作,进行此操作的 SQL 语句为:"))]),s[8]||(s[8]=n(`<div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.* </span><span style="color:#C678DD;">where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;=</span><span style="color:#D19A66;"> 2017</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">11</span><span style="color:#ABB2BF;">-01T16:</span><span style="color:#D19A66;">26</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">;</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>需要注意的是,当删除的路径不存在时,IoTDB 不会提示路径不存在,而是显示执行成功,因为 SQL 是一种声明式的编程方式,除非是语法错误、权限不足等,否则都不认为是错误,如下所示。</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;">IoTDB</span><span style="color:#56B6C2;">&gt;</span><span style="color:#C678DD;"> delete</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf03</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.</span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> where</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;"> &lt;</span><span style="color:#C678DD;"> now</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#ABB2BF;">Msg: The </span><span style="color:#C678DD;">statement</span><span style="color:#C678DD;"> is</span><span style="color:#ABB2BF;"> executed successfully.</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></div><h3 id="删除时间分区-实验性功能" tabindex="-1"><a class="header-anchor" href="#删除时间分区-实验性功能"><span>删除时间分区 (实验性功能)</span></a></h3><p>您可以通过如下语句来删除某一个存储组下的指定时间分区:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">DELETE</span><span style="color:#C678DD;"> PARTITION</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">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>上例中的 0,1,2 为待删除时间分区的 id,您可以通过查看 IoTDB 的数据文件夹找到它,或者可以通过计算<code>timestamp / partitionInterval</code>(向下取整),<br> 手动地将一个时间戳转换为对应的 id,其中的<code>partitionInterval</code>可以在 IoTDB 的配置文件中找到(如果您使用的版本支持时间分区)。</p><p>请注意该功能目前只是实验性的,如果您不是开发者,使用时请务必谨慎。</p>`,8))])}const A=p(y,[["render",D],["__file","Delete-Data.html.vue"]]),m=JSON.parse('{"path":"/zh/UserGuide/V0.13.x/Write-And-Delete-Data/Delete-Data.html","title":"","lang":"zh-CN","frontmatter":{"description":"删除数据 用户使用 可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带、*路径对某一个时间区间内的数据进行删除。 在 JAVA 编程环境中,您可以使用 JDBC API 单条或批量执行 DELETE 语句。 单传感器时间序列值删除 以测控 ln 集团为例,存在这样的使用场景...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/V0.13.x/Write-And-Delete-Data/Delete-Data.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/V0.13.x/Write-And-Delete-Data/Delete-Data.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:description","content":"删除数据 用户使用 可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带、*路径对某一个时间区间内的数据进行删除。 在 JAVA 编程环境中,您可以使用 JDBC API 单条或批量执行 DELETE 语句。 单传感器时间序列值删除 以测控 ln 集团为例,存在这样的使用场景..."}],["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":[]},{"level":3,"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":3.21,"words":963},"filePathRelative":"zh/UserGuide/V0.13.x/Write-And-Delete-Data/Delete-Data.md","localizedDate":"2023年7月10日","autoDesc":true}');export{A as comp,m as data};