อังกฤษ | 中文
IoTDB (Internet of Things Database) คือระบบการจัดการข้อมูลสำหรับข้อมูลอนุกรมเวลา ซึ่งให้บริการเฉพาะแก่ผู้ใช้ รวมถึงการรวบรวมข้อมูล การจัดเก็บ และการวิเคราะห์ เนื่องจากโครงสร้างน้ำหนักเบา ประสิทธิภาพสูงและคุณสมบัติการใช้งาน รวมถึงการบูรณาการอย่างราบรื่นกับระบบนิเวศ Hadoop และ Spark ทำให้ IoTDB ตอบสนองความต้องการของพื้นที่จัดเก็บชุดข้อมูลขนาดใหญ่ การป้อนข้อมูลปริมาณงานสูง และการวิเคราะห์ข้อมูลที่ซับซ้อนในสาขา IoT อุตสาหกรรม
คลิกเพื่อดูข้อมูลเพิ่มเติม
IoTDB ขึ้นอยู่กับ TsFile ซึ่งเป็นรูปแบบไฟล์จัดเก็บข้อมูลแบบเรียงเป็นแนวที่ออกแบบมาสำหรับข้อมูลอนุกรมเวลา iotdb
สาขาของโปรเจ็กต์ TsFile ใช้เพื่อปรับใช้เวอร์ชัน SNAPSHOT สำหรับโปรเจ็กต์ IoTDB
คุณสมบัติหลักของ IoTDB มีดังนี้:
สำหรับข้อมูลล่าสุดเกี่ยวกับ IoTDB โปรดไปที่เว็บไซต์อย่างเป็นทางการของ IoTDB หากคุณพบปัญหาหรือระบุจุดบกพร่องขณะใช้งาน IoTDB โปรดรายงานปัญหาใน Jira
คู่มือฉบับย่อนี้จะแนะนำคุณตลอดกระบวนการพื้นฐานของการใช้ IoTDB สำหรับคำแนะนำโดยละเอียดเพิ่มเติม โปรดไปที่คู่มือผู้ใช้ของเว็บไซต์ของเรา
หากต้องการใช้ IoTDB คุณต้องมี:
# Linux
> sudo sysctl -w net.core.somaxconn=65535
# FreeBSD or Darwin
> sudo sysctl -w kern.ipc.somaxconn=65535
(คู่มือนี้อ้างอิงจากการติดตั้ง Ubuntu 22.04)
ตรวจสอบให้แน่ใจว่าติดตั้ง Git
แล้ว หากไม่มี ให้ติดตั้งผ่าน:
sudo apt install git
ตรวจสอบให้แน่ใจว่าติดตั้ง Java
แล้ว หากไม่มี ให้ติดตั้งผ่าน:
sudo apt install default-jdk
sudo apt install flex
sudo apt install bison
sudo apt install libboost-all-dev
โดยปกติแล้ว OpenSSL จะถูกติดตั้งไว้แล้ว แต่ไม่มีไฟล์ส่วนหัวที่เราต้องคอมไพล์ ดังนั้นตรวจสอบให้แน่ใจว่าได้ติดตั้งสิ่งเหล่านี้แล้ว:
sudo apt install libssl-dev
ขั้นแรกให้แน่ใจว่า git
ใช้งานได้
โดยปกติบน Mac เครื่องใหม่ ทันทีที่คุณพิมพ์ git
ในหน้าต่าง Terminal
ป๊อปอัปจะปรากฏขึ้นและถามว่าคุณต้องการติดตั้งเครื่องมือสำหรับนักพัฒนา Mac ให้เสร็จสิ้นหรือไม่ แค่บอกว่าใช่ ทันทีที่เสร็จสิ้น คุณสามารถใช้งาน git
ได้ฟรี
จากนั้นติดตั้ง Homebrew
- หากยังไม่ได้ติดตั้ง เนื่องจากเราจะติดตั้งทุกอย่างโดยใช้ Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ทันทีที่เสร็จสิ้นให้ติดตั้ง Java
หากยังไม่ได้ติดตั้ง:
brew install java
ขึ้นอยู่กับเวอร์ชันของ Homebrew ของคุณ ระบบจะแจ้งให้คุณทำอย่างใดอย่างหนึ่งต่อไปนี้ (ขึ้นอยู่กับประเภทของโปรเซสเซอร์ในอุปกรณ์ของคุณ)
ส่วนใหญ่เป็นรุ่นที่ใช้ Intel:
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
ส่วนใหญ่เป็นรุ่นที่ใช้ ARM:
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
การสร้าง Thrift
กำหนดให้เราต้องเพิ่มการพึ่งพาอีกสองรายการให้กับรูปภาพ
อย่างไรก็ตาม สิ่งนี้จำเป็นเมื่อเปิดใช้งานโปรไฟล์ with-cpp
เท่านั้น:
brew install boost
brew install bison
brew install openssl
จากนั้นติดตั้ง Chocolatey
- หากยังไม่ได้ติดตั้ง เนื่องจากเรากำลังจะติดตั้งทุกอย่างโดยใช้ Chocolatey
https://chocolatey.org/install
choco install git.install
choco install openjdk
choco install visualstudio2022community
choco install visualstudio2022buildtools
choco install visualstudio2022-workload-nativedesktop
choco install winflexbison
choco install boost-msvc-14.2
choco install openssl
IoTDB มีวิธีการติดตั้งสามวิธี คุณสามารถอ้างอิงตามคำแนะนำต่อไปนี้ เลือกวิธีที่เหมาะกับคุณที่สุด:
ในการเริ่มต้นอย่างรวดเร็ว เราจะให้คำแนะนำสั้นๆ เกี่ยวกับการใช้ซอร์สโค้ดเพื่อติดตั้ง IoTDB สำหรับข้อมูลเพิ่มเติม โปรดดูที่คู่มือผู้ใช้
ข้ามบทนี้หากคุณใช้ Windows
เนื่องจากเราใช้ Thrift สำหรับโมดูล RPC ของเรา (คำจำกัดความของการสื่อสารและโปรโตคอล) เราจึงเกี่ยวข้องกับ Thrift ในระหว่างการคอมไพล์ ดังนั้น Thrift คอมไพเลอร์ 0.13.0 (หรือสูงกว่า) จึงจำเป็นในการสร้างโค้ด Thrift Java Thrift ให้บริการคอมไพเลอร์ไบนารีสำหรับ Windows อย่างเป็นทางการ แต่น่าเสียดายที่พวกเขาไม่ได้จัดเตรียมสิ่งนั้นสำหรับ Unix OS
หากคุณได้รับอนุญาตให้ติดตั้งซอฟต์แวร์ใหม่ ให้ใช้ apt install
หรือ yum install
หรือ brew install
เพื่อติดตั้งคอมไพเลอร์ Thrift (หากคุณได้ติดตั้งคอมไพเลอร์ thrift แล้ว ให้ข้ามขั้นตอนนี้) จากนั้น คุณอาจเพิ่มพารามิเตอร์ต่อไปนี้เมื่อรัน Maven: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
ถ้าไม่เช่นนั้น คุณจะต้องคอมไพล์คอมไพเลอร์ thrift และคุณจะต้องติดตั้งบูสต์ไลบรารีก่อน ดังนั้นเราจึงรวบรวมคอมไพเลอร์ Unix ด้วยตัวเองและใส่ลงใน GitHub และด้วยความช่วยเหลือของปลั๊กอิน maven มันจะถูกดาวน์โหลดโดยอัตโนมัติในระหว่างการคอมไพล์ คอมไพเลอร์นี้ทำงานได้ดีกับ gcc8 หรือใหม่กว่า, Ubuntu MacOS และ CentOS แต่ไม่รับประกันเวอร์ชันก่อนหน้าและระบบปฏิบัติการอื่น ๆ
หากคุณไม่สามารถดาวน์โหลดคอมไพลเลอร์ thrift โดยอัตโนมัติได้เนื่องจากปัญหาเครือข่าย คุณสามารถดาวน์โหลดได้ด้วยตัวเอง จากนั้นทำอย่างใดอย่างหนึ่งต่อไปนี้: เปลี่ยนชื่อไฟล์ thrift ของคุณเป็น {project_root}thrifttargettoolsthrift_0.12.0_0.13.0_linux.exe
; หรือเพิ่มคำสั่ง Maven: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
คุณสามารถดาวน์โหลดซอร์สโค้ดได้จาก:
git clone https://github.com/apache/iotdb.git
สาขา dev เริ่มต้นคือสาขาหลัก หากคุณต้องการใช้เวอร์ชัน xxx ที่วางจำหน่าย:
git checkout vx.x.x
หรือชำระเงินไปยังสาขาของเวอร์ชันใหญ่ เช่น สาขาของ 1.0 คือ rel/1.0
git checkout rel/x.x
ภายใต้เส้นทางรูทของ iotdb:
> mvn clean package -pl distribution -am -DskipTests
หลังจากถูกสร้างขึ้นแล้ว การแจกจ่าย IoTDB จะอยู่ที่โฟลเดอร์: "distribution/target"
ภายใต้พาธ iotdb/iotdb-client:
> mvn clean package -pl cli -am -DskipTests
หลังจากสร้างแล้ว IoTDB cli จะอยู่ที่โฟลเดอร์ "cli/target"
ใช้ -P with-cpp
เพื่อคอมไพล์ไคลเอ็นต์ cpp (สำหรับรายละเอียดเพิ่มเติม โปรดอ่านไฟล์ Readme ของ client-cpp)
หมายเหตุ: ไดเรกทอรี " thrift/target/generated-sources/thrift
", " thrift-sync/target/generated-sources/thrift
thrift-cluster/target/generated-sources/thrift
", " thrift-influxdb/target/generated-sources/thrift
จะต้อง thrift-influxdb/target/generated-sources/thrift
" และ " antlr/target/generated-sources/antlr4
" เพิ่มไปยังรูทต้นทางเพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์ใน IDE
ใน IDEA คุณเพียงแค่ต้องคลิกขวาที่ชื่อโปรเจ็กต์รูทแล้วเลือก " Maven->Reload Project
" หลังจากคุณรัน mvn package
สำเร็จ
ไฟล์การกำหนดค่าอยู่ภายใต้โฟลเดอร์ "conf"
datanode-env.bat
, datanode-env.sh
)iotdb-datanode.properties
)logback.xml
)สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือการกำหนดค่า
คุณสามารถทำตามขั้นตอนต่อไปนี้เพื่อทดสอบการติดตั้ง หากไม่มีข้อผิดพลาดส่งคืนหลังจากดำเนินการ แสดงว่าการติดตั้งเสร็จสมบูรณ์
ผู้ใช้สามารถเริ่ม 1C1D IoTDB ด้วยสคริปต์เริ่มต้นแบบสแตนด์อโลนภายใต้โฟลเดอร์ sbin
# Unix/OS X
> sbin/start-standalone.sh
# Windows
> sbinstart-standalone.bat
IoTDB นำเสนอวิธีการโต้ตอบกับเซิร์ฟเวอร์ในรูปแบบต่างๆ ในที่นี้ เราจะแนะนำขั้นตอนพื้นฐานของการใช้เครื่องมือ Cli เพื่อแทรกและสืบค้นข้อมูล
หลังจากติดตั้ง IoTDB จะมีผู้ใช้เริ่มต้น 'root' รหัสผ่านเริ่มต้นก็คือ 'root' เช่นกัน ผู้ใช้สามารถใช้ผู้ใช้เริ่มต้นนี้เพื่อเข้าสู่ระบบ Cli เพื่อใช้ IoTDB สคริปต์เริ่มต้นของ Cli คือสคริปต์ start-cli ในโฟลเดอร์ sbin เมื่อรันสคริปต์ ผู้ใช้ควรกำหนด IP, PORT, USER_NAME และ PASSWORD พารามิเตอร์เริ่มต้นคือ "-h 127.0.0.1 -p 6667 -u root -pw -root"
นี่คือคำสั่งสำหรับการเริ่มต้น Cli:
# Unix/OS X
> sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
# Windows
> sbinstart-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root
cli บรรทัดคำสั่งเป็นแบบโต้ตอบ ดังนั้นคุณควรเห็นโลโก้ต้อนรับและข้อความแจ้งหากทุกอย่างพร้อม:
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _
| | .--.|_/ | | _| | | `. | |_) |
| | / .'` | | | | | | | __'.
_| |_| __. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
IoTDB> login successfully
IoTDB>
ตอนนี้ เรามาแนะนำวิธีการสร้างอนุกรมเวลา การแทรกข้อมูล และการสืบค้นข้อมูล
ข้อมูลใน IoTDB ถูกจัดระเบียบเป็นอนุกรมเวลา แต่ละอนุกรมเวลาจะมีคู่ข้อมูล-เวลาหลายคู่ และเป็นของฐานข้อมูล ก่อนที่จะกำหนดอนุกรมเวลา เราควรกำหนดฐานข้อมูลโดยใช้ CREATE DATABASE ก่อน และนี่คือตัวอย่าง:
IoTDB> CREATE DATABASE root.ln
เรายังสามารถใช้ SHOW DATABASES เพื่อตรวจสอบฐานข้อมูลที่ถูกสร้างขึ้น:
IoTDB> SHOW DATABASES
+-------------+
| Database|
+-------------+
| root.ln|
+-------------+
Total line number = 1
หลังจากตั้งค่าฐานข้อมูลแล้ว เราสามารถใช้ CREATE TIMESERIES เพื่อสร้างอนุกรมเวลาใหม่ได้ เมื่อสร้างอนุกรมเวลา เราควรกำหนดประเภทข้อมูลและรูปแบบการเข้ารหัส ที่นี่เราสร้างอนุกรมเวลาสองชุด:
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 แสดงถึงตำแหน่งของลำดับเวลา ค่าเริ่มต้นคือ "null" ซึ่งจะสอบถามอนุกรมเวลาทั้งหมดในระบบ (เช่นเดียวกับการใช้ "SHOW TIMESERIES root") นี่คือตัวอย่างบางส่วน:
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
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
การแทรกข้อมูลอนุกรมเวลาเป็นการดำเนินการพื้นฐานของ IoTDB คุณสามารถใช้คำสั่ง 'INSERT' เพื่อดำเนินการให้เสร็จสิ้นได้ ก่อนที่จะแทรก คุณควรกำหนดการประทับเวลาและชื่อพาธส่วนต่อท้าย:
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)
ข้อมูลที่คุณเพิ่งใส่จะแสดงดังนี้:
IoTDB> SELECT status FROM root.ln.wf01.wt01
+------------------------+------------------------+
| Time|root.ln.wf01.wt01.status|
+------------------------+------------------------+
|1970-01-01T00:00:00.100Z| true|
|1970-01-01T00:00:00.200Z| false|
+------------------------+------------------------+
Total line number = 2
คุณยังสามารถสืบค้นข้อมูลอนุกรมเวลาหลายรายการได้โดยใช้คำสั่ง SQL คำสั่งเดียว:
IoTDB> SELECT * FROM root.ln.wf01.wt01
+------------------------+-----------------------------+------------------------+
| Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+------------------------+-----------------------------+------------------------+
|1970-01-01T00:00:00.100Z| null| true|
|1970-01-01T00:00:00.200Z| 20.71| false|
+------------------------+-----------------------------+------------------------+
Total line number = 2
หากต้องการเปลี่ยนเขตเวลาใน Cli คุณสามารถใช้ SQL ต่อไปนี้:
IoTDB> SET time_zone=+08:00
Time zone has set to +08:00
IoTDB> SHOW time_zone
Current time zone: Asia/Shanghai
เพิ่มแล้วผลการค้นหาจะแสดงโดยใช้เขตเวลาใหม่
IoTDB> SELECT * FROM root.ln.wf01.wt01
+-----------------------------+-----------------------------+------------------------+
| Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+-----------------------------+-----------------------------+------------------------+
|1970-01-01T08:00:00.100+08:00| null| true|
|1970-01-01T08:00:00.200+08:00| 20.71| false|
+-----------------------------+-----------------------------+------------------------+
Total line number = 2
คำสั่งในการออกจาก Cli คือ:
IoTDB> quit
or
IoTDB> exit
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งที่รองรับโดย IoTDB SQL โปรดดูคู่มือผู้ใช้
เซิร์ฟเวอร์สามารถหยุดได้ด้วย "ctrl-C" หรือสคริปต์ต่อไปนี้:
# Unix/OS X
> sbin/stop-standalone.sh
# Windows
> sbinstop-standalone.bat
ดูการใช้เครื่องมือนำเข้าและส่งออก CSV
ดูคำถามที่พบบ่อยเมื่อรวบรวมซอร์สโค้ด
tietouqiao
หรือ liutaohua001
แล้วเราจะเชิญคุณเข้ากลุ่มดูเข้าร่วมชุมชนเพื่อรับข้อมูลเพิ่มเติม!