快速上手(單機版)
快速上手(單機版)
本文將介紹關于 IoTDB 使用的基本流程,如果需要更多信息,請瀏覽我們官網的 指引.
安裝環境
安裝前需要保證設備上配有 JDK>=1.8 的運行環境,并配置好 JAVA_HOME 環境變量。
設置最大文件打開數為 65535。
安裝步驟
IoTDB 支持多種安裝途徑。用戶可以使用三種方式對 IoTDB 進行安裝——下載二進制可運行程序、使用源碼、使用 docker 鏡像。
使用源碼:您可以從代碼倉庫下載源碼并編譯,具體編譯方法見下方。
二進制可運行程序:請從 下載 頁面下載最新的安裝包,解壓后即完成安裝。
使用 Docker 鏡像:dockerfile 文件位于github
軟件目錄結構
- sbin 啟動和停止腳本目錄
- conf 配置文件目錄
- tools 系統工具目錄
- lib 依賴包目錄
IoTDB 試用
用戶可以根據以下操作對 IoTDB 進行簡單的試用,若以下操作均無誤,則說明 IoTDB 安裝成功。
啟動 IoTDB
IoTDB 是一個基于分布式系統的數據庫。要啟動 IoTDB ,你可以先啟動單機版(一個 ConfigNode 和一個 DataNode)來檢查安裝。
用戶可以使用 sbin 文件夾下的 start-standalone 腳本啟動 IoTDB。
Linux 系統與 MacOS 系統啟動命令如下:
> bash sbin/start-standalone.shWindows 系統啟動命令如下:
> sbin\start-standalone.bat注意:目前,要使用單機模式,你需要保證所有的地址設置為 127.0.0.1,如果需要從非 IoTDB 所在的機器訪問此IoTDB,請將配置項 dn_rpc_address 修改為 IoTDB 所在的機器 IP。副本數設置為1。這些現在都是默認配置。
使用 Cli 工具
IoTDB 為用戶提供多種與服務器交互的方式,在此我們介紹使用 Cli 工具進行寫入、查詢數據的基本步驟。
初始安裝后的 IoTDB 中有一個默認用戶:root,默認密碼為 root。用戶可以使用該用戶運行 Cli 工具操作 IoTDB。Cli 工具啟動腳本為 sbin 文件夾下的 start-cli 腳本。啟動腳本時需要指定運行 ip、port、username 和 password。若腳本未給定對應參數,則默認參數為"-h 127.0.0.1 -p 6667 -u root -pw -root"
以下啟動語句為服務器在本機運行,且用戶未更改運行端口號的示例。
Linux 系統與 MacOS 系統啟動命令如下:
> bash sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw rootWindows 系統啟動命令如下:
> sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root啟動后出現如圖提示即為啟動成功。
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | / .'`\ \ | | | | | | | __'.
_| |_| \__. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
Successfully login at 127.0.0.1:6667
IoTDB>IoTDB 的基本操作
在這里,我們首先介紹一下使用 Cli 工具創建時間序列、插入數據并查看數據的方法。
數據在 IoTDB 中的組織形式是以時間序列為單位,每一個時間序列中有若干個數據-時間點對,每一個時間序列屬于一個 database。在定義時間序列之前,要首先使用 CREATE DATABASE 語句創建數據庫。SQL 語句如下:
IoTDB> CREATE DATABASE root.ln我們可以使用 SHOW DATABASES 語句來查看系統當前所有的 database,SQL 語句如下:
IoTDB> SHOW DATABASES執行結果為:
+-------------+
| database|
+-------------+
| root.ln|
+-------------+
Total line number = 1Database 設定后,使用 CREATE TIMESERIES 語句可以創建新的時間序列,創建時間序列時需要定義數據的類型和編碼方式。此處我們創建兩個時間序列,SQL 語句如下:
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE為了查看指定的時間序列,我們可以使用 SHOW TIMESERIES <Path>語句,其中、<Path>表示時間序列對應的路徑,默認值為空,表示查看系統中所有的時間序列。下面是兩個例子:
使用 SHOW TIMESERIES 語句查看系統中存在的所有時間序列,SQL 語句如下:
IoTDB> SHOW TIMESERIES執行結果為:
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias| database|dataType|encoding|compression|tags|attributes|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.temperature| null| root.ln| FLOAT| RLE| SNAPPY|null| null|
| root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 2查看具體的時間序列 root.ln.wf01.wt01.status 的 SQL 語句如下:
IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status執行結果為:
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias| database|dataType|encoding|compression|tags|attributes|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 1接下來,我們使用 INSERT 語句向 root.ln.wf01.wt01.status 時間序列中插入數據,在插入數據時需要首先指定時間戳和路徑后綴名稱:
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);我們也可以向多個時間序列中同時插入數據,這些時間序列同屬于一個時間戳:
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)最后,我們查詢之前插入的數據。使用 SELECT 語句我們可以查詢指定的時間序列的數據結果,SQL 語句如下:
IoTDB> SELECT status FROM root.ln.wf01.wt01查詢結果如下:
+-----------------------+------------------------+
| Time|root.ln.wf01.wt01.status|
+-----------------------+------------------------+
|1970-01-01T08:00:00.100| true|
|1970-01-01T08:00:00.200| false|
+-----------------------+------------------------+
Total line number = 2我們也可以查詢多個時間序列的數據結果,SQL 語句如下:
IoTDB> SELECT * FROM root.ln.wf01.wt01查詢結果如下:
+-----------------------+--------------------------+-----------------------------+
| Time| root.ln.wf01.wt01.status|root.ln.wf01.wt01.temperature|
+-----------------------+--------------------------+-----------------------------+
|1970-01-01T08:00:00.100| true| null|
|1970-01-01T08:00:00.200| false| 20.71|
+-----------------------+--------------------------+-----------------------------+
Total line number = 2輸入 quit 或 exit 可退出 Cli 結束本次會話。
IoTDB> quit或
IoTDB> exit想要瀏覽更多 IoTDB 數據庫支持的命令,請瀏覽 SQL Reference。
停止 IoTDB
用戶可以使用$IOTDB_HOME/sbin 文件夾下的 stop-standalone 腳本停止 IoTDB。
Linux 系統與 MacOS 系統停止命令如下:
> sudo bash sbin/stop-standalone.shWindows 系統停止命令如下:
> sbin\stop-standalone.bat注意:在 Linux 下,執行停止腳本時,請盡量加上 sudo 語句,不然停止可能會失敗。更多的解釋在分布式/分布式部署中。
IoTDB 的權限管理
初始安裝后的 IoTDB 中有一個默認用戶:root,默認密碼為 root。該用戶為管理員用戶,固定擁有所有權限,無法被賦予、撤銷權限,也無法被刪除。
您可以通過以下命令修改其密碼:
ALTER USER <username> SET PASSWORD <password>;
Example: IoTDB > ALTER USER root SET PASSWORD 'newpwd';權限管理的具體內容可以參考:權限管理
基礎配置
配置文件在"conf"文件夾下,包括:
- 環境配置模塊 (
datanode-env.bat,datanode-env.sh), - 系統配置模塊 (
iotdb-datanode.properties) - 日志配置模塊 (
logback.xml).