প্রকল্প সম্পর্কে
TDengine হলো একটি ওপেন-সোর্স টাইম-সিরিজ ডাটাবেস (TSDB) যা ইন্টারনেট অফ থিংস (IoT), কানেক্টেড-কার এবং ইন্ডাস্ট্রিয়াল IoT ওয়ার্কলোডের জন্য তৈরি। এর মূল লক্ষ্য হলো অনেক সেন্সর এবং কালেক্টর থেকে আসা বিপুল পরিমাণ ডেটার রিয়েল-টাইম ইনজেশন, প্রসেসিং এবং অ্যানালাইসিস করা। এটি উচ্চ-কার্ডিনালিটি ডেপ্লয়মেন্ট সমর্থন করে।
প্রকল্পটির ডিজাইন বৈশিষ্ট্যগুলোর মধ্যে রয়েছে একটি ডিস্ট্রিবিউটেড, ক্লাউড-নেটিভ আর্কিটেকচার যাতে শার্ডিং এবং পার্টিশনিং, কম্পিউট এবং স্টোরেজের পৃথকীকরণ, RAFT-ভিত্তিক রেপ্লিকেশন, Kubernetes ডেপ্লয়মেন্ট সাপোর্ট এবং অবজারভেবিলিটি ইন্টিগ্রেশন অন্তর্ভুক্ত। ক্যাশিং, স্ট্রিম প্রসেসিং এবং সাবস্ক্রিপশনের জন্য আলাদা উপাদানের পরিবর্তে TDengine এই ক্ষমতাগুলো ডাটাবেসের মধ্যেই যুক্ত করেছে। টাইম-সিরিজ টাস্ক যেমন ফোরকাস্টিং, অ্যানোমালি ডিটেকশন, ইম্পুটেশন এবং ক্লাসিফিকেশনের জন্য 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-এর মতো এক্সটারনাল ডিপেন্ডেন্সিগুলো ফেচ এবং কম্পাইল করা যায়; পরবর্তী বিল্ডগুলোতে এই আর্টিফ্যাক্টগুলো পুনরায় ব্যবহৃত হয়। সাধারণ সিকোয়েন্স হলো রিপোজিটরি ক্লোন করা, একটি ডিবাগ ডিরেক্টরি তৈরি করা, 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 এজেন্টসহ) ওপেন-সোর্স লাইসেন্সের অধীনে উপলব্ধ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.