الإنجليزية | 中文
IoTDB (قاعدة بيانات إنترنت الأشياء) هو نظام لإدارة البيانات لبيانات السلاسل الزمنية، والذي يوفر للمستخدمين خدمات محددة، بما في ذلك جمع البيانات وتخزينها وتحليلها. نظرًا لبنيته خفيفة الوزن وأدائه العالي وميزاته القابلة للاستخدام، إلى جانب تكامله السلس مع النظام البيئي Hadoop وSpark، يلبي IoTDB متطلبات تخزين مجموعات البيانات الضخمة وإدخال البيانات عالية الإنتاجية وتحليل البيانات المعقدة في مجال إنترنت الأشياء الصناعي.
انقر للحصول على مزيد من المعلومات
يعتمد 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 compiler 0.13.0 (أو أعلى) لإنشاء كود Thrift Java. يوفر Thrift رسميًا مترجمًا ثنائيًا لنظام التشغيل Windows، لكن لسوء الحظ، لا يوفر ذلك لأنظمة تشغيل Unix.
إذا كان لديك إذن بتثبيت برنامج جديد، فاستخدم apt install
أو yum install
أو brew install
لتثبيت برنامج التحويل البرمجي Thrift. (إذا كنت قد قمت بالفعل بتثبيت مترجم التوفير، فتخط هذه الخطوة.) بعد ذلك، يمكنك إضافة المعلمة التالية عند تشغيل Maven: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
.
إذا لم يكن الأمر كذلك، فيجب عليك تجميع مترجم التوفير، ويتطلب منك تثبيت مكتبة التعزيز أولاً. لذلك، قمنا بتجميع مترجم Unix بأنفسنا ووضعه على GitHub، وبمساعدة مكون إضافي مخضرم، سيتم تنزيله تلقائيًا أثناء التجميع. يعمل هذا المترجم بشكل جيد مع gcc8 أو الإصدارات الأحدث، وUbuntu MacOS، وCentOS، لكن الإصدارات السابقة وأنظمة التشغيل الأخرى ليست مضمونة.
إذا لم تتمكن من تنزيل مترجم التوفير تلقائيًا بسبب مشكلة في الشبكة، فيمكنك تنزيله بنفسك، ثم إما: إعادة تسمية ملف التوفير الخاص بك إلى {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
فرع التطوير الافتراضي هو الفرع الرئيسي، إذا كنت تريد استخدام الإصدار الذي تم إصداره 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 في المجلد: "التوزيع/الهدف".
ضمن مسار عميل iotdb/iotdb:
> mvn clean package -pl cli -am -DskipTests
بعد الإنشاء، يوجد IoTDB cli في المجلد "cli/target".
استخدم -P with-cpp
لتجميع عميل cpp. (لمزيد من التفاصيل، اقرأ الملف التمهيدي الخاص بـ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، يوجد مستخدم افتراضي "جذر"، وكلمة المرور الافتراضية الخاصة به هي أيضًا "جذر". يمكن للمستخدمين استخدام هذا المستخدم الافتراضي لتسجيل الدخول إلى Cli لاستخدام IoTDB. البرنامج النصي لبدء التشغيل لـ 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
بعد تعيين قاعدة البيانات، يمكننا استخدام إنشاء سلاسل زمنية لإنشاء سلاسل زمنية جديدة. عند إنشاء سلسلة زمنية، يجب علينا تحديد نوع بياناتها ونظام التشفير. هنا نقوم بإنشاء سلسلتين زمنيتين:
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 . تمثل موقع السلاسل الزمنية. القيمة الافتراضية هي "خالية"، والتي تستعلم عن جميع السلاسل الزمنية في النظام (مثل استخدام "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
، وبعد ذلك سندعوك إلى المجموعة.انظر انضم إلى المجتمع للمزيد!