无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

通過 Docker 快速體驗 TDengine

雖然并不推(tui)薦在(zai)生產環境(jing)(jing)中通(tong)過 Docker 來部署 TDengine 服務(wu),但 Docker 工具(ju)能(neng)夠(gou)很(hen)好地屏蔽底層(ceng)操作(zuo)系(xi)統的環境(jing)(jing)差異,很(hen)適合在(zai)開發測試(shi)或初次體(ti)驗時用(yong)于安裝運行(xing)(xing) TDengine 的工具(ju)集。特別是(shi),借助 Docker,能(neng)夠(gou)比較方便地在(zai) macOS 和 Windows 系(xi)統上嘗試(shi) TDengine,而(er)無需安裝虛(xu)擬機或額外(wai)租用(yong) Linux 服務(wu)器。另外(wai),從2.0.14.0版(ban)本開始,TDengine提(ti)供(gong)的鏡像(xiang)已經可以(yi)(yi)同時支持X86-64、X86、arm64、arm32平臺(tai),像(xiang)NAS、樹莓派(pai)、嵌入式開發板之類可以(yi)(yi)運行(xing)(xing)docker的非主(zhu)流計(ji)算機也(ye)可以(yi)(yi)基于本文檔(dang)輕松體(ti)驗TDengine。

下文通(tong)過(guo) Step by Step 風格的(de)介紹,講解如何通(tong)過(guo) Docker 快速建立 TDengine 的(de)單節點運行環境,以支持(chi)開發(fa)和測試。

下載 Docker

Docker 工具自(zi)身的下載請參考(kao) 。

安裝完畢后可(ke)以(yi)在(zai)命令行終端查看 Docker 版本(ben)。如果(guo)版本(ben)號正常輸出,則說(shuo)明 Docker 環境已經(jing)安裝成功。

$ docker -v
Docker version 20.10.3, build 48d30b5

使用 Docker 在容器中運行 TDengine

在 Docker 容器中運行 TDengine server

$ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd

這條命令,啟動一個運行了 TDengine server 的 docker 容器,并且將容器的 6030 到 6049 端口映射到宿主機的 6030 到 6049 端口上。如果宿主機已經運行了 TDengine server 并占用了相同端口,需要映射容器的端口到不同的未使用端口段。(詳情參見 TDengine 2.0 端口說明)。為了支持 TDengine 客戶端操作 TDengine server 服(fu)務, TCP 和(he) UDP 端口都需要(yao)打開。

  • docker run:通過 Docker 運行一個容器
  • -d:讓容器在后臺運行
  • -p:指定映射端口。注意:如果不是用端口映射,依然可以進入 Docker 容器內部使用 TDengine 服務或進行應用開發,只是不能對容器外部提供服務
  • tdengine/tdengine:拉取的 TDengine 官方發布的應用鏡像
  • 526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd:這個返回的長字符是容器 ID,我們也可以通過容器 ID 來查看對應的容器

進一步,還可以使用 docker run 命令啟動運行 TDengine server 的 docker 容器,并使用 --name 命令行參數將容器命名為 tdengine,使用 --hostname 指定 hostname 為 tdengine-server,通過 -v 掛載本(ben)地目(mu)錄到容(rong)器(qi)(qi),實現宿主機與容(rong)器(qi)(qi)內部(bu)的數(shu)據同步,防止容(rong)器(qi)(qi)刪(shan)除后,數(shu)據丟失。

docker run -d --name tdengine --hostname="tdengine-server" -v ~/work/taos/log:/var/log/taos -v ~/work/taos/data:/var/lib/taos  -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
  • --name tdengine:設置容器名稱,我們可以通過容器名稱來訪問對應的容器
  • --hostname=tdengine-server:設置容器內 Linux 系統的 hostname,我們可以通過映射 hostname 和 IP 來解決容器 IP 可能變化的問題。
  • -v:設置宿主機文件目錄映射到容器內目錄,避免容器刪除后數據丟失。

使用 docker ps 命令確認容器是否已經正確運行

docker ps

輸出示例如下:

CONTAINER ID   IMAGE               COMMAND   CREATED          STATUS          ···
c452519b0f9b   tdengine/tdengine   "taosd"   14 minutes ago   Up 14 minutes   ···
  • docker ps:列出所有正在運行狀態的容器信息。
  • CONTAINER ID:容器 ID。
  • IMAGE:使用的鏡像。
  • COMMAND:啟動容器時運行的命令。
  • CREATED:容器創建時間。
  • STATUS:容器狀態。UP 表示運行中。

