আমি এমন একটি সিস্টেম তৈরি করছি যা এসএনএমপি ব্যবহার করে 5 মিনিটের ব্যবধানে (সম্ভবত) 5 মিনিটের ব্যবধানে সিপিইউ ব্যবহার, ডিস্ক ব্যবহার, তাপমাত্রা ইত্যাদির মতো পরিবর্তিত মেট্রিকের ডেটার জন্য পোল করে। চূড়ান্ত লক্ষ্য হ'ল সময়-সিরিজ গ্রাফ আকারে সিস্টেমের ব্যবহারকারীকে ভিজ্যুয়ালাইজেশন সরবরাহ করা।
আমি অতীতে আরআরডিটুল ব্যবহারের দিকে নজর রেখেছি তবে ক্যাপচারিত ডেটা অনির্দিষ্টকালের জন্য সংরক্ষণ করা আমার প্রকল্পের জন্য গুরুত্বপূর্ণ এবং আমি ক্যাপচারিত ডেটাতে উচ্চ স্তরের এবং আরও নমনীয় অ্যাক্সেস চাই। সুতরাং আমার প্রশ্নটি আসলে:
গ্রাফিংয়ের জন্য ডেটা জিজ্ঞাসা করার সময় পারফরম্যান্স সম্পর্কিত একটি রিলেশনাল ডাটাবেস (যেমন মাইএসকিউএল বা পোস্টগ্রিএসকিউএল) বা একটি অ-রিলেশনাল বা নোএসকিউএল ডাটাবেস (যেমন মঙ্গোডিবি বা রেডিস) আরও ভাল।
সম্বন্ধযুক্ত
একটি রিলেশনাল ডাটাবেস দেওয়া, আমি একটি data_instances
টেবিল ব্যবহার করব , যার মধ্যে প্রতিটি মেট্রিকের জন্য সমস্ত ডিভাইসের জন্য পরিমাপ করা ডেটার প্রতিটি উদাহরণ নিম্নলিখিত ক্ষেত্রগুলি সহ সংরক্ষণ করা হবে:
কর্মক্ষেত্র id
fk_to_device
fk_to_metric
metric_value
timestamp
যখন আমি কোনও নির্দিষ্ট ডিভাইসে কোনও নির্দিষ্ট মেট্রিকের জন্য একটি গ্রাফ আঁকতে চাই, তখন আমাকে অবশ্যই এই একক টেবিলটি অন্যান্য ডিভাইসগুলি ফিল্টার করে এবং এই ডিভাইসের জন্য অন্যান্য মেট্রিকগুলি বিশ্লেষণ করা উচিত:
SELECT metric_value, timestamp FROM data_instances
WHERE fk_to_device=1 AND fk_to_metric=2
এই টেবিলের সারিগুলির সংখ্যা হবে:
d * m_d * f * t
ডিভাইসেরd
সংখ্যাটি কোথায় , সমস্ত ডিভাইসের জন্য মেট্রিকের সংশ্লেষিত সংখ্যা , এটিই কী ফ্রিকোয়েন্সি হয় যেখানে ডেটা পোল করা হয় এবং সিস্টেমটি ডেটা সংগ্রহের সময়কালের পরিমাণ ism_d
f
t
একজন ব্যবহারকারী এক বছরের জন্য প্রতি 5 মিনিটে 3 টি ডিভাইসের জন্য 10 মেট্রিক রেকর্ড করে, আমাদের কাছে কেবল 5 মিলিয়ন রেকর্ড থাকবে।
ইনডেক্সে
ইনডেক্স ছাড়া fk_to_device
এবং fk_to_metric
এই ক্রমাগত প্রসারিত টেবিলটি স্ক্যান করতে খুব বেশি সময় লাগবে। সুতরাং উপরোক্ত ক্ষেত্রগুলি সূচীকরণ এবং এছাড়াও timestamp
(স্থানীয় সময়ের সাথে গ্রাফ তৈরি করার জন্য) প্রয়োজনীয়তা।
অ-সম্পর্কিত সম্পর্কিত (NoSQL)
মঙ্গোডিবির একটি সংগ্রহের ধারণা রয়েছে , টেবিলের বিপরীতে এগুলি সেটআপ ব্যতীত প্রোগ্রামগতভাবে তৈরি করা যায়। এগুলির সাহায্যে আমি প্রতিটি ডিভাইসের জন্য ডেটা স্টোরেজ বা প্রতিটি ডিভাইসের জন্য রেকর্ডকৃত প্রতিটি মেট্রিক ভাগ করতে পারতাম।
নোএসকিউএল নিয়ে আমার কোনও অভিজ্ঞতা নেই এবং তারা সূচীকরণের মতো কোনও ক্যোয়ারী পারফরম্যান্স বাড়ানোর বৈশিষ্ট্যগুলি সরবরাহ করে কিনা তা আমি জানি না, তবে পূর্ববর্তী অনুচ্ছেদে নোএসকিউএল-র অধীনে ডেটা সংরক্ষণ করা হয় এমন কাঠামোর মধ্যে বেশিরভাগ traditionalতিহ্যবাহী সম্পর্কিত সম্পর্কিত জিজ্ঞাসা কাজ করার প্রস্তাব দেওয়া হয়েছে।
অমীমাংসিত
সঠিক ইনডেক্সিংয়ের সাথে কি কোনও সম্পর্কযুক্ত সমাধান বছরের মধ্যে একটি ক্রল হ্রাস পাবে? অথবা নোএসকিউএল পদ্ধতির সংগ্রহ ভিত্তিক কাঠামো (যা আমার সঞ্চিত ডেটার মানসিক মডেলের সাথে মেলে) একটি লক্ষণীয় সুবিধা সরবরাহ করে?