| import{_ as e,o as s,c as i,e as n}from"./app-Bp5kEZWW.js";const a={},t=n(`<h1 id="data-repairing" tabindex="-1"><a class="header-anchor" href="#data-repairing"><span>Data Repairing</span></a></h1><h2 id="timestamprepair" tabindex="-1"><a class="header-anchor" href="#timestamprepair"><span>TimestampRepair</span></a></h2><p>This function is used for timestamp repair.<br> According to the given standard time interval,<br> the method of minimizing the repair cost is adopted.<br> By fine-tuning the timestamps,<br> the original data with unstable timestamp interval is repaired to strictly equispaced data.<br> If no standard time interval is given,<br> this function will use the <strong>median</strong>, <strong>mode</strong> or <strong>cluster</strong> of the time interval to estimate the standard time interval.</p><p><strong>Name:</strong> TIMESTAMPREPAIR</p><p><strong>Input Series:</strong> Only support a single input series. The data type is INT32 / INT64 / FLOAT / DOUBLE.</p><p><strong>Parameters:</strong></p><ul><li><code>interval</code>: The standard time interval whose unit is millisecond. It is a positive integer. By default, it will be estimated according to the given method.</li><li><code>method</code>: The method to estimate the standard time interval, which is 'median', 'mode' or 'cluster'. This parameter is only valid when <code>interval</code> is not given. By default, median will be used.</li></ul><p><strong>Output Series:</strong> Output a single series. The type is the same as the input. This series is the input after repairing.</p><h3 id="examples" tabindex="-1"><a class="header-anchor" href="#examples"><span>Examples</span></a></h3><h4 id="manually-specify-the-standard-time-interval" tabindex="-1"><a class="header-anchor" href="#manually-specify-the-standard-time-interval"><span>Manually Specify the Standard Time Interval</span></a></h4><p>When <code>interval</code> is given, this function repairs according to the given standard time interval.</p><p>Input series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+---------------+ |
| | Time|root.test.d2.s1| |
| +-----------------------------+---------------+ |
| |2021-07-01T12:00:00.000+08:00| 1.0| |
| |2021-07-01T12:00:10.000+08:00| 2.0| |
| |2021-07-01T12:00:19.000+08:00| 3.0| |
| |2021-07-01T12:00:30.000+08:00| 4.0| |
| |2021-07-01T12:00:40.000+08:00| 5.0| |
| |2021-07-01T12:00:50.000+08:00| 6.0| |
| |2021-07-01T12:01:01.000+08:00| 7.0| |
| |2021-07-01T12:01:11.000+08:00| 8.0| |
| |2021-07-01T12:01:21.000+08:00| 9.0| |
| |2021-07-01T12:01:31.000+08:00| 10.0| |
| +-----------------------------+---------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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>SQL for query:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> timestamprepair<span class="token punctuation">(</span>s1<span class="token punctuation">,</span><span class="token string">'interval'</span><span class="token operator">=</span><span class="token string">'10000'</span><span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+----------------------------------------------------+ |
| | Time|timestamprepair(root.test.d2.s1, "interval"="10000")| |
| +-----------------------------+----------------------------------------------------+ |
| |2021-07-01T12:00:00.000+08:00| 1.0| |
| |2021-07-01T12:00:10.000+08:00| 2.0| |
| |2021-07-01T12:00:20.000+08:00| 3.0| |
| |2021-07-01T12:00:30.000+08:00| 4.0| |
| |2021-07-01T12:00:40.000+08:00| 5.0| |
| |2021-07-01T12:00:50.000+08:00| 6.0| |
| |2021-07-01T12:01:00.000+08:00| 7.0| |
| |2021-07-01T12:01:10.000+08:00| 8.0| |
| |2021-07-01T12:01:20.000+08:00| 9.0| |
| |2021-07-01T12:01:30.000+08:00| 10.0| |
| +-----------------------------+----------------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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><h4 id="automatically-estimate-the-standard-time-interval" tabindex="-1"><a class="header-anchor" href="#automatically-estimate-the-standard-time-interval"><span>Automatically Estimate the Standard Time Interval</span></a></h4><p>When <code>interval</code> is default, this function estimates the standard time interval.</p><p>Input series is the same as above, the SQL for query is shown below:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> timestamprepair<span class="token punctuation">(</span>s1<span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+--------------------------------+ |
| | Time|timestamprepair(root.test.d2.s1)| |
| +-----------------------------+--------------------------------+ |
| |2021-07-01T12:00:00.000+08:00| 1.0| |
| |2021-07-01T12:00:10.000+08:00| 2.0| |
| |2021-07-01T12:00:20.000+08:00| 3.0| |
| |2021-07-01T12:00:30.000+08:00| 4.0| |
| |2021-07-01T12:00:40.000+08:00| 5.0| |
| |2021-07-01T12:00:50.000+08:00| 6.0| |
| |2021-07-01T12:01:00.000+08:00| 7.0| |
| |2021-07-01T12:01:10.000+08:00| 8.0| |
| |2021-07-01T12:01:20.000+08:00| 9.0| |
| |2021-07-01T12:01:30.000+08:00| 10.0| |
| +-----------------------------+--------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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><h2 id="valuefill" tabindex="-1"><a class="header-anchor" href="#valuefill"><span>ValueFill</span></a></h2><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage"><span>Usage</span></a></h3><p>This function is used to impute time series. Several methods are supported.</p><p><strong>Name</strong>: ValueFill<br><strong>Input Series:</strong> Only support a single input series. The type is INT32 / INT64 / FLOAT / DOUBLE.</p><p><strong>Parameters:</strong></p><ul><li><code>method</code>: {"mean", "previous", "linear", "likelihood", "AR", "MA", "SCREEN"}, default "linear".<br> Method to use for imputation in series. "mean": use global mean value to fill holes; "previous": propagate last valid observation forward to next valid. "linear": simplest interpolation method; "likelihood":Maximum likelihood estimation based on the normal distribution of speed; "AR": auto regression; "MA": moving average; "SCREEN": speed constraint.</li></ul><p><strong>Output Series:</strong> Output a single series. The type is the same as the input. This series is the input after repairing.</p><p><strong>Note:</strong> AR method use AR(1) model. Input value should be auto-correlated, or the function would output a single point (0, 0.0).</p><h3 id="examples-1" tabindex="-1"><a class="header-anchor" href="#examples-1"><span>Examples</span></a></h3><h4 id="fill-with-linear" tabindex="-1"><a class="header-anchor" href="#fill-with-linear"><span>Fill with linear</span></a></h4><p>When <code>method</code> is "linear" or the default, Screen method is used to impute.</p><p>Input series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+---------------+ |
| | Time|root.test.d2.s1| |
| +-----------------------------+---------------+ |
| |2020-01-01T00:00:02.000+08:00| NaN| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 126.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| NaN| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| NaN| |
| |2020-01-01T00:00:22.000+08:00| NaN| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| 128.0| |
| +-----------------------------+---------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><p>SQL for query:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> valuefill<span class="token punctuation">(</span>s1<span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+-----------------------+ |
| | Time|valuefill(root.test.d2)| |
| +-----------------------------+-----------------------+ |
| |2020-01-01T00:00:02.000+08:00| NaN| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 126.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| 108.0| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| 118.7| |
| |2020-01-01T00:00:22.000+08:00| 121.3| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| 128.0| |
| +-----------------------------+-----------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><h4 id="previous-fill" tabindex="-1"><a class="header-anchor" href="#previous-fill"><span>Previous Fill</span></a></h4><p>When <code>method</code> is "previous", previous method is used.</p><p>Input series is the same as above, the SQL for query is shown below:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> valuefill<span class="token punctuation">(</span>s1<span class="token punctuation">,</span><span class="token string">"method"</span><span class="token operator">=</span><span class="token string">"previous"</span><span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+-------------------------------------------+ |
| | Time|valuefill(root.test.d2,"method"="previous")| |
| +-----------------------------+-------------------------------------------+ |
| |2020-01-01T00:00:02.000+08:00| NaN| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 126.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| 110.5| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| 116.0| |
| |2020-01-01T00:00:22.000+08:00| 116.0| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| 128.0| |
| +-----------------------------+-------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><h2 id="valuerepair" tabindex="-1"><a class="header-anchor" href="#valuerepair"><span>ValueRepair</span></a></h2><h3 id="usage-1" tabindex="-1"><a class="header-anchor" href="#usage-1"><span>Usage</span></a></h3><p>This function is used to repair the value of the time series.<br> Currently, two methods are supported:<br><strong>Screen</strong> is a method based on speed threshold, which makes all speeds meet the threshold requirements under the premise of minimum changes;<br><strong>LsGreedy</strong> is a method based on speed change likelihood, which models speed changes as Gaussian distribution, and uses a greedy algorithm to maximize the likelihood.</p><p><strong>Name:</strong> VALUEREPAIR</p><p><strong>Input Series:</strong> Only support a single input series. The type is INT32 / INT64 / FLOAT / DOUBLE.</p><p><strong>Parameters:</strong></p><ul><li><code>method</code>: The method used to repair, which is 'Screen' or 'LsGreedy'. By default, Screen is used.</li><li><code>minSpeed</code>: This parameter is only valid with Screen. It is the speed threshold. Speeds below it will be regarded as outliers. By default, it is the median minus 3 times of median absolute deviation.</li><li><code>maxSpeed</code>: This parameter is only valid with Screen. It is the speed threshold. Speeds above it will be regarded as outliers. By default, it is the median plus 3 times of median absolute deviation.</li><li><code>center</code>: This parameter is only valid with LsGreedy. It is the center of the Gaussian distribution of speed changes. By default, it is 0.</li><li><code>sigma</code>: This parameter is only valid with LsGreedy. It is the standard deviation of the Gaussian distribution of speed changes. By default, it is the median absolute deviation.</li></ul><p><strong>Output Series:</strong> Output a single series. The type is the same as the input. This series is the input after repairing.</p><p><strong>Note:</strong> <code>NaN</code> will be filled with linear interpolation before repairing.</p><h3 id="examples-2" tabindex="-1"><a class="header-anchor" href="#examples-2"><span>Examples</span></a></h3><h4 id="repair-with-screen" tabindex="-1"><a class="header-anchor" href="#repair-with-screen"><span>Repair with Screen</span></a></h4><p>When <code>method</code> is 'Screen' or the default, Screen method is used.</p><p>Input series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+---------------+ |
| | Time|root.test.d2.s1| |
| +-----------------------------+---------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 126.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| 112.0| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| 118.0| |
| |2020-01-01T00:00:22.000+08:00| 100.0| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| NaN| |
| +-----------------------------+---------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><p>SQL for query:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> valuerepair<span class="token punctuation">(</span>s1<span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+----------------------------+ |
| | Time|valuerepair(root.test.d2.s1)| |
| +-----------------------------+----------------------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 106.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| 112.0| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| 118.0| |
| |2020-01-01T00:00:22.000+08:00| 120.0| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| 128.0| |
| +-----------------------------+----------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><h4 id="repair-with-lsgreedy" tabindex="-1"><a class="header-anchor" href="#repair-with-lsgreedy"><span>Repair with LsGreedy</span></a></h4><p>When <code>method</code> is 'LsGreedy', LsGreedy method is used.</p><p>Input series is the same as above, the SQL for query is shown below:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> valuerepair<span class="token punctuation">(</span>s1<span class="token punctuation">,</span><span class="token string">'method'</span><span class="token operator">=</span><span class="token string">'LsGreedy'</span><span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+-------------------------------------------------+ |
| | Time|valuerepair(root.test.d2.s1, "method"="LsGreedy")| |
| +-----------------------------+-------------------------------------------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:03.000+08:00| 101.0| |
| |2020-01-01T00:00:04.000+08:00| 102.0| |
| |2020-01-01T00:00:06.000+08:00| 104.0| |
| |2020-01-01T00:00:08.000+08:00| 106.0| |
| |2020-01-01T00:00:10.000+08:00| 108.0| |
| |2020-01-01T00:00:14.000+08:00| 112.0| |
| |2020-01-01T00:00:15.000+08:00| 113.0| |
| |2020-01-01T00:00:16.000+08:00| 114.0| |
| |2020-01-01T00:00:18.000+08:00| 116.0| |
| |2020-01-01T00:00:20.000+08:00| 118.0| |
| |2020-01-01T00:00:22.000+08:00| 120.0| |
| |2020-01-01T00:00:26.000+08:00| 124.0| |
| |2020-01-01T00:00:28.000+08:00| 126.0| |
| |2020-01-01T00:00:30.000+08:00| 128.0| |
| +-----------------------------+-------------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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 class="line-number"></div></div></div><h2 id="masterrepair" tabindex="-1"><a class="header-anchor" href="#masterrepair"><span>MasterRepair</span></a></h2><h3 id="usage-2" tabindex="-1"><a class="header-anchor" href="#usage-2"><span>Usage</span></a></h3><p>This function is used to clean time series with master data.</p><p><strong>Name</strong>: MasterRepair<br><strong>Input Series:</strong> Support multiple input series. The types are are in INT32 / INT64 / FLOAT / DOUBLE.</p><p><strong>Parameters:</strong></p><ul><li><code>omega</code>: The window size. It is a non-negative integer whose unit is millisecond. By default, it will be estimated according to the distances of two tuples with various time differences.</li><li><code>eta</code>: The distance threshold. It is a positive number. By default, it will be estimated according to the distance distribution of tuples in windows.</li><li><code>k</code>: The number of neighbors in master data. It is a positive integer. By default, it will be estimated according to the tuple dis- tance of the k-th nearest neighbor in the master data.</li><li><code>output_column</code>: The repaired column to output, defaults to 1 which means output the repair result of the first column.</li></ul><p><strong>Output Series:</strong> Output a single series. The type is the same as the input. This series is the input after repairing.</p><h3 id="examples-3" tabindex="-1"><a class="header-anchor" href="#examples-3"><span>Examples</span></a></h3><p>Input series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+------------+------------+------------+------------+------------+------------+ |
| | Time|root.test.t1|root.test.t2|root.test.t3|root.test.m1|root.test.m2|root.test.m3| |
| +-----------------------------+------------+------------+------------+------------+------------+------------+ |
| |2021-07-01T12:00:01.000+08:00| 1704| 1154.55| 0.195| 1704| 1154.55| 0.195| |
| |2021-07-01T12:00:02.000+08:00| 1702| 1152.30| 0.193| 1702| 1152.30| 0.193| |
| |2021-07-01T12:00:03.000+08:00| 1702| 1148.65| 0.192| 1702| 1148.65| 0.192| |
| |2021-07-01T12:00:04.000+08:00| 1701| 1145.20| 0.194| 1701| 1145.20| 0.194| |
| |2021-07-01T12:00:07.000+08:00| 1703| 1150.55| 0.195| 1703| 1150.55| 0.195| |
| |2021-07-01T12:00:08.000+08:00| 1694| 1151.55| 0.193| 1704| 1151.55| 0.193| |
| |2021-07-01T12:01:09.000+08:00| 1705| 1153.55| 0.194| 1705| 1153.55| 0.194| |
| |2021-07-01T12:01:10.000+08:00| 1706| 1152.30| 0.190| 1706| 1152.30| 0.190| |
| +-----------------------------+------------+------------+------------+------------+------------+------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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>SQL for query:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> MasterRepair<span class="token punctuation">(</span>t1<span class="token punctuation">,</span>t2<span class="token punctuation">,</span>t3<span class="token punctuation">,</span>m1<span class="token punctuation">,</span>m2<span class="token punctuation">,</span>m3<span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+-------------------------------------------------------------------------------------------+ |
| | Time|MasterRepair(root.test.t1,root.test.t2,root.test.t3,root.test.m1,root.test.m2,root.test.m3)| |
| +-----------------------------+-------------------------------------------------------------------------------------------+ |
| |2021-07-01T12:00:01.000+08:00| 1704| |
| |2021-07-01T12:00:02.000+08:00| 1702| |
| |2021-07-01T12:00:03.000+08:00| 1702| |
| |2021-07-01T12:00:04.000+08:00| 1701| |
| |2021-07-01T12:00:07.000+08:00| 1703| |
| |2021-07-01T12:00:08.000+08:00| 1704| |
| |2021-07-01T12:01:09.000+08:00| 1705| |
| |2021-07-01T12:01:10.000+08:00| 1706| |
| +-----------------------------+-------------------------------------------------------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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><h2 id="seasonalrepair" tabindex="-1"><a class="header-anchor" href="#seasonalrepair"><span>SeasonalRepair</span></a></h2><h3 id="usage-3" tabindex="-1"><a class="header-anchor" href="#usage-3"><span>Usage</span></a></h3><p>This function is used to repair the value of the seasonal time series via decomposition. Currently, two methods are supported: <strong>Classical</strong> - detect irregular fluctuations through residual component decomposed by classical decomposition, and repair them through moving average; <strong>Improved</strong> - detect irregular fluctuations through residual component decomposed by improved decomposition, and repair them through moving median.</p><p><strong>Name:</strong> SEASONALREPAIR</p><p><strong>Input Series:</strong> Only support a single input series. The data type is INT32 / INT64 / FLOAT / DOUBLE.</p><p><strong>Parameters:</strong></p><ul><li><code>method</code>: The decomposition method used to repair, which is 'Classical' or 'Improved'. By default, classical decomposition is used.</li><li><code>period</code>: It is the period of the time series.</li><li><code>k</code>: It is the range threshold of residual term, which limits the degree to which the residual term is off-center. By default, it is 9.</li><li><code>max_iter</code>: It is the maximum number of iterations for the algorithm. By default, it is 10.</li></ul><p><strong>Output Series:</strong> Output a single series. The type is the same as the input. This series is the input after repairing.</p><p><strong>Note:</strong> <code>NaN</code> will be filled with linear interpolation before repairing.</p><h3 id="examples-4" tabindex="-1"><a class="header-anchor" href="#examples-4"><span>Examples</span></a></h3><h4 id="repair-with-classical" tabindex="-1"><a class="header-anchor" href="#repair-with-classical"><span>Repair with Classical</span></a></h4><p>When <code>method</code> is 'Classical' or default value, classical decomposition method is used.</p><p>Input series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+---------------+ |
| | Time|root.test.d2.s1| |
| +-----------------------------+---------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:04.000+08:00| 120.0| |
| |2020-01-01T00:00:06.000+08:00| 80.0| |
| |2020-01-01T00:00:08.000+08:00| 100.5| |
| |2020-01-01T00:00:10.000+08:00| 119.5| |
| |2020-01-01T00:00:12.000+08:00| 101.0| |
| |2020-01-01T00:00:14.000+08:00| 99.5| |
| |2020-01-01T00:00:16.000+08:00| 119.0| |
| |2020-01-01T00:00:18.000+08:00| 80.5| |
| |2020-01-01T00:00:20.000+08:00| 99.0| |
| |2020-01-01T00:00:22.000+08:00| 121.0| |
| |2020-01-01T00:00:24.000+08:00| 79.5| |
| +-----------------------------+---------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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>SQL for query:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> seasonalrepair<span class="token punctuation">(</span>s1<span class="token punctuation">,</span><span class="token string">'period'</span><span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token string">'k'</span><span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+--------------------------------------------------+ |
| | Time|seasonalrepair(root.test.d2.s1, 'period'=4, 'k'=2)| |
| +-----------------------------+--------------------------------------------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:04.000+08:00| 120.0| |
| |2020-01-01T00:00:06.000+08:00| 80.0| |
| |2020-01-01T00:00:08.000+08:00| 100.5| |
| |2020-01-01T00:00:10.000+08:00| 119.5| |
| |2020-01-01T00:00:12.000+08:00| 87.0| |
| |2020-01-01T00:00:14.000+08:00| 99.5| |
| |2020-01-01T00:00:16.000+08:00| 119.0| |
| |2020-01-01T00:00:18.000+08:00| 80.5| |
| |2020-01-01T00:00:20.000+08:00| 99.0| |
| |2020-01-01T00:00:22.000+08:00| 121.0| |
| |2020-01-01T00:00:24.000+08:00| 79.5| |
| +-----------------------------+--------------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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><h4 id="repair-with-improved" tabindex="-1"><a class="header-anchor" href="#repair-with-improved"><span>Repair with Improved</span></a></h4><p>When <code>method</code> is 'Improved', improved decomposition method is used.</p><p>Input series is the same as above, the SQL for query is shown below:</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><pre class="language-sql"><code><span class="token keyword">select</span> seasonalrepair<span class="token punctuation">(</span>s1<span class="token punctuation">,</span><span class="token string">'method'</span><span class="token operator">=</span><span class="token string">'improved'</span><span class="token punctuation">,</span><span class="token string">'period'</span><span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">)</span> <span class="token keyword">from</span> root<span class="token punctuation">.</span>test<span class="token punctuation">.</span>d2 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Output series:</p><div class="language-text line-numbers-mode" data-ext="text" data-title="text"><pre class="language-text"><code>+-----------------------------+-------------------------------------------------------------+ |
| | Time|valuerepair(root.test.d2.s1, 'method'='improved', 'period'=3)| |
| +-----------------------------+-------------------------------------------------------------+ |
| |2020-01-01T00:00:02.000+08:00| 100.0| |
| |2020-01-01T00:00:04.000+08:00| 120.0| |
| |2020-01-01T00:00:06.000+08:00| 80.0| |
| |2020-01-01T00:00:08.000+08:00| 100.5| |
| |2020-01-01T00:00:10.000+08:00| 119.5| |
| |2020-01-01T00:00:12.000+08:00| 81.5| |
| |2020-01-01T00:00:14.000+08:00| 99.5| |
| |2020-01-01T00:00:16.000+08:00| 119.0| |
| |2020-01-01T00:00:18.000+08:00| 80.5| |
| |2020-01-01T00:00:20.000+08:00| 99.0| |
| |2020-01-01T00:00:22.000+08:00| 121.0| |
| |2020-01-01T00:00:24.000+08:00| 79.5| |
| +-----------------------------+-------------------------------------------------------------+ |
| </code></pre><div class="line-numbers" aria-hidden="true"><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>`,108),l=[t];function d(r,o){return s(),i("div",null,l)}const p=e(a,[["render",d],["__file","Data-Repairing.html.vue"]]),c=JSON.parse('{"path":"/UserGuide/V1.1.x/Operators-Functions/Data-Repairing.html","title":"Data Repairing","lang":"en-US","frontmatter":{"description":"Data Repairing TimestampRepair This function is used for timestamp repair. According to the given standard time interval, the method of minimizing the repair cost is adopted. By...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/V1.1.x/Operators-Functions/Data-Repairing.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/V1.1.x/Operators-Functions/Data-Repairing.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Data Repairing"}],["meta",{"property":"og:description","content":"Data Repairing TimestampRepair This function is used for timestamp repair. According to the given standard time interval, the method of minimizing the repair cost is adopted. By..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["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\\":\\"Data Repairing\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-07-10T03:11:17.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"TimestampRepair","slug":"timestamprepair","link":"#timestamprepair","children":[{"level":3,"title":"Examples","slug":"examples","link":"#examples","children":[]}]},{"level":2,"title":"ValueFill","slug":"valuefill","link":"#valuefill","children":[{"level":3,"title":"Usage","slug":"usage","link":"#usage","children":[]},{"level":3,"title":"Examples","slug":"examples-1","link":"#examples-1","children":[]}]},{"level":2,"title":"ValueRepair","slug":"valuerepair","link":"#valuerepair","children":[{"level":3,"title":"Usage","slug":"usage-1","link":"#usage-1","children":[]},{"level":3,"title":"Examples","slug":"examples-2","link":"#examples-2","children":[]}]},{"level":2,"title":"MasterRepair","slug":"masterrepair","link":"#masterrepair","children":[{"level":3,"title":"Usage","slug":"usage-2","link":"#usage-2","children":[]},{"level":3,"title":"Examples","slug":"examples-3","link":"#examples-3","children":[]}]},{"level":2,"title":"SeasonalRepair","slug":"seasonalrepair","link":"#seasonalrepair","children":[{"level":3,"title":"Usage","slug":"usage-3","link":"#usage-3","children":[]},{"level":3,"title":"Examples","slug":"examples-4","link":"#examples-4","children":[]}]}],"git":{"createdTime":1688958677000,"updatedTime":1688958677000,"contributors":[{"name":"CritasWang","email":"critas@outlook.com","commits":1}]},"readingTime":{"minutes":9.3,"words":2790},"filePathRelative":"UserGuide/V1.1.x/Operators-Functions/Data-Repairing.md","localizedDate":"July 10, 2023","autoDesc":true}');export{p as comp,c as data}; |