通過 docker exec 命令,進入到 docker 容器中去做開發

$ docker exec -it tdengine /bin/bash
root@tdengine-server:~/TDengine-server-2.4.0.4#
  • docker exec:通過 docker exec 命令進入容器,如果退出,容器不會停止。
  • -i:進入交互模式。
  • -t:指定一個終端。
  • tdengine:容器名稱,需要根據 docker ps 指令返回的值進行修改。
  • /bin/bash:載入容器后運行 bash 來進行交互。

進入容器后,執行(xing) taos shell 客戶端(duan)程(cheng)序。

root@tdengine-server:~/TDengine-server-2.4.0.4# taos

Welcome to the TDengine shell from Linux, Client Version:2.4.0.4
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.

taos>

TDengine 終(zhong)端成功(gong)連接服務端,打印出了歡迎(ying)消息(xi)和版本(ben)信息(xi)。如果失敗,會(hui)有錯誤信息(xi)打印出來。

在 TDengine 終端中,可以通過 SQL 命令來創建/刪除數據庫、表、超級表等,并可以進行插入和查詢操作。具體可以參考 TAOS SQL 說明文檔

在宿主機訪問 Docker 容器中的 TDengine server

在使用(yong)了(le) -p 命(ming)(ming)令行參數映射了(le)正(zheng)確的端(duan)口啟動了(le) TDengine Docker 容器(qi)后,就(jiu)在宿主機使用(yong) taos shell 命(ming)(ming)令即可訪問運行在 Docker 容器(qi)中的 TDengine。

$ taos

Welcome to the TDengine shell from Linux, Client Version:2.4.0.4
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.

taos>

也可以在宿主機(ji)使用 curl 通過 RESTful 端口訪問 Docker 容器(qi)內(nei)的(de) TDengine server。

curl -u root:taosdata -d 'show databases' 127.0.0.1:6041/rest/sql

輸出示例如下:

{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep0,keep1,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","cachelast","precision","update","status"],"column_meta":[["name",8,32],["created_time",9,8],["ntables",4,4],["vgroups",4,4],["replica",3,2],["quorum",3,2],["days",3,2],["keep0,keep1,keep(D)",8,24],["cache(MB)",4,4],["blocks",4,4],["minrows",4,4],["maxrows",4,4],["wallevel",2,1],["fsync",4,4],["comp",2,1],["cachelast",2,1],["precision",8,3],["update",2,1],["status",8,10]],"data":[["test","2021-08-18 06:01:11.021",10000,4,1,1,10,"3650,3650,3650",16,6,100,4096,1,3000,2,0,"ms",0,"ready"],["log","2021-08-18 05:51:51.065",4,1,1,1,10,"30,30,30",1,3,100,4096,1,3000,2,0,"us",0,"ready"]],"rows":2}

這條命令,通過 RESTful 接口(kou)訪問(wen) TDengine server,這時連接的(de)是本(ben)機的(de) 6041 端(duan)口(kou),可見連接成(cheng)功。

TDengine RESTful 接口詳情請參考官方文檔

使用 Docker 容器運行 TDengine server 和 taosAdapter

在 TDengine 2.4.0.0 之后(hou)版(ban)本(ben)的(de)(de) Docker 容器,開始提(ti)供一個獨(du)(du)立運行的(de)(de)組件 taosAdapter,代替之前版(ban)本(ben) TDengine 中(zhong) taosd 進程(cheng)中(zhong)內置(zhi)的(de)(de) http server。taosAdapter 支持通過 RESTful 接口對 TDengine server 的(de)(de)數(shu)據寫入和(he)查詢(xun)能(neng)力,并提(ti)供和(he) InfluxDB/OpenTSDB 兼容的(de)(de)數(shu)據攝取接口,允許(xu) InfluxDB/OpenTSDB 應用(yong)(yong)程(cheng)序無縫移植到(dao) TDengine。在新(xin)版(ban)本(ben) Docker 鏡像中(zhong),默認啟(qi)用(yong)(yong)了 taosAdapter,也可(ke)(ke)以使用(yong)(yong) docker run 命令中(zhong)設置(zhi) TAOS_DISABLE_ADAPTER=true 來(lai)禁(jin)用(yong)(yong) taosAdapter;也可(ke)(ke)以在 docker run 命令中(zhong)單獨(du)(du)使用(yong)(yong)taosAdapter,而不運行 taosd 。

注(zhu)意(yi):如(ru)果容(rong)器中(zhong)運行 taosAdapter,需要根(gen)據(ju)需要映射其他端口(kou),具體端口(kou)默認配(pei)置和修改方(fang)法請參考。

使用(yong) docker 運行(xing) TDengine 2.4.0.4 版本鏡(jing)像(taosd + taosAdapter):

docker run -d --name tdengine-all -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine:2.4.0.4

使用 docker 運(yun)行(xing) TDengine 2.4.0.4 版本鏡像(僅 taosAdapter,需(xu)要設(she)置 firstEp 配置項 或(huo) TAOS_FIRST_EP 環境(jing)變量):

docker run -d --name tdengine-taosa -p 6041-6049:6041-6049 -p 6041-6049:6041-6049/udp -e TAOS_FIRST_EP=tdengine-all tdengine/tdengine:2.4.0.4 taosadapter

使用 docker 運(yun)行 TDengine 2.4.0.4 版本鏡(jing)像(僅 taosd):

docker run -d --name tdengine-taosd -p 6030-6042:6030-6042 -p 6030-6042:6030-6042/udp -e TAOS_DISABLE_ADAPTER=true tdengine/tdengine:2.4.0.4

使用 curl 命令驗證(zheng) RESTful 接口可以正常工作:

curl -H 'Authorization: Basic cm9vdDp0YW9zZGF0YQ==' -d 'show databases;' 127.0.0.1:6041/rest/sql

輸出示例如下:

{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","cachelast","precision","update","status"],"column_meta":[["name",8,32],["created_time",9,8],["ntables",4,4],["vgroups",4,4],["replica",3,2],["quorum",3,2],["days",3,2],["keep",8,24],["cache(MB)",4,4],["blocks",4,4],["minrows",4,4],["maxrows",4,4],["wallevel",2,1],["fsync",4,4],["comp",2,1],["cachelast",2,1],["precision",8,3],["update",2,1],["status",8,10]],"data":[["log","2021-12-28 09:18:55.765",10,1,1,1,10,"30",1,3,100,4096,1,3000,2,0,"us",0,"ready"]],"rows":1}

應用示例:在宿主機使用 taosBenchmark 寫入數據到 Docker 容器中的 TDengine server

1,在宿主機命令行界(jie)面執行 taosBenchmark (曾命名為 taosdemo)寫入數(shu)據到(dao) Docker 容(rong)器中的 TDengine server

$ taosBenchmark

taosBenchmark is simulating data generated by power equipments monitoring...

host:                       127.0.0.1:6030
user:                       root
password:                   taosdata
configDir:
resultFile:                 ./output.txt
thread num of insert data:  10
thread num of create table: 10
top insert interval:        0
number of records per req:  30000
max sql length:             1048576
database count:             1
database[0]:
  database[0] name:      test
  drop:                  yes
  replica:               1
  precision:             ms
  super table count:     1
  super table[0]:
      stbName:           meters
      autoCreateTable:   no
      childTblExists:    no
      childTblCount:     10000
      childTblPrefix:    d
      dataSource:        rand
      iface:             taosc
      insertRows:        10000
      interlaceRows:     0
      disorderRange:     1000
      disorderRatio:     0
      maxSqlLen:         1048576
      timeStampStep:     1
      startTimestamp:    2017-07-14 10:40:00.000
      sampleFormat:
      sampleFile:
      tagsFile:
      columnCount:       3
column[0]:FLOAT column[1]:INT column[2]:FLOAT
      tagCount:            2
        tag[0]:INT tag[1]:BINARY(16)

         Press enter key to continue or Ctrl-C to stop

回車后,該命令將(jiang)在(zai)數(shu)據庫 test 下(xia)面自動創建一張超(chao)級表(biao) meters,該超(chao)級表(biao)下(xia)有(you)(you) 1 萬張表(biao),表(biao)名為 "d0" 到 "d9999",每張表(biao)有(you)(you) 1 萬條記(ji)錄,每條記(ji)錄有(you)(you) (ts, current, voltage, phase) 四(si)個字段(duan),時間戳從 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:40:09 999",每張表(biao)帶(dai)有(you)(you)標(biao)簽 location 和 groupId,groupId 被(bei)設置(zhi)為 1 到 10, location 被(bei)設置(zhi)為 "beijing" 或者 "shanghai"。

最后共插入(ru) 1 億條記錄(lu)。

2.進入 TDengine 終端,查看 taosBenchmark 生(sheng)成(cheng)的數據。

  • 進入命令行。
$ root@c452519b0f9b:~/TDengine-server-2.4.0.4# taos

Welcome to the TDengine shell from Linux, Client Version:2.4.0.4
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.

taos>
  • 查看數據庫。
$ taos> SHOW DATABASES;
  name        |      created_time       |   ntables   |   vgroups   |    ···
  test        | 2021-08-18 06:01:11.021 |       10000 |           6 |    ···
  log         | 2021-08-18 05:51:51.065 |           4 |           1 |    ···
  • 查看超級表。
$ taos> use test;
Database changed.

$ taos> SHOW STABLES;
              name              |      created_time       | columns |  tags  |   tables    |
============================================================================================
 meters                         | 2021-08-18 06:01:11.116 |       4 |      2 |       10000 |
Query OK, 1 row(s) in set (0.003259s)
  • 查看表,限制輸出十條。
taos> SELECT * FROM test.d0 LIMIT 10;
           ts            |       current        |   voltage   |        phase         |
======================================================================================
 2017-07-14 10:40:00.000 |             10.12072 |         223 |              0.34167 |
 2017-07-14 10:40:00.001 |             10.16103 |         224 |              0.34445 |
 2017-07-14 10:40:00.002 |             10.00204 |         220 |              0.33334 |
 2017-07-14 10:40:00.003 |             10.00030 |         220 |              0.33333 |
 2017-07-14 10:40:00.004 |              9.84029 |         216 |              0.32222 |
 2017-07-14 10:40:00.005 |              9.88028 |         217 |              0.32500 |
 2017-07-14 10:40:00.006 |              9.88110 |         217 |              0.32500 |
 2017-07-14 10:40:00.007 |             10.08137 |         222 |              0.33889 |
 2017-07-14 10:40:00.008 |             10.12063 |         223 |              0.34167 |
 2017-07-14 10:40:00.009 |             10.16086 |         224 |              0.34445 |
Query OK, 10 row(s) in set (0.016791s)
  • 查看 d0 表的標簽值。
$ taos> SELECT groupid, location FROM test.d0;
   groupid   |     location     |
=================================
           0 | shanghai         |
Query OK, 1 row(s) in set (0.003490s)

應用示例:使用數據收集代理軟件寫入 TDengine

taosAdapter 支持多個數據(ju)收集(ji)代理軟(ruan)件(如 Telegraf、StatsD、collectd 等),這里僅模擬(ni) StasD 寫入數據(ju),在宿主機執行命(ming)令如下:

echo "foo:1|c" | nc -u -w0 127.0.0.1 6044

然后(hou)可(ke)以使用 taos shell 查詢(xun) taosAdapter 自動創建的數據庫(ku) statsd 和 超級(ji)表(biao) foo 中(zhong)的內容:

taos> SHOW DATABASES;
              name              |      created_time       |   ntables   |   vgroups   | replica | quorum |  days  |           keep           |  cache(MB)  |   blocks    |   minrows   |   maxrows   | wallevel |    fsync    | comp | cachelast | precision | update |   status   |
====================================================================================================================================================================================================================================================================================
 log                            | 2021-12-28 09:18:55.765 |          12 |           1 |       1 |      1 |     10 | 30                       |           1 |           3 |         100 |        4096 |        1 |        3000 |    2 |         0 | us        |      0 | ready      |
 statsd                         | 2021-12-28 09:21:48.841 |           1 |           1 |       1 |      1 |     10 | 3650                     |          16 |           6 |         100 |        4096 |        1 |        3000 |    2 |         0 | ns        |      2 | ready      |
Query OK, 2 row(s) in set (0.002112s)

taos> use statsd;
Database changed.

taos> SHOW STABLES;
              name              |      created_time       | columns |  tags  |   tables    |
============================================================================================
 foo                            | 2021-12-28 09:21:48.894 |       2 |      1 |           1 |
Query OK, 1 row(s) in set (0.001160s)

taos> SELECT * FROM foo;
              ts               |         value         |         metric_type          |
=======================================================================================
 2021-12-28 09:21:48.840820836 |                     1 | counter                      |
Query OK, 1 row(s) in set (0.001639s)

taos>

可以看到模擬數據已經被寫入到 TDengine 中(zhong)。

停止正在 Docker 中運行的 TDengine 服務

docker stop tdengine
  • docker stop:通過 docker stop 停止指定的正在運行中的 docker 鏡像。