| import{_ as i,C as l,O as o,P as p,ah as r,Q as e,U as a,ai as t,aW as s}from"./framework-62ad666a.js";const c={},d=s(`<h2 id="sql-命令行终端-cli" tabindex="-1"><a class="header-anchor" href="#sql-命令行终端-cli" aria-hidden="true">#</a> SQL 命令行终端 (CLI)</h2><p>IOTDB 为用户提供 cli/Shell 工具用于启动客户端和服务端程序。下面介绍每个 cli/Shell 工具的运行方式和相关参数。</p><blockquote><p>$IOTDB_HOME 表示 IoTDB 的安装目录所在路径。</p></blockquote><h3 id="安装" tabindex="-1"><a class="header-anchor" href="#安装" aria-hidden="true">#</a> 安装</h3><p>在 iotdb 的根目录下执行</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code><span class="token operator">></span> mvn clean package <span class="token parameter variable">-pl</span> cli <span class="token parameter variable">-am</span> <span class="token parameter variable">-DskipTests</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>在生成完毕之后,IoTDB 的 cli 工具位于文件夹"cli/target/iotdb-cli-{project.version}"中。</p><h3 id="运行" tabindex="-1"><a class="header-anchor" href="#运行" aria-hidden="true">#</a> 运行</h3><h4 id="cli-运行方式" tabindex="-1"><a class="header-anchor" href="#cli-运行方式" aria-hidden="true">#</a> Cli 运行方式</h4><p>安装后的 IoTDB 中有一个默认用户:<code>root</code>,默认密码为<code>root</code>。用户可以使用该用户尝试运行 IoTDB 客户端以测试服务器是否正常启动。客户端启动脚本为$IOTDB_HOME/sbin 文件夹下的<code>start-cli</code>脚本。启动脚本时需要指定运行 IP 和 RPC PORT。以下为服务器在本机启动,且用户未更改运行端口号的示例,默认端口为 6667。若用户尝试连接远程服务器或更改了服务器运行的端口号,请在-h 和-p 项处使用服务器的 IP 和 RPC PORT。<br> 用户也可以在启动脚本的最前方设置自己的环境变量,如 JAVA_HOME 等 (对于 linux 用户,脚本路径为:"/sbin/start-cli.sh"; 对于 windows 用户,脚本路径为:"/sbin/start-cli.bat")</p><p>Linux 系统与 MacOS 系统启动命令如下:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token number">127.0</span>.0.1 <span class="token parameter variable">-p</span> <span class="token number">6667</span> <span class="token parameter variable">-u</span> root <span class="token parameter variable">-pw</span> root |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Windows 系统启动命令如下:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin<span class="token punctuation">\\</span>start-cli.bat <span class="token parameter variable">-h</span> <span class="token number">127.0</span>.0.1 <span class="token parameter variable">-p</span> <span class="token number">6667</span> <span class="token parameter variable">-u</span> root <span class="token parameter variable">-pw</span> root |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>回车后即可成功启动客户端。启动后出现如图提示即为启动成功。</p><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code> _____ _________ ______ ______ |
| |_ _| | _ _ ||_ _ \`.|_ _ \\ |
| | | .--.|_/ | | \\_| | | \`. \\ | |_) | |
| | | / .'\`\\ \\ | | | | | | | __'. |
| _| |_| \\__. | _| |_ _| |_.' /_| |__) | |
| |_____|'.__.' |_____| |______.'|_______/ version <version> |
| |
| IoTDB> login successfully |
| </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></div><p>输入<code>quit</code>或<code>exit</code>可退出 cli 结束本次会话,cli 输出<code>quit normally</code>表示退出成功。</p><h4 id="cli-运行参数" tabindex="-1"><a class="header-anchor" href="#cli-运行参数" aria-hidden="true">#</a> Cli 运行参数</h4><table><thead><tr><th style="text-align:left;">参数名</th><th style="text-align:left;">参数类型</th><th style="text-align:left;">是否为必需参数</th><th style="text-align:left;">说明</th><th style="text-align:left;">例子</th></tr></thead><tbody><tr><td style="text-align:left;">-disableISO8601</td><td style="text-align:left;">没有参数</td><td style="text-align:left;">否</td><td style="text-align:left;">如果设置了这个参数,IoTDB 将以数字的形式打印时间戳 (timestamp)。</td><td style="text-align:left;">-disableISO8601</td></tr><tr><td style="text-align:left;">-h <<code>host</code>></td><td style="text-align:left;">string 类型,不需要引号</td><td style="text-align:left;">是</td><td style="text-align:left;">IoTDB 客户端连接 IoTDB 服务器的 IP 地址。</td><td style="text-align:left;">-h 10.129.187.21</td></tr><tr><td style="text-align:left;">-help</td><td style="text-align:left;">没有参数</td><td style="text-align:left;">否</td><td style="text-align:left;">打印 IoTDB 的帮助信息</td><td style="text-align:left;">-help</td></tr><tr><td style="text-align:left;">-p <<code>rpcPort</code>></td><td style="text-align:left;">int 类型</td><td style="text-align:left;">是</td><td style="text-align:left;">IoTDB 连接服务器的端口号,IoTDB 默认运行在 6667 端口。</td><td style="text-align:left;">-p 6667</td></tr><tr><td style="text-align:left;">-pw <<code>password</code>></td><td style="text-align:left;">string 类型,不需要引号</td><td style="text-align:left;">否</td><td style="text-align:left;">IoTDB 连接服务器所使用的密码。如果没有输入密码 IoTDB 会在 Cli 端提示输入密码。</td><td style="text-align:left;">-pw root</td></tr><tr><td style="text-align:left;">-u <<code>username</code>></td><td style="text-align:left;">string 类型,不需要引号</td><td style="text-align:left;">是</td><td style="text-align:left;">IoTDB 连接服务器锁使用的用户名。</td><td style="text-align:left;">-u root</td></tr><tr><td style="text-align:left;">-maxPRC <<code>maxPrintRowCount</code>></td><td style="text-align:left;">int 类型</td><td style="text-align:left;">否</td><td style="text-align:left;">设置 IoTDB 返回客户端命令行中所显示的最大行数。</td><td style="text-align:left;">-maxPRC 10</td></tr><tr><td style="text-align:left;">-e <<code>execute</code>></td><td style="text-align:left;">string 类型</td><td style="text-align:left;">否</td><td style="text-align:left;">在不进入客户端输入模式的情况下,批量操作 IoTDB</td><td style="text-align:left;">-e "show storage group"</td></tr><tr><td style="text-align:left;">-c</td><td style="text-align:left;">空</td><td style="text-align:left;">否</td><td style="text-align:left;">如果服务器设置了 <code>rpc_thrift_compression_enable=true</code>, 则 CLI 必须使用 <code>-c</code></td><td style="text-align:left;">-c</td></tr></tbody></table><p>下面展示一条客户端命令,功能是连接 IP 为 10.129.187.21 的主机,端口为 6667 ,用户名为 root,密码为 root,以数字的形式打印时间戳,IoTDB 命令行显示的最大行数为 10。</p><p>Linux 系统与 MacOS 系统启动命令如下:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token number">10.129</span>.187.21 <span class="token parameter variable">-p</span> <span class="token number">6667</span> <span class="token parameter variable">-u</span> root <span class="token parameter variable">-pw</span> root <span class="token parameter variable">-disableISO8601</span> <span class="token parameter variable">-maxPRC</span> <span class="token number">10</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Windows 系统启动命令如下:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin<span class="token punctuation">\\</span>start-cli.bat <span class="token parameter variable">-h</span> <span class="token number">10.129</span>.187.21 <span class="token parameter variable">-p</span> <span class="token number">6667</span> <span class="token parameter variable">-u</span> root <span class="token parameter variable">-pw</span> root <span class="token parameter variable">-disableISO8601</span> <span class="token parameter variable">-maxPRC</span> <span class="token number">10</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h4 id="使用-openid-作为用户名认证登录" tabindex="-1"><a class="header-anchor" href="#使用-openid-作为用户名认证登录" aria-hidden="true">#</a> 使用 OpenID 作为用户名认证登录</h4><p>OpenID Connect (OIDC) 使用 keycloack 作为 OIDC 服务权限认证服务。</p><h5 id="配置" tabindex="-1"><a class="header-anchor" href="#配置" aria-hidden="true">#</a> 配置</h5><p>配置位于 iotdb-engines.properties,设定 authorizer_provider_class 为 org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer 则开启了 openID 服务,默认情况下值为 org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer 表示没有开启 openID 服务。</p><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>authorizer_provider_class=org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,29),u={realmsName:""},m={href:"http://ip",target:"_blank",rel:"noopener noreferrer"},b=s(`<div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>openID_url=http://127.0.0.1:8080/auth/realms/iotdb/ |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h4 id="keycloack-配置" tabindex="-1"><a class="header-anchor" href="#keycloack-配置" aria-hidden="true">#</a> keycloack 配置</h4><p>1、下载 keycloack 程序,在 keycloack/bin 中启动 keycloack</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span>cd bin |
| Shell <span class="token operator">></span>./standalone.sh |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div>`,4),v={href:"https://ip",target:"_blank",rel:"noopener noreferrer"},g=s(`<figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/login_keycloak.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>3、点击 Administration Console 进入管理端</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/AdministrationConsole.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>4、在左侧的 Master 菜单点击 add Realm, 输入 Name 创建一个新的 Realm</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_Realm_1.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_Realm_2.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>5、点击左侧菜单 Clients,创建 client</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/client.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>6、点击左侧菜单 User,创建 user</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/user.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>7、点击新创建的用户 id,点击 Credentials 导航输入密码和关闭 Temporary 选项,至此 keyclork 配置完成</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/pwd.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>8、创建角色,点击左侧菜单的 Roles然后点击Add Role 按钮添加角色</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_role1.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>9、在Role Name 中输入<code>iotdb_admin</code>,点击save 按钮。提示:这里的<code>iotdb_admin</code>不能为其他名称否则即使登陆成功后也将无权限使用iotdb的查询、插入、创建存储组、添加用户、角色等功能</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_role2.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>10、点击左侧的User 菜单然后点击用户列表中的Edit的按钮为该用户添加我们刚创建的<code>iotdb_admin</code>角色</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_role3.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>11、选择Role Mappings ,在Available Role选择<code>iotdb_admin</code>角色然后点Add selected 按钮添加角色</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_role4.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>12、如果<code>iotdb_admin</code>角色在Assigned Roles中并且出现<code>Success Role mappings updated</code>提示,证明角色添加成功</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/CLI/Command-Line-Interface/add_role5.png?raw=true" alt="avatar" tabindex="0" loading="lazy"><figcaption>avatar</figcaption></figure><p>提示:如果用户角色有调整需要重新生成token并且重新登陆iotdb才会生效</p><p>以上步骤提供了一种 keycloak 登陆 iotdb 方式,更多方式请参考 keycloak 配置</p><p>若对应的 IoTDB 服务器开启了使用 OpenID Connect (OIDC) 作为权限认证服务,那么就不再需要使用用户名密码进行登录。 替而代之的是使用 Token,以及空密码。 此时,登录命令如下:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token number">10.129</span>.187.21 <span class="token parameter variable">-p</span> <span class="token number">6667</span> <span class="token parameter variable">-u</span> <span class="token punctuation">{</span>my-access-token<span class="token punctuation">}</span> <span class="token parameter variable">-pw</span> <span class="token string">""</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>其中,需要将{my-access-token} (注意,包括{})替换成你的 token,即 access_token 对应的值。</p><p>如何获取 token 取决于你的 OIDC 设置。 最简单的一种情况是使用<code>password-grant</code>。例如,假设你在用 keycloack 作为你的 OIDC 服务, 并且你在 keycloack 中有一个被定义成 public 的<code>iotdb</code>客户的 realm,那么你可以使用如下<code>curl</code>命令获得 token。 (注意例子中的{}和里面的内容需要替换成具体的服务器地址和 realm 名字):</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code><span class="token function">curl</span> <span class="token parameter variable">-X</span> POST <span class="token string">"http://{your-keycloack-server}/auth/realms/{your-realm}/protocol/openid-connect/token"</span> <span class="token punctuation">\\</span> <span class="token parameter variable">-H</span> <span class="token string">"Content-Type: application/x-www-form-urlencoded"</span> <span class="token punctuation">\\</span> |
| <span class="token parameter variable">-d</span> <span class="token string">"username={username}"</span> <span class="token punctuation">\\</span> |
| <span class="token parameter variable">-d</span> <span class="token string">"password={password}"</span> <span class="token punctuation">\\</span> |
| <span class="token parameter variable">-d</span> <span class="token string">'grant_type=password'</span> <span class="token punctuation">\\</span> |
| <span class="token parameter variable">-d</span> <span class="token string">"client_id=iotdb-client"</span> |
| </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></div><p>示例结果如下:</p><div class="language-json line-numbers-mode" data-ext="json"><pre class="language-json"><code><span class="token punctuation">{</span><span class="token property">"access_token"</span><span class="token operator">:</span><span class="token string">"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJxMS1XbTBvelE1TzBtUUg4LVNKYXAyWmNONE1tdWNXd25RV0tZeFpKNG93In0.eyJleHAiOjE1OTAzOTgwNzEsImlhdCI6MTU5MDM5Nzc3MSwianRpIjoiNjA0ZmYxMDctN2NiNy00NTRmLWIwYmQtY2M2ZDQwMjFiNGU4IiwiaXNzIjoiaHR0cDovL2F1dGguZGVtby5wcmFnbWF0aWNpbmR1c3RyaWVzLmRlL2F1dGgvcmVhbG1zL0lvVERCIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImJhMzJlNDcxLWM3NzItNGIzMy04ZGE2LTZmZThhY2RhMDA3MyIsInR5cCI6IkJlYXJlciIsImF6cCI6ImlvdGRiIiwic2Vzc2lvbl9zdGF0ZSI6IjA2MGQyODYyLTE0ZWQtNDJmZS1iYWY3LThkMWY3ODQ2NTdmMSIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsibG9jYWxob3N0OjgwODAiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iLCJpb3RkYl9hZG1pbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ1c2VyIn0.nwbrJkWdCNjzFrTDwKNuV5h9dDMg5ytRKGOXmFIajpfsbOutJytjWTCB2WpA8E1YI3KM6gU6Jx7cd7u0oPo5syHhfCz119n_wBiDnyTZkFOAPsx0M2z20kvBLN9k36_VfuCMFUeddJjO31MeLTmxB0UKg2VkxdczmzMH3pnalhxqpnWWk3GnrRrhAf2sZog0foH4Ae3Ks0lYtYzaWK_Yo7E4Px42-gJpohy3JevOC44aJ4auzJR1RBj9LUbgcRinkBy0JLi6XXiYznSC2V485CSBHW3sseXn7pSXQADhnmGQrLfFGO5ZljmPO18eFJaimdjvgSChsrlSEmTDDsoo5Q"</span><span class="token punctuation">,</span><span class="token property">"expires_in"</span><span class="token operator">:</span><span class="token number">300</span><span class="token punctuation">,</span><span class="token property">"refresh_expires_in"</span><span class="token operator">:</span><span class="token number">1800</span><span class="token punctuation">,</span><span class="token property">"refresh_token"</span><span class="token operator">:</span><span class="token string">"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhMzZlMGU0NC02MWNmLTQ5NmMtOGRlZi03NTkwNjQ5MzQzMjEifQ.eyJleHAiOjE1OTAzOTk1NzEsImlhdCI6MTU5MDM5Nzc3MSwianRpIjoiNmMxNTBiY2EtYmE5NC00NTgxLWEwODEtYjI2YzhhMmI5YmZmIiwiaXNzIjoiaHR0cDovL2F1dGguZGVtby5wcmFnbWF0aWNpbmR1c3RyaWVzLmRlL2F1dGgvcmVhbG1zL0lvVERCIiwiYXVkIjoiaHR0cDovL2F1dGguZGVtby5wcmFnbWF0aWNpbmR1c3RyaWVzLmRlL2F1dGgvcmVhbG1zL0lvVERCIiwic3ViIjoiYmEzMmU0NzEtYzc3Mi00YjMzLThkYTYtNmZlOGFjZGEwMDczIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6ImlvdGRiIiwic2Vzc2lvbl9zdGF0ZSI6IjA2MGQyODYyLTE0ZWQtNDJmZS1iYWY3LThkMWY3ODQ2NTdmMSIsInNjb3BlIjoiZW1haWwgcHJvZmlsZSJ9.ayNpXdNX28qahodX1zowrMGiUCw2AodlHBQFqr8Ui7c"</span><span class="token punctuation">,</span><span class="token property">"token_type"</span><span class="token operator">:</span><span class="token string">"bearer"</span><span class="token punctuation">,</span><span class="token property">"not-before-policy"</span><span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token property">"session_state"</span><span class="token operator">:</span><span class="token string">"060d2862-14ed-42fe-baf7-8d1f784657f1"</span><span class="token punctuation">,</span><span class="token property">"scope"</span><span class="token operator">:</span><span class="token string">"email profile"</span><span class="token punctuation">}</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="cli-的批量操作" tabindex="-1"><a class="header-anchor" href="#cli-的批量操作" aria-hidden="true">#</a> Cli 的批量操作</h3><p>当您想要通过脚本的方式通过 Cli / Shell 对 IoTDB 进行批量操作时,可以使用-e 参数。通过使用该参数,您可以在不进入客户端输入模式的情况下操作 IoTDB。</p><p>为了避免 SQL 语句和其他参数混淆,现在只支持-e 参数作为最后的参数使用。</p><p>针对 cli/Shell 工具的-e 参数用法如下:</p><p>Linux 系统与 MacOS 指令:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token punctuation">{</span>host<span class="token punctuation">}</span> <span class="token parameter variable">-p</span> <span class="token punctuation">{</span>rpcPort<span class="token punctuation">}</span> <span class="token parameter variable">-u</span> <span class="token punctuation">{</span>user<span class="token punctuation">}</span> <span class="token parameter variable">-pw</span> <span class="token punctuation">{</span>password<span class="token punctuation">}</span> <span class="token parameter variable">-e</span> <span class="token punctuation">{</span>sql <span class="token keyword">for</span> iotdb<span class="token punctuation">}</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Windows 系统指令</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>Shell <span class="token operator">></span> sbin<span class="token punctuation">\\</span>start-cli.bat <span class="token parameter variable">-h</span> <span class="token punctuation">{</span>host<span class="token punctuation">}</span> <span class="token parameter variable">-p</span> <span class="token punctuation">{</span>rpcPort<span class="token punctuation">}</span> <span class="token parameter variable">-u</span> <span class="token punctuation">{</span>user<span class="token punctuation">}</span> <span class="token parameter variable">-pw</span> <span class="token punctuation">{</span>password<span class="token punctuation">}</span> <span class="token parameter variable">-e</span> <span class="token punctuation">{</span>sql <span class="token keyword">for</span> iotdb<span class="token punctuation">}</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>在 Windows 环境下,-e 参数的 SQL 语句需要使用<code>\`\`</code>对于<code>" "</code>进行替换</p><p>为了更好的解释-e 参数的使用,可以参考下面在 Linux 上执行的例子。</p><p>假设用户希望对一个新启动的 IoTDB 进行如下操作:</p><ol><li><p>创建名为 root.demo 的存储组</p></li><li><p>创建名为 root.demo.s1 的时间序列</p></li><li><p>向创建的时间序列中插入三个数据点</p></li><li><p>查询验证数据是否插入成功</p></li></ol><p>那么通过使用 cli/Shell 工具的 -e 参数,可以采用如下的脚本:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code><span class="token comment"># !/bin/bash</span> |
| |
| <span class="token assign-left variable">host</span><span class="token operator">=</span><span class="token number">127.0</span>.0.1 |
| <span class="token assign-left variable">rpcPort</span><span class="token operator">=</span><span class="token number">6667</span> |
| <span class="token assign-left variable">user</span><span class="token operator">=</span>root |
| <span class="token assign-left variable">pass</span><span class="token operator">=</span>root |
| |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"set storage group to root.demo"</span> |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"create timeseries root.demo.s1 WITH DATATYPE=INT32, ENCODING=RLE"</span> |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"insert into root.demo(timestamp,s1) values(1,10)"</span> |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"insert into root.demo(timestamp,s1) values(2,11)"</span> |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"insert into root.demo(timestamp,s1) values(3,12)"</span> |
| ./sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token variable">\${host}</span> <span class="token parameter variable">-p</span> <span class="token variable">\${rpcPort}</span> <span class="token parameter variable">-u</span> <span class="token variable">\${user}</span> <span class="token parameter variable">-pw</span> <span class="token variable">\${pass}</span> <span class="token parameter variable">-e</span> <span class="token string">"select s1 from root.demo"</span> |
| </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></div><p>打印出来的结果显示如下,通过这种方式进行的操作与客户端的输入模式以及通过 JDBC 进行操作结果是一致的。</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code> Shell <span class="token operator">></span> ./shell.sh |
| +-----------------------------+------------+ |
| <span class="token operator">|</span> Time<span class="token operator">|</span>root.demo.s1<span class="token operator">|</span> |
| +-----------------------------+------------+ |
| <span class="token operator">|</span><span class="token number">1970</span>-01-01T08:00:00.001+08:00<span class="token operator">|</span> <span class="token number">10</span><span class="token operator">|</span> |
| <span class="token operator">|</span><span class="token number">1970</span>-01-01T08:00:00.002+08:00<span class="token operator">|</span> <span class="token number">11</span><span class="token operator">|</span> |
| <span class="token operator">|</span><span class="token number">1970</span>-01-01T08:00:00.003+08:00<span class="token operator">|</span> <span class="token number">12</span><span class="token operator">|</span> |
| +-----------------------------+------------+ |
| Total line number <span class="token operator">=</span> <span class="token number">3</span> |
| It costs <span class="token number">0</span>.267s |
| </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></div><p>需要特别注意的是,在脚本中使用 -e 参数时要对特殊字符进行转义。</p>`,48);function k(h,I){const n=l("ExternalLinkIcon");return o(),p("div",null,[r(` |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| `),d,e("p",u,[a("如果开启了 openID 服务则 openID_url 为必填项,openID_url 值为 "),e("a",m,[a("http://ip"),t(n)]),a(":port/auth/realms/")]),b,e("p",null,[a("2、使用 "),e("a",v,[a("https://ip"),t(n)]),a(":port/auth 登陆 keycloack, 首次登陆需要创建用户")]),g])}const _=i(c,[["render",k],["__file","Command-Line-Interface.html.vue"]]);export{_ as default}; |