| import{_ as a,c as l,b as t,o as n}from"./app-BJ81rGGe.js";const e={};function o(p,s){return n(),l("div",null,s[0]||(s[0]=[t(`<h1 id="数据导入" tabindex="-1"><a class="header-anchor" href="#数据导入"><span>数据导入</span></a></h1><h2 id="_1-功能概述" tabindex="-1"><a class="header-anchor" href="#_1-功能概述"><span>1. 功能概述</span></a></h2><p>数据导出工具 <code>import-data.sh/bat</code> 位于 <code>tools</code> 目录下,可以将 CSV、SQL、及 TsFile(开源时序文件格式)的数据导入 IoTDB。具体功能如下:</p><table style="text-align:left;"><tbody><tr><th>文件格式</th><th>IoTDB工具</th><th>具体介绍</th></tr><tr><td>CSV</td><td rowspan="3">import-data.sh/bat</td><td>可用于单个或一个目录的 CSV 文件批量导入 IoTDB</td></tr><tr><td>SQL</td><td>可用于单个或一个目录的 SQL 文件批量导入 IoTDB</td></tr><tr><td>TsFile</td><td>可用于单个或一个目录的 TsFile 文件批量导入 IoTDB</td></tr></tbody></table><ul><li><strong>表模型 TsFile 导入暂时只支持本地导入。</strong></li></ul><h2 id="_2-功能详解" tabindex="-1"><a class="header-anchor" href="#_2-功能详解"><span>2. 功能详解</span></a></h2><h3 id="_2-1-公共参数" tabindex="-1"><a class="header-anchor" href="#_2-1-公共参数"><span>2.1 公共参数</span></a></h3><table><thead><tr><th>参数缩写</th><th>参数全称</th><th>参数含义</th><th>是否为必填项</th><th>默认值</th></tr></thead><tbody><tr><td>-ft</td><td>--file_type</td><td>导入文件的类型,可以选择:csv、sql、tsfile</td><td>√</td><td></td></tr><tr><td>-h</td><td>-- host</td><td>主机名</td><td>否</td><td>127.0.0.1</td></tr><tr><td>-p</td><td>--port</td><td>端口号</td><td>否</td><td>6667</td></tr><tr><td>-u</td><td>--username</td><td>用户名</td><td>否</td><td>root</td></tr><tr><td>-pw</td><td>--password</td><td>密码</td><td>否</td><td>root</td></tr><tr><td>-s</td><td>--source</td><td>待加载的脚本文件(夹)的本地目录路径<br>如果为 csv sql tsfile 这三个支持的格式,直接导入<br>不支持的格式,报错提示<code>The file name must end with "csv" or "sql"or "tsfile"!</code></td><td>√</td><td></td></tr><tr><td>-sql_dialect</td><td>--sql_dialect</td><td>选择 server 是树模型还是表模型,当前支持 tree 和 table 类型</td><td>否</td><td>tree</td></tr><tr><td>-db</td><td>--database</td><td>数据将要导入的目标库,只在 <code>-sql_dialect</code> 为 table 类型下生效。</td><td>-sql_dialect 为 table 时必填</td><td>-</td></tr><tr><td>-table</td><td>--table</td><td>数据将要导入的目标表,只在 <code>-sql_dialect</code> 为 table 类型且文件类型为 csv 条件下生效且必填。</td><td>否</td><td>-</td></tr><tr><td>-tn</td><td>--thread_num</td><td>最大并行线程数</td><td>否</td><td>8<br>范围:0~Integer.Max=2147483647</td></tr><tr><td>-tz</td><td>--timezone</td><td>时区设置,例如<code>+08:00</code>或<code>-01:00</code></td><td>否</td><td>本机系统时间</td></tr><tr><td>-help</td><td>--help</td><td>显示帮助信息,支持分开展示和全部展示<code>-help</code>或<code>-help csv</code></td><td>否</td><td></td></tr></tbody></table><h3 id="_2-2-csv-格式" tabindex="-1"><a class="header-anchor" href="#_2-2-csv-格式"><span>2.2 CSV 格式</span></a></h3><h4 id="_2-2-1-运行命令" tabindex="-1"><a class="header-anchor" href="#_2-2-1-运行命令"><span>2.2.1 运行命令</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># Unix/OS X</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft<format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">]</span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">sourc</span><span style="color:#ABB2BF;">e> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-lpf <</span><span style="color:#98C379;">lines_per_failed_fil</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-aligned <</span><span style="color:#98C379;">use</span><span style="color:#98C379;"> the</span><span style="color:#98C379;"> aligned</span><span style="color:#98C379;"> interfac</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-ti </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">type_infer</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tp </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timestamp precision (</span><span style="color:#E06C75;">ms</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">us</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">ns</span><span style="color:#ABB2BF;">)</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tz </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timezone</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-batch </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">batch_size</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">]</span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># Windows</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools</span><span style="color:#56B6C2;">\\i</span><span style="color:#ABB2BF;">mport-data.bat -ft<format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">]</span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">sourc</span><span style="color:#ABB2BF;">e> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-lpf <</span><span style="color:#98C379;">lines_per_failed_fil</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-aligned <</span><span style="color:#98C379;">use</span><span style="color:#98C379;"> the</span><span style="color:#98C379;"> aligned</span><span style="color:#98C379;"> interfac</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-ti </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">type_infer</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tp </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timestamp precision (</span><span style="color:#E06C75;">ms</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">us</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">ns</span><span style="color:#ABB2BF;">)</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tz </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timezone</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-batch </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">batch_size</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></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 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="_2-2-2-私有参数" tabindex="-1"><a class="header-anchor" href="#_2-2-2-私有参数"><span>2.2.2 私有参数</span></a></h4><table><thead><tr><th>参数缩写</th><th>参数全称</th><th>参数含义</th><th>是否为必填项</th><th>默认值</th></tr></thead><tbody><tr><td>-fd</td><td>--fail_dir</td><td>指定保存失败文件的目录</td><td>否</td><td>YOUR_CSV_FILE_PATH</td></tr><tr><td>-lpf</td><td>--lines_per_failed_file</td><td>指定失败文件最大写入数据的行数</td><td>否</td><td>100000<br>范围:0~Integer.Max=2147483647</td></tr><tr><td>-aligned</td><td>--use_aligned</td><td>是否导入为对齐序列</td><td>否</td><td>false</td></tr><tr><td>-batch</td><td>--batch_size</td><td>指定每调用一次接口处理的数据行数(最小值为1,最大值为Integer.<em>MAX_VALUE</em>)</td><td>否</td><td>100000<br>范围:0~Integer.Max=2147483647</td></tr><tr><td>-ti</td><td>--type_infer</td><td>通过选项定义类型信息,例如<code>"boolean=text,int=long, ..."</code></td><td>否</td><td>无</td></tr><tr><td>-tp</td><td>--timestamp_precision</td><td>时间戳精度</td><td>否:<br>1. ms(毫秒)<br>2. us(纳秒)<br>3. ns(微秒)</td><td>ms</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></tbody></table><h4 id="_2-2-3-运行示例" tabindex="-1"><a class="header-anchor" href="#_2-2-3-运行示例"><span>2.2.3 运行示例</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># 正确示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft csv -sql_dialect table -s ./csv/dump0_0.csv -db database1 -table table1</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># 异常示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft csv -sql_dialect table -s ./csv/dump0_1.csv -table table1</span></span> |
| <span class="line"><span style="color:#61AFEF;">Parse</span><span style="color:#98C379;"> error:</span><span style="color:#98C379;"> Missing</span><span style="color:#98C379;"> required</span><span style="color:#98C379;"> option:</span><span style="color:#98C379;"> db</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft csv -sql_dialect table -s ./csv/dump0_1.csv -db database1 -table table5</span></span> |
| <span class="line"><span style="color:#61AFEF;">There</span><span style="color:#98C379;"> are</span><span style="color:#98C379;"> no</span><span style="color:#98C379;"> tables</span><span style="color:#98C379;"> or</span><span style="color:#98C379;"> the</span><span style="color:#98C379;"> target</span><span style="color:#98C379;"> table</span><span style="color:#98C379;"> table5</span><span style="color:#98C379;"> does</span><span style="color:#98C379;"> not</span><span style="color:#98C379;"> exist</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></div><h4 id="_2-2-4-导入说明" tabindex="-1"><a class="header-anchor" href="#_2-2-4-导入说明"><span>2.2.4 导入说明</span></a></h4><ol><li>CSV 导入规范</li></ol><ul><li>特殊字符转义规则:若Text类型的字段中包含特殊字符(例如逗号<code>,</code>),需使用反斜杠(<code>\\</code>)进行转义处理。</li><li>支持的时间格式:<code>yyyy-MM-dd'T'HH:mm:ss</code>, <code>yyy-MM-dd HH:mm:ss</code>, 或者 <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code> 。</li><li>时间戳列必须作为数据文件的首列存在。</li></ul><ol start="2"><li>CSV 文件示例</li></ol><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;">time</span><span style="color:#ABB2BF;">,region,device,model,temperature,humidity</span></span> |
| <span class="line"><span style="color:#D19A66;">1970</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">01</span><span style="color:#ABB2BF;">-01T08:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">001</span><span style="color:#ABB2BF;">+</span><span style="color:#D19A66;">08</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"上海"</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"101"</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"F"</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">90</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">0</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">35</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">2</span></span> |
| <span class="line"><span style="color:#D19A66;">1970</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">01</span><span style="color:#ABB2BF;">-01T08:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">002</span><span style="color:#ABB2BF;">+</span><span style="color:#D19A66;">08</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"上海"</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"101"</span><span style="color:#ABB2BF;">,</span><span style="color:#98C379;">"F"</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">90</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">0</span><span style="color:#ABB2BF;">,</span><span style="color:#D19A66;">34</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">8</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><h3 id="_2-3-sql-格式" tabindex="-1"><a class="header-anchor" href="#_2-3-sql-格式"><span>2.3 SQL 格式</span></a></h3><h4 id="_2-3-1-运行命令" tabindex="-1"><a class="header-anchor" href="#_2-3-1-运行命令"><span>2.3.1 运行命令</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># Unix/OS X</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft<format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"><source> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-lpf <</span><span style="color:#98C379;">lines_per_failed_fil</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-tz <</span><span style="color:#98C379;">timezon</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-batch </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">batch_size</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">]</span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># Windows</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools</span><span style="color:#56B6C2;">\\i</span><span style="color:#ABB2BF;">mport-data.bat -ft<format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"><source> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-lpf <</span><span style="color:#98C379;">lines_per_failed_fil</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> [-tz <</span><span style="color:#98C379;">timezon</span><span style="color:#ABB2BF;">e></span><span style="color:#98C379;">]</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-batch </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">batch_size</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></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 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="_2-3-2-私有参数" tabindex="-1"><a class="header-anchor" href="#_2-3-2-私有参数"><span>2.3.2 私有参数</span></a></h4><table><thead><tr><th>参数缩写</th><th>参数全称</th><th>参数含义</th><th>是否为必填项</th><th>默认值</th></tr></thead><tbody><tr><td>-fd</td><td>--fail_dir</td><td>指定保存失败文件的目录</td><td>否</td><td>YOUR_CSV_FILE_PATH</td></tr><tr><td>-lpf</td><td>--lines_per_failed_file</td><td>指定失败文件最大写入数据的行数</td><td>否</td><td>100000<br>范围:0~Integer.Max=2147483647</td></tr><tr><td>-batch</td><td>--batch_size</td><td>指定每调用一次接口处理的数据行数(最小值为1,最大值为Integer.<em>MAX_VALUE</em>)</td><td>否</td><td>100000<br>范围:0~Integer.Max=2147483647</td></tr></tbody></table><h4 id="_2-3-3-运行示例" tabindex="-1"><a class="header-anchor" href="#_2-3-3-运行示例"><span>2.3.3 运行示例</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># 正确示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft sql -sql_dialect table -s ./sql/dump0_0.sql -db database1 </span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># 异常示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft sql -sql_dialect table -s ./sql/dump1_1.sql -db database1</span></span> |
| <span class="line"><span style="color:#61AFEF;">Source</span><span style="color:#98C379;"> file</span><span style="color:#98C379;"> or</span><span style="color:#98C379;"> directory</span><span style="color:#98C379;"> ./sql/dump1_1.sql</span><span style="color:#98C379;"> does</span><span style="color:#98C379;"> not</span><span style="color:#98C379;"> exist</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># 目标表存在但是元数据不适配/数据异常:生成.failed异常文件记录该条信息,日志打印错误信息如下</span></span> |
| <span class="line"><span style="color:#61AFEF;">Fail</span><span style="color:#98C379;"> to</span><span style="color:#98C379;"> insert</span><span style="color:#98C379;"> measurements</span><span style="color:#98C379;"> '[column.name]'</span><span style="color:#98C379;"> caused</span><span style="color:#98C379;"> by</span><span style="color:#ABB2BF;"> [data </span><span style="color:#98C379;">type</span><span style="color:#98C379;"> is</span><span style="color:#98C379;"> not</span><span style="color:#98C379;"> consistent,</span><span style="color:#98C379;"> input</span><span style="color:#98C379;"> '[column.value]',</span><span style="color:#98C379;"> registered</span><span style="color:#98C379;"> '[column.DataType]']</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></div><h3 id="_2-4-tsfile-格式" tabindex="-1"><a class="header-anchor" href="#_2-4-tsfile-格式"><span>2.4 TsFile 格式</span></a></h3><h4 id="_2-4-1-运行命令" tabindex="-1"><a class="header-anchor" href="#_2-4-1-运行命令"><span>2.4.1 运行命令</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># Unix/OS X</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft <format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">sourc</span><span style="color:#ABB2BF;">e> </span><span style="color:#D19A66;">-os</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">on_succes</span><span style="color:#ABB2BF;">s> [-sd <</span><span style="color:#98C379;">success_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#D19A66;"> -of</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">on_fai</span><span style="color:#ABB2BF;">l> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;"> ] [-tz </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timezone</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tp </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timestamp precision (</span><span style="color:#E06C75;">ms</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">us</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">ns</span><span style="color:#ABB2BF;">)</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">]</span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># Windows</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools</span><span style="color:#56B6C2;">\\i</span><span style="color:#ABB2BF;">mport-data.bat -ft <format> [-sql_dialect</span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">sql_dialect</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] -db<database> -table<table> </span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-h </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">host</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-p </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">port</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-u </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">username</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-pw </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">password</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] </span></span> |
| <span class="line"><span style="color:#61AFEF;"> -s</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">sourc</span><span style="color:#ABB2BF;">e> </span><span style="color:#D19A66;">-os</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">on_succes</span><span style="color:#ABB2BF;">s> [-sd <</span><span style="color:#98C379;">success_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span><span style="color:#D19A66;"> -of</span><span style="color:#ABB2BF;"> <</span><span style="color:#98C379;">on_fai</span><span style="color:#ABB2BF;">l> [-fd <</span><span style="color:#98C379;">fail_di</span><span style="color:#ABB2BF;">r></span><span style="color:#98C379;">]</span></span> |
| <span class="line"><span style="color:#ABB2BF;"> [-tn </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">thread_num</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;"> ] [-tz </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timezone</span><span style="color:#56B6C2;">></span><span style="color:#ABB2BF;">] [-tp </span><span style="color:#56B6C2;"><</span><span style="color:#ABB2BF;">timestamp precision (</span><span style="color:#E06C75;">ms</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">us</span><span style="color:#56B6C2;">/</span><span style="color:#E06C75;">ns</span><span style="color:#ABB2BF;">)</span><span style="color:#56B6C2;">></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 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="_2-4-2-私有参数" tabindex="-1"><a class="header-anchor" href="#_2-4-2-私有参数"><span>2.4.2 私有参数</span></a></h4><table><thead><tr><th>参数缩写</th><th>参数全称</th><th>参数含义</th><th>是否为必填项</th><th>默认值</th></tr></thead><tbody><tr><td>-os</td><td>--on_succcess</td><td>1. none:不删除 <br> 2. mv:移动成功的文件到目标文件夹 <br>3. cp:硬连接(拷贝)成功的文件到目标文件夹 <br>4. delete:删除</td><td>√</td><td></td></tr><tr><td>-sd</td><td>--success_dir</td><td>当<code>--on_succcess</code>为 mv 或 cp 时,mv 或 cp 的目标文件夹。文件的文件名变为文件夹打平后拼接原有文件名</td><td>当<code>--on_succcess</code>为mv或cp时需要填写</td><td><code>\${EXEC_DIR}/success</code></td></tr><tr><td>-of</td><td>--on_fail</td><td>1. none:跳过 <br>2. mv:移动失败的文件到目标文件夹 <br>3. cp:硬连接(拷贝)失败的文件到目标文件夹 <br>4. delete:删除</td><td>√</td><td></td></tr><tr><td>-fd</td><td>--fail_dir</td><td>当<code>--on_fail</code>指定为 mv 或 cp 时,mv 或 cp 的目标文件夹。文件的文件名变为文件夹打平后拼接原有文件名</td><td>当<code>--on_fail</code>指定为 mv 或 cp 时需要填写</td><td><code>\${EXEC_DIR}/fail</code></td></tr><tr><td>-tp</td><td>--timestamp_precision</td><td>时间戳精度<br>tsfile 非远程导入:-tp 指定 tsfile 文件的时间精度 手动校验和服务器的时间戳是否一致 不一致返回报错信息 <br>远程导入:-tp 指定 tsfile 文件的时间精度 pipe 自动校验时间戳精度是否一致 不一致返回 pipe 报错信息</td><td>否:<br>1. ms(毫秒)<br>2. us(纳秒)<br>3. ns(微秒)</td><td>ms</td></tr></tbody></table><h4 id="_2-4-3-运行示例" tabindex="-1"><a class="header-anchor" href="#_2-4-3-运行示例"><span>2.4.3 运行示例</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># 正确示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft tsfile -sql_dialect table -s ./tsfile -db database1 -os none -of none</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;"># 异常示例</span></span> |
| <span class="line"><span style="color:#ABB2BF;">> tools/import-data.sh -ft tsfile -sql_dialect table -s ./tsfile -db database1 </span></span> |
| <span class="line"><span style="color:#61AFEF;">Parse</span><span style="color:#98C379;"> error:</span><span style="color:#98C379;"> Missing</span><span style="color:#98C379;"> required</span><span style="color:#98C379;"> options:</span><span style="color:#98C379;"> os,</span><span style="color:#98C379;"> of</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></div>`,34)]))}const c=a(e,[["render",o],["__file","Data-Import-Tool.html.vue"]]),d=JSON.parse('{"path":"/zh/UserGuide/latest-Table/Tools-System/Data-Import-Tool.html","title":"数据导入","lang":"zh-CN","frontmatter":{"description":"数据导入 1. 功能概述 数据导出工具 import-data.sh/bat 位于 tools 目录下,可以将 CSV、SQL、及 TsFile(开源时序文件格式)的数据导入 IoTDB。具体功能如下: 表模型 TsFile 导入暂时只支持本地导入。 2. 功能详解 2.1 公共参数 2.2 CSV 格式 2.2.1 运行命令 2.2.2 私有参数 2...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/latest-Table/Tools-System/Data-Import-Tool.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/latest-Table/Tools-System/Data-Import-Tool.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"数据导入"}],["meta",{"property":"og:description","content":"数据导入 1. 功能概述 数据导出工具 import-data.sh/bat 位于 tools 目录下,可以将 CSV、SQL、及 TsFile(开源时序文件格式)的数据导入 IoTDB。具体功能如下: 表模型 TsFile 导入暂时只支持本地导入。 2. 功能详解 2.1 公共参数 2.2 CSV 格式 2.2.1 运行命令 2.2.2 私有参数 2..."}],["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":"2025-04-03T09:29:59.000Z"}],["meta",{"property":"article:modified_time","content":"2025-04-03T09:29:59.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"数据导入\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-04-03T09:29:59.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. 功能概述","slug":"_1-功能概述","link":"#_1-功能概述","children":[]},{"level":2,"title":"2. 功能详解","slug":"_2-功能详解","link":"#_2-功能详解","children":[{"level":3,"title":"2.1 公共参数","slug":"_2-1-公共参数","link":"#_2-1-公共参数","children":[]},{"level":3,"title":"2.2 CSV 格式","slug":"_2-2-csv-格式","link":"#_2-2-csv-格式","children":[]},{"level":3,"title":"2.3 SQL 格式","slug":"_2-3-sql-格式","link":"#_2-3-sql-格式","children":[]},{"level":3,"title":"2.4 TsFile 格式","slug":"_2-4-tsfile-格式","link":"#_2-4-tsfile-格式","children":[]}]}],"git":{"createdTime":1743672599000,"updatedTime":1743672599000,"contributors":[{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":1,"url":"https://github.com/leto-b"}]},"readingTime":{"minutes":5.61,"words":1684},"filePathRelative":"zh/UserGuide/latest-Table/Tools-System/Data-Import-Tool.md","localizedDate":"2025年4月3日","autoDesc":true}');export{c as comp,d as data}; |