আমি একটি মাইএসকিউএল ডাটাবেসে একটি ভর স্পেকট্রোমিটার থেকে স্ক্যানগুলি সংরক্ষণের পরিকল্পনা করছি এবং এই পরিমাণ ডেটা সংরক্ষণ এবং বিশ্লেষণ দূরবর্তীভাবে সম্ভব কিনা তা জানতে চাই। আমি জানি পরিবেশের উপর নির্ভর করে পারফরম্যান্স বিভিন্নভাবে পরিবর্তিত হয়, তবে আমি মোটামুটি আকারের সন্ধান করছি: ক্যোরিয়াসটি 5 দিন বা 5 মিলিসেকেন্ডে লাগবে?
ছক পূরণ করা
প্রতিটি ইনপুট ফাইলটিতে স্পেকট্রোমিটারের একক রান থাকে; প্রতিটি রান স্ক্যানের একটি সেট নিয়ে গঠিত, এবং প্রতিটি স্ক্যানে ডেটাপয়েন্টগুলির একটি আদেশযুক্ত অ্যারে থাকে। এখানে কিছুটা মেটাডেটা রয়েছে, তবে বেশিরভাগ ফাইলটি অ্যারে 32- বা 64-বিট ইনট বা ভাসমান নিয়ে গঠিত।
হোস্ট সিস্টেম
| ---------------- + + ------------------------------- | | ওএস | উইন্ডোজ 2008-বিট | | মাইএসকিউএল সংস্করণ | 5.5.24 (x86_64) | | সিপিইউ | 2x জিয়ন ই 5420 (মোট 8 টি কোর) | | র্যাম | 8 জিবি | | এসএসডি ফাইল সিস্টেম | 500 জিআইবি | | এইচডিডি রেড | 12 টিআইবি | | ---------------- + + ------------------------------- |
উপেক্ষিত প্রসেসরের সময় ব্যবহার করে সার্ভারে আরও কিছু পরিষেবা চলছে।
ফাইলের পরিসংখ্যান
| ------------------ + + -------------- | | ফাইল সংখ্যা | ,000 16,000 | | মোট আকার | 1.3 টিআইবি | | মিনিট আকার | 0 বাইট | | সর্বাধিক আকার | 12 জিআইবি | | গড় | 800 এমআইবি | | মিডিয়ান | 500 এমআইবি | | মোট ডেটাপয়েন্টস | Billion 200 বিলিয়ন | | ------------------ + + -------------- |
মোট ডেটাপয়েন্টগুলির সংখ্যা একটি খুব রুক্ষ অনুমান।
প্রস্তাবিত স্কিমা
আমি কিছু "অধিকার" (অর্থাত পাগল মত ডেটা স্বাভাবিক) করছেন এবং তাই একটি হবে পরিকল্পনা করছি runs
টেবিল, একটা spectra
করার জন্য একটি বিদেশী কী দিয়ে টেবিল runs
, এবং একটি datapoints
একটি বিদেশী কী দিয়ে টেবিল spectra
।
200 বিলিয়ন ডেটাপয়েন্ট প্রশ্ন
আমি একাধিক বর্ণালী এবং সম্ভবত এমনকি একাধিক রান জুড়ে বিশ্লেষণ করতে যাচ্ছি, ফলে কোয়েরিগুলি মিলিয়ন লক্ষ সারি স্পর্শ করতে পারে। ধরে নিচ্ছি আমি সবকিছু ঠিকঠাকভাবে সূচক করেছি (যা অন্য প্রশ্নের জন্য একটি বিষয়) এবং পুরো নেটওয়ার্ক জুড়ে কয়েক'শ এমআইবি বদলানোর চেষ্টা করছি না, এটি মাইএসকিউএলকে হ্যান্ডেল করা কি দূরবর্তীভাবে প্রশংসনীয়?
অতিরিক্ত তথ্য
এক্সএমএল-ভিত্তিক এমজেএমএল ফর্ম্যাটে স্ক্যানের ডেটা ফাইল থেকে আসবে
। এই ফর্ম্যাটটির মাংস সেই
<binaryDataArrayList>
উপাদানগুলিতে রয়েছে যেখানে ডেটা সঞ্চিত থাকে। প্রতিটি স্ক্যান> = 2 <binaryDataArray>
উপাদান তৈরি করে যা একত্রে ফর্মের একটি 2-মাত্রিক (বা আরও) অ্যারে গঠন করে [[123.456, 234.567, ...], ...]
।
এই ডেটাগুলি একবারে লেখার জন্য, তাই আপডেট সম্পাদনা এবং লেনদেনের সুরক্ষা উদ্বেগ নয়।
একটি ডাটাবেস স্কিমার জন্য আমার নির্বোধ পরিকল্পনাটি হ'ল:
runs
টেবিল
| কলামের নাম | প্রকার | | ------------- + + ------------- | | আইডি | প্রাথমিক কী | | সূচনা_কাল | টাইমস্ট্যাম্প | | নাম | ভোচারার | | ------------- + + ------------- |
spectra
টেবিল
| কলামের নাম | প্রকার | | ---------------- + + ------------- | | আইডি | প্রাথমিক কী | | নাম | ভোচারার | | সূচী | আইএনটি | | বর্ণালী_প্রকার | আইএনটি | | উপস্থাপনা | আইএনটি | | রান_আইডি | বিদেশী কী | | ---------------- + + ------------- |
datapoints
টেবিল
| কলামের নাম | প্রকার | | ------------- + + ------------- | | আইডি | প্রাথমিক কী | | বর্ণালী_আইডি | বিদেশী কী | | এমজেড | ডাবল | | num_counts | ডাবল | | সূচী | আইএনটি | | ------------- + + ------------- |
এটা কি যুক্তিসঙ্গত?
সুতরাং, আপনি যেমন অনুমান করতে সক্ষম হয়েছিলেন, আমি প্রোগ্রামার, ল্যাবটিতে জীববিজ্ঞানী নই, তাই আমি বিজ্ঞানকে প্রায় ততটা জানি না এবং প্রকৃত বিজ্ঞানীরাও জানেন না।
আমি যে ধরণের ডেটা নিয়ে কাজ করব তার একক বর্ণালী (স্ক্যান) এর একটি প্লট এখানে রয়েছে:
সফটওয়্যারটির লক্ষ্য হ'ল চূড়াগুলি কোথায় এবং কত তাৎপর্যপূর্ণ তা নির্ধারণ করা। এখনই এটি বের করার জন্য আমরা মালিকানাধীন সফ্টওয়্যার প্যাকেজটি ব্যবহার করি, তবে আমরা আমাদের নিজস্ব বিশ্লেষণ প্রোগ্রামটি লিখতে চাই (আরে) যাতে আমরা জানতে পারি যে শিটগুলির নিচে হেক কী চলছে। যেমন আপনি দেখতে পাচ্ছেন, প্রচুর উপাত্ত অবিস্মরণীয়, তবে আমরা আমাদের অ্যালগরিদম মিস করা সম্ভাব্য-দরকারী ডেটা ফেলে দিতে চাই না। আমাদের যখন সম্ভাব্য শিখরগুলির একটি তালিকা পাওয়া যায় যা দিয়ে আমরা সন্তুষ্ট হয়ে যাই, বাকী পাইপলাইন ডেটাপয়েন্টগুলির কাঁচা তালিকার পরিবর্তে সেই শীর্ষ তালিকাটি ব্যবহার করবে। আমি অনুমান করি যে এটি কাঁচা ডেটাপয়েন্টগুলিকে একটি বড় অঙ্কুর হিসাবে সংরক্ষণ করার জন্য যথেষ্ট হবে, তাই প্রয়োজন হলে এগুলি পুনঃব্যবস্থা করা যেতে পারে, তবে কেবল পৃথক ডাটাবেস এন্ট্রি হিসাবে কেবল শিখরগুলি রাখুন। সেক্ষেত্রে স্পেকট্রামে কেবল কয়েক ডজন শৃঙ্গ থাকবে, তাই পাগল স্কেলিং স্টাফ উচিত নয় '