Englisch | 中文
IoTDB (Internet of Things Database) ist ein Datenverwaltungssystem für Zeitreihendaten, das Benutzern spezifische Dienste bereitstellt, einschließlich Datenerfassung, -speicherung und -analyse. Aufgrund seiner leichten Struktur, hohen Leistung und benutzerfreundlichen Funktionen sowie seiner nahtlosen Integration in das Hadoop- und Spark-Ökosystem erfüllt IoTDB die Anforderungen der Speicherung großer Datensätze, der Dateneingabe mit hohem Durchsatz und der komplexen Datenanalyse im industriellen IoT-Bereich.
Klicken Sie hier, um weitere Informationen zu erhalten
IoTDB hängt von TsFile ab, einem spaltenorientierten Speicherdateiformat, das für Zeitreihendaten entwickelt wurde. Der Zweig iotdb
des TsFile-Projekts wird verwendet, um die SNAPSHOT-Version für das IoTDB-Projekt bereitzustellen.
Die Hauptfunktionen von IoTDB sind wie folgt:
Die neuesten Informationen zu IoTDB finden Sie auf der offiziellen Website von IoTDB. Wenn Sie bei der Verwendung von IoTDB auf Probleme stoßen oder Fehler feststellen, melden Sie bitte ein Problem in Jira.
Diese kurze Anleitung führt Sie durch den grundlegenden Prozess der Verwendung von IoTDB. Eine ausführlichere Einführung finden Sie im Benutzerhandbuch auf unserer Website.
Um IoTDB verwenden zu können, benötigen Sie Folgendes:
# Linux
> sudo sysctl -w net.core.somaxconn=65535
# FreeBSD or Darwin
> sudo sysctl -w kern.ipc.somaxconn=65535
(Diese Anleitung basiert auf einer Installation von Ubuntu 22.04.)
Stellen Sie sicher, Git
installiert ist. Wenn es fehlt, installieren Sie es einfach über:
sudo apt install git
Stellen Sie sicher, dass Java
installiert ist. Wenn es fehlt, installieren Sie es einfach über:
sudo apt install default-jdk
sudo apt install flex
sudo apt install bison
sudo apt install libboost-all-dev
Normalerweise ist OpenSSL bereits installiert, es fehlen jedoch die Header-Dateien, die wir kompilieren müssen. Stellen Sie daher sicher, dass Folgendes installiert ist:
sudo apt install libssl-dev
Stellen Sie zunächst sicher, dass git
funktioniert.
Normalerweise erscheint auf einem neuen Mac ein Popup-Fenster, in dem Sie gefragt werden, ob Sie die Installation der Mac-Entwicklertools abschließen möchten, sobald Sie einfach git
in ein Terminal
eingeben. Sag einfach ja. Sobald dies abgeschlossen ist, können Sie git
verwenden.
Dann installieren Sie Homebrew
– falls dies noch nicht installiert wurde, da wir alles mit Homebrew
installieren werden.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Sobald das erledigt ist, installieren Sie Java
, falls dies noch nicht installiert wurde:
brew install java
Abhängig von Ihrer Homebrew-Version werden Sie aufgefordert, einen der folgenden Schritte auszuführen (abhängig vom Prozessortyp in Ihrem Gerät).
Hauptsächlich bei den Intel-basierten Modellen:
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
Hauptsächlich bei den ARM-basierten Modellen:
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
Building Thrift
erfordert, dass wir dem Bild zwei weitere Abhängigkeiten hinzufügen.
Dies ist jedoch nur erforderlich, wenn das with-cpp
-Profil aktiviert wird:
brew install boost
brew install bison
brew install openssl
Dann installieren Sie Chocolatey
– falls dies noch nicht installiert wurde, da wir alles mit Chocolatey
installieren werden.
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 bietet drei Installationsmethoden. Sie können sich an den folgenden Vorschlägen orientieren und diejenige auswählen, die am besten zu Ihnen passt:
Hier im Quick Start geben wir eine kurze Einführung in die Verwendung von Quellcode zur Installation von IoTDB. Weitere Informationen finden Sie im Benutzerhandbuch.
Überspringen Sie dieses Kapitel, wenn Sie Windows verwenden.
Da wir Thrift für unser RPC-Modul (Kommunikations- und Protokolldefinition) verwenden, beziehen wir Thrift während der Kompilierung ein, sodass der Thrift-Compiler 0.13.0 (oder höher) erforderlich ist, um Thrift-Java-Code zu generieren. Thrift stellt offiziell einen Binär-Compiler für Windows bereit, aber leider nicht für Unix-Betriebssysteme.
Wenn Sie die Berechtigung zum Installieren neuer Software haben, verwenden Sie apt install
oder yum install
oder brew install
um den Thrift-Compiler zu installieren. (Wenn Sie den Thrift-Compiler bereits installiert haben, überspringen Sie diesen Schritt.) Anschließend können Sie beim Ausführen von Maven den folgenden Parameter hinzufügen: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
.
Wenn nicht, müssen Sie den Thrift-Compiler kompilieren und dazu zunächst eine Boost-Bibliothek installieren. Deshalb haben wir selbst einen Unix-Compiler kompiliert und auf GitHub gestellt. Mit Hilfe eines Maven-Plugins wird er beim Kompilieren automatisch heruntergeladen. Dieser Compiler funktioniert einwandfrei mit gcc8 oder höher, Ubuntu MacOS und CentOS, frühere Versionen und andere Betriebssysteme können jedoch nicht garantiert werden.
Wenn Sie den Thrift-Compiler aufgrund eines Netzwerkproblems nicht automatisch herunterladen können, können Sie ihn selbst herunterladen und dann entweder: Ihre Thrift-Datei in {project_root}thrifttargettoolsthrift_0.12.0_0.13.0_linux.exe
umbenennen ; Oder fügen Sie Maven-Befehle hinzu: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
.
Den Quellcode können Sie hier herunterladen:
git clone https://github.com/apache/iotdb.git
Der Standard-Entwicklungszweig ist der Master-Zweig, wenn Sie eine veröffentlichte Version xxx verwenden möchten:
git checkout vx.x.x
Oder checken Sie zum Zweig einer großen Version aus, z. B. ist der Zweig von 1.0 rel/1.0.
git checkout rel/x.x
Unter dem Root-Pfad von iotdb:
> mvn clean package -pl distribution -am -DskipTests
Nach der Erstellung befindet sich die IoTDB-Distribution im Ordner „distribution/target“.
Unter dem Pfad iotdb/iotdb-client:
> mvn clean package -pl cli -am -DskipTests
Nach dem Erstellen befindet sich die IoTDB-CLI im Ordner „cli/target“.
Verwenden Sie -P with-cpp
zum Kompilieren des CPP-Clients. (Weitere Informationen finden Sie in der Readme-Datei von client-cpp.)
HINWEIS: Verzeichnisse „ thrift/target/generated-sources/thrift
“, „ thrift-sync/target/generated-sources/thrift
“, „ thrift-cluster/target/generated-sources/thrift
“, „ thrift-influxdb/target/generated-sources/thrift
“ und „ antlr/target/generated-sources/antlr4
“ müssen zu den Quellwurzeln hinzugefügt werden, um Kompilierungsfehler in der IDE zu vermeiden.
In IDEA müssen Sie nur mit der rechten Maustaste auf den Stammprojektnamen klicken und „ Maven->Reload Project
“ wählen, nachdem Sie mvn package
erfolgreich ausgeführt haben.
Konfigurationsdateien befinden sich im Ordner „conf“.
datanode-env.bat
, datanode-env.sh
),iotdb-datanode.properties
)logback.xml
).Weitere Informationen finden Sie im Konfigurationshandbuch.
Sie können die folgenden Schritte ausführen, um die Installation zu testen. Wenn nach der Ausführung kein Fehler zurückgegeben wird, ist die Installation abgeschlossen.
Benutzer können 1C1D IoTDB mit dem Start-Standalone-Skript im Sbin-Ordner starten.
# Unix/OS X
> sbin/start-standalone.sh
# Windows
> sbinstart-standalone.bat
IoTDB bietet verschiedene Möglichkeiten zur Interaktion mit dem Server. Hier stellen wir die grundlegenden Schritte der Verwendung des Cli-Tools zum Einfügen und Abfragen von Daten vor.
Nach der Installation von IoTDB gibt es einen Standardbenutzer „root“, dessen Standardkennwort ebenfalls „root“ ist. Benutzer können diesen Standardbenutzer verwenden, um sich bei Cli anzumelden, um IoTDB zu verwenden. Das Startskript von Cli ist das Start-Cli-Skript im Ordner sbin. Beim Ausführen des Skripts sollte der Benutzer IP, PORT, USER_NAME und PASSWORD zuweisen. Die Standardparameter sind „-h 127.0.0.1 -p 6667 -u root -pw -root“.
Hier ist der Befehl zum Starten der 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
Die Befehlszeilen-CLI ist interaktiv, daher sollten Sie das Willkommenslogo und die Anweisungen sehen, wenn alles bereit ist:
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _
| | .--.|_/ | | _| | | `. | |_) |
| | / .'` | | | | | | | __'.
_| |_| __. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
IoTDB> login successfully
IoTDB>
Lassen Sie uns nun die Art und Weise vorstellen, Zeitreihen zu erstellen, Daten einzufügen und Daten abzufragen.
Die Daten in IoTDB sind als Zeitreihen organisiert. Jede Zeitreihe umfasst mehrere Daten-Zeit-Paare und gehört einer Datenbank. Bevor wir eine Zeitreihe definieren, sollten wir zunächst eine Datenbank mit CREATE DATABASE definieren. Hier ist ein Beispiel:
IoTDB> CREATE DATABASE root.ln
Wir können SHOW DATABASES auch verwenden, um die erstellte Datenbank zu überprüfen:
IoTDB> SHOW DATABASES
+-------------+
| Database|
+-------------+
| root.ln|
+-------------+
Total line number = 1
Nachdem die Datenbank eingerichtet ist, können wir mit CREATE TIMESERIES eine neue Zeitreihe erstellen. Beim Erstellen einer Zeitreihe sollten wir ihren Datentyp und das Kodierungsschema definieren. Hier erstellen wir zwei Zeitreihen:
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
Um die spezifischen Zeitreihen abzufragen, können wir SHOW TIMESERIES verwenden. stellen den Ort der Zeitreihe dar. Der Standardwert ist „null“, wodurch alle Zeitreihen im System abgefragt werden (dasselbe wie bei der Verwendung von „SHOW TIMESERIES root“). Hier einige Beispiele:
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
Das Einfügen von Zeitreihendaten ist ein grundlegender Vorgang von IoTDB. Sie können diesen Vorgang mit dem Befehl „INSERT“ abschließen. Vor dem Einfügen sollten Sie den Zeitstempel und den Suffix-Pfadnamen zuweisen:
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)
Die soeben eingegebenen Daten werden wie folgt angezeigt:
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
Sie können auch mehrere Zeitreihendaten mit einer SQL-Anweisung abfragen:
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
Um die Zeitzone in Cli zu ändern, können Sie das folgende SQL verwenden:
IoTDB> SET time_zone=+08:00
Time zone has set to +08:00
IoTDB> SHOW time_zone
Current time zone: Asia/Shanghai
Wenn Sie hinzufügen, wird das Abfrageergebnis mit der neuen Zeitzone angezeigt.
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
Die Befehle zum Beenden der CLI sind:
IoTDB> quit
or
IoTDB> exit
Weitere Informationen zu den von IoTDB SQL unterstützten Befehlen finden Sie im Benutzerhandbuch.
Der Server kann mit „Strg-C“ oder dem folgenden Skript gestoppt werden:
# Unix/OS X
> sbin/stop-standalone.sh
# Windows
> sbinstop-standalone.bat
siehe Die Verwendung des CSV-Import- und Export-Tools
siehe Häufige Fragen beim Kompilieren des Quellcodes
tietouqiao
oder liutaohua001
, und dann laden wir Sie in die Gruppe ein.Weitere Informationen finden Sie unter Treten Sie der Community bei!