六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

通過 Docker 快速體驗(yàn) TDengine

雖然并不推薦在生產(chǎn)環(huán)境中通過 Docker 來部署 TDengine 服務(wù),但 Docker 工具能夠很好地屏蔽底層操作系統(tǒng)的環(huán)境差異,很適合在開發(fā)測試或初次體驗(yàn)時用于安裝運(yùn)行 TDengine 的工具集。特別是,借助 Docker,能夠比較方便地在 macOS 和 Windows 系統(tǒng)上嘗試 TDengine,而無需安裝虛擬機(jī)或額外租用 Linux 服務(wù)器。另外,從2.0.14.0版本開始,TDengine提供的鏡像已經(jīng)可以同時支持X86-64、X86、arm64、arm32平臺,像NAS、樹莓派、嵌入式開發(fā)板之類可以運(yùn)行docker的非主流計算機(jī)也可以基于本文檔輕松體驗(yàn)TDengine。

下文通過 Step by Step 風(fēng)格的介紹,講解如何通過 Docker 快速建立 TDengine 的單節(jié)點(diǎn)運(yùn)行環(huán)境,以支持開發(fā)和測試。

下載 Docker

Docker 工具自身的下載請參考 Docker官網(wǎng)文檔。

安裝完畢后可以在命令行終端查看 Docker 版本。如果版本號正常輸出,則說明 Docker 環(huán)境已經(jīng)安裝成功。

$ docker -v
Docker version 20.10.3, build 48d30b5

使用 Docker 在容器中運(yùn)行 TDengine

在 Docker 容器中運(yùn)行 TDengine server

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

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

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

進(jìn)一步,還可以使用 docker run 命令啟動運(yùn)行 TDengine server 的 docker 容器,并使用 --name 命令行參數(shù)將容器命名為 tdengine,使用 --hostname 指定 hostname 為 tdengine-server,通過 -v 掛載本地目錄到容器,實(shí)現(xiàn)宿主機(jī)與容器內(nèi)部的數(shù)據(jù)同步,防止容器刪除后,數(shù)據(jù)丟失。

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:設(shè)置容器名稱,我們可以通過容器名稱來訪問對應(yīng)的容器
  • --hostname=tdengine-server:設(shè)置容器內(nèi) Linux 系統(tǒng)的 hostname,我們可以通過映射 hostname 和 IP 來解決容器 IP 可能變化的問題。
  • -v:設(shè)置宿主機(jī)文件目錄映射到容器內(nèi)目錄,避免容器刪除后數(shù)據(jù)丟失。

使用 docker ps 命令確認(rèn)容器是否已經(jīng)正確運(yùn)行

docker ps

輸出示例如下:

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

通過 docker exec 命令,進(jìn)入到 docker 容器中去做開發(fā)

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

進(jìn)入容器后,執(zhí)行 taos shell 客戶端程序。

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 終端成功連接服務(wù)端,打印出了歡迎消息和版本信息。如果失敗,會有錯誤信息打印出來。

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

在宿主機(jī)訪問 Docker 容器中的 TDengine server

在使用了 -p 命令行參數(shù)映射了正確的端口啟動了 TDengine Docker 容器后,就在宿主機(jī)使用 taos shell 命令即可訪問運(yùn)行在 Docker 容器中的 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>

也可以在宿主機(jī)使用 curl 通過 RESTful 端口訪問 Docker 容器內(nèi)的 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 接口訪問 TDengine server,這時連接的是本機(jī)的 6041 端口,可見連接成功。

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

使用 Docker 容器運(yùn)行 TDengine server 和 taosAdapter

在 TDengine 2.4.0.0 之后版本的 Docker 容器,開始提供一個獨(dú)立運(yùn)行的組件 taosAdapter,代替之前版本 TDengine 中 taosd 進(jìn)程中內(nèi)置的 http server。taosAdapter 支持通過 RESTful 接口對 TDengine server 的數(shù)據(jù)寫入和查詢能力,并提供和 InfluxDB/OpenTSDB 兼容的數(shù)據(jù)攝取接口,允許 InfluxDB/OpenTSDB 應(yīng)用程序無縫移植到 TDengine。在新版本 Docker 鏡像中,默認(rèn)啟用了 taosAdapter,也可以使用 docker run 命令中設(shè)置 TAOS_DISABLE_ADAPTER=true 來禁用 taosAdapter;也可以在 docker run 命令中單獨(dú)使用taosAdapter,而不運(yùn)行 taosd 。

注意:如果容器中運(yùn)行 taosAdapter,需要根據(jù)需要映射其他端口,具體端口默認(rèn)配置和修改方法請參考taosAdapter文檔。

使用 docker 運(yùn)行 TDengine 2.4.0.4 版本鏡像(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 運(yùn)行 TDengine 2.4.0.4 版本鏡像(僅 taosAdapter,需要設(shè)置 firstEp 配置項 或 TAOS_FIRST_EP 環(huán)境變量):

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 運(yùn)行 TDengine 2.4.0.4 版本鏡像(僅 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 命令驗(yàn)證 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}

應(yīng)用示例:在宿主機(jī)使用 taosBenchmark 寫入數(shù)據(jù)到 Docker 容器中的 TDengine server

1,在宿主機(jī)命令行界面執(zhí)行 taosBenchmark (曾命名為 taosdemo)寫入數(shù)據(jù)到 Docker 容器中的 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

回車后,該命令將在數(shù)據(jù)庫 test 下面自動創(chuàng)建一張超級表 meters,該超級表下有 1 萬張表,表名為 "d0" 到 "d9999",每張表有 1 萬條記錄,每條記錄有 (ts, current, voltage, phase) 四個字段,時間戳從 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:40:09 999",每張表帶有標(biāo)簽 location 和 groupId,groupId 被設(shè)置為 1 到 10, location 被設(shè)置為 "beijing" 或者 "shanghai"。

最后共插入 1 億條記錄。

2.進(jìn)入 TDengine 終端,查看 taosBenchmark 生成的數(shù)據(jù)。

  • 進(jìn)入命令行。
$ 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>
  • 查看數(shù)據(jù)庫。
$ 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 表的標(biāo)簽值。
$ taos> SELECT groupid, location FROM test.d0;
   groupid   |     location     |
=================================
           0 | shanghai         |
Query OK, 1 row(s) in set (0.003490s)

應(yīng)用示例:使用數(shù)據(jù)收集代理軟件寫入 TDengine

taosAdapter 支持多個數(shù)據(jù)收集代理軟件(如 Telegraf、StatsD、collectd 等),這里僅模擬 StasD 寫入數(shù)據(jù),在宿主機(jī)執(zhí)行命令如下:

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

然后可以使用 taos shell 查詢 taosAdapter 自動創(chuàng)建的數(shù)據(jù)庫 statsd 和 超級表 foo 中的內(nèi)容:

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>

可以看到模擬數(shù)據(jù)已經(jīng)被寫入到 TDengine 中。

停止正在 Docker 中運(yùn)行的 TDengine 服務(wù)

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