منصوبے کے بارے میں

TDengine ایک اوپن سورس ٹائم سیریز ڈیٹا بیس (TSDB) ہے جسے Internet of Things، منسلک گاڑیوں اور صنعتی IoT کے کاموں کے لیے تیار کیا گیا ہے۔ اس کا مقصد بہت سے سینسرز اور کلیکٹرز سے پیدا ہونے والے ڈیٹا کی بڑی مقدار کا ریئل ٹائم انجسٹن، پروسیسنگ اور تجزیہ کرنا ہے، اور یہ بڑی تعداد میں کلیکشن پوائنٹس کے لیے ہائی کارڈینالٹی تعیناتیوں کی حمایت کرتا ہے۔ پروجیکٹ کی ڈیزائن خصوصیات میں ایک ڈسٹری بیوٹڈ، کلاؤڈ نیٹیو آرکیٹیکچر شامل ہے جس میں شارڈنگ اور پارٹیشننگ، کمپیوٹ اور اسٹوریج کی علیحدگی، RAFT پر مبنی ریپلیکیشن، Kubernetes تعیناتی کی حمایت اور آبزرو ایبلٹی انٹیگریشن شامل ہے۔ کیشنگ، اسٹریم پروسیسنگ اور سبسکرپشنز کے لیے الگ اجزاء کے بجائے، TDengine ان صلاحیتوں کو ڈیٹا بیس کے اندر ہی یکجا کرتا ہے۔ ٹائم سیریز ٹاسک جیسے کہ پیش گوئی (forecasting)، غیر معمولی صورتحال کی شناخت (anomaly detection)، امپیوٹیشن اور درجہ بندی کے لیے TDgpt نامی ایک AI جزو شامل ہے، جو ٹائم سیریز فاؤنڈیشن ماڈلز، لارج لینگویج ماڈلز، مشین لرننگ ماڈلز اور روایتی الگورتھم سے منسلک ہو سکتا ہے۔ صارفین، سسٹم ڈیزائن اور آرکیٹیکچر کے لیے دستاویزات پروجیکٹ کی ڈاکومنٹیشن سائٹ پر موجود ہیں، جبکہ تعیناتی کے اختیارات میں کنٹینرز، انسٹالیشن پیکیجز، Kubernetes، یا ہوسٹڈ کلاؤڈ سروس شامل ہیں۔ ریپوزٹری کا README ان ڈویلپرز کے لیے ہے جو TDengine کو سورس سے بنانا، ٹیسٹ کرنا، ریلیز کرنا اور پیکیج کرنا چاہتے ہیں۔ بلڈ کی ضروریات میں Linux (Ubuntu 18.04+, CentOS 7+)، macOS 10.15+، اور محدود Windows سپورٹ شامل ہے، جو x86_64 یا ARM64 پر چلتا ہے، جس کے لیے تقریباً 4 GB RAM اور 2 GB فری ڈسک کی سفارش کی گئی ہے۔ ٹولنگ کے لیے C/C++ ٹول چین، CMake 3.21 یا اس سے نیا، git، اختیاری طور پر ٹیسٹ فریم ورک کے لیے Python 3 اور taosAdapter یا taosKeeper جیسے اجزاء کے لیے Go 1.23+، ساتھ ہی taos-gen جزو کے لیے اختیاری ccache اور Conan 2.x کی ضرورت ہوتی ہے۔ بلڈنگ CMake کے ذریعے آؤٹ-آف-ٹری کی جاتی ہے۔ پہلے بلڈ میں -DBUILD_CONTRIB=ON کو فعال کرنا ضروری ہے تاکہ xxhash، zstd اور lz4 جیسی بیرونی ڈیپینڈنسیز کو حاصل کر کے .externals/ میں کمپائل کیا جا سکے؛ بعد کے بلڈز ان آرٹفیکٹس کو دوبارہ استعمال کرتے ہیں۔ ایک عام ترتیب ریپوزٹری کو کلون کرنا، ڈیبگ ڈائریکٹری بنانا، cmake چلانا اور پھر make کرنا ہے۔ کمانڈ لائن ٹولز کے ساتھ ریلیز بلڈ کے لیے -DCMAKE_BUILD_TYPE=Release اور -DBUILD_TOOLS=ON استعمال کیا جاتا ہے۔ README میں ڈیفالٹس کے ساتھ ایک جامع آپشن ٹیبل موجود ہے، جس میں BUILD_TEST، BUILD_TOOLS، BUILD_SANITIZER، BUILD_COVERAGE، BUILD_JEMALLOC، BUILD_WEBSOCKET، BUILD_WITH_UDF، BUILD_GEOS، RUST_BINDINGS، اسٹوریج انجن کے انتخاب (LevelDB, RocksDB, SQLite, Berkeley DB)، کمپریشن آپشنز (LZ4, LZMA2, TSZ) اور کلاؤڈ آبجیکٹ آپشنز (S3, COS) شامل ہیں۔ بلڈ آرٹفیکٹس debug/build/bin (مثلاً taosd سرور ڈیمن، taos CLI کلائنٹ، اور BUILD_TOOLS=ON کے ساتھ taosBenchmark بنچ مارک ٹول اور taosdump امپورٹ/ایکسپورٹ ٹول) اور debug/build/lib (مثلاً Linux پر libtaos.so) میں محفوظ ہوتے ہیں۔ ٹیسٹنگ کی دو تہیں ہیں: یونٹ ٹیسٹ جو googletest کے ساتھ بنائے گئے ہیں اور ctest کے ذریعے چلائے جاتے ہیں، اور tests/ کے تحت ایک Python پر مبنی انٹیگریشن ٹیسٹ فریم ورک، جہاں ایک جنریٹڈ کنفیگریشن کے ساتھ ٹیسٹ سرور شروع کیا جاتا ہے اور اسکرپٹ کے ذریعے انفرادی سسٹم ٹیسٹ چلائے جاتے ہیں۔ کوریج رپورٹنگ lcov پر مبنی اسکرپٹس کے ذریعے مقامی طور پر تیار کی جا سکتی ہے، اور پروجیکٹ ایک پبلک کوریج ڈیش بورڈ سے منسلک ہے۔ پیکیجنگ source/taos-community/packaging/pack_community_tar.sh کے ذریعے سنبھالی جاتی ہے، جو کمیونٹی ٹار بالز تیار کرتا ہے جن میں taosd، taos، taosBenchmark، taosdump، taosudf، libtaos.so، libtaosnative.so، ہیڈرز، C مثالیں اور انسٹال اسکرپٹس شامل ہوتے ہیں۔ وہ اجزاء جو دوسری ریپوزٹریز میں ہیں یا جنہیں الگ بلڈ فلو کی ضرورت ہے، جیسے taoskeeper، taos-explorer، taosx، کنیکٹرز اور taosinspect، واضح طور پر شامل نہیں ہیں۔ اسکرپٹ بلڈ ڈائریکٹری، ورژن نمبر، ہم آہنگ ورژن اور ریلیز استحکام کے لیے فلیگز قبول کرتا ہے، اور آؤٹ پٹ کو source/taos-community/release/ میں الگ سرور اور کلائنٹ آرکائیوز کے طور پر لکھتا ہے۔ انسٹالیشن آفیشل انسٹالر ٹار بال کو ایکسٹریکٹ کر کے اور install.sh چلا کر، یا براہ راست لوکل سورس بلڈ کے ذریعے make install کے ذریعے کی جا سکتی ہے۔ بلڈ ٹری میں مقامی طور پر چلانے کے لیے کنفیگریشن ڈائریکٹری کے ساتھ taosd شروع کیا جاتا ہے اور پھر دوسری شیل میں taos CLI کے ساتھ منسلک کیا جاتا ہے؛ پیکیجڈ انسٹالیشن کے بعد، سرور systemctl کے ذریعے شروع کیا جاتا ہے اور taos کلائنٹ کو منسلک ہونے کے لیے استعمال کیا جاتا ہے۔ پروجیکٹ ایک بلڈ چیک GitHub Actions ورک فلو شائع کرتا ہے اور معاونین کو کنٹری بیوشن گائیڈ لائنز کی طرف رہنمائی کرتا ہے۔ یہ Discord، Stack Overflow اور سوشل پلیٹ فارمز پر کمیونٹی چینلز بھی فراہم کرتا ہے، اور ایک ہوسٹڈ کلاؤڈ پیشکش کے لنکس دیتا ہے۔ TDengine GNU Affero General Public License 3.0 کے تحت لائسنس شدہ ہے، جس کے بنیادی ماڈیولز بشمول کلسٹر فیچرز اور AI ایجنٹ اوپن سورس لائسنس کے تحت دستیاب بتائے گئے ہیں۔