NoSQL সংক্ষিপ্ত রূপটি 1998 সালে তৈরি করা হয়েছিল। অনেকে মনে করেন NoSQL একটি অবমাননাকর শব্দ যা SQL এ খোঁচা দেওয়ার জন্য তৈরি করা হয়েছে। বাস্তবে, শব্দটির অর্থ শুধুমাত্র এসকিউএল নয়। ধারণাটি হল যে উভয় প্রযুক্তিই সহাবস্থান করতে পারে এবং প্রতিটিরই তার জায়গা আছে। নোএসকিউএল আন্দোলন বিগত কয়েক বছরে খবরে রয়েছে কারণ ওয়েব 2.0 নেতাদের অনেকেই একটি NoSQL প্রযুক্তি গ্রহণ করেছেন। Facebook, Twitter, Digg, Amazon, LinkedIn, এবং Google এর মতো কোম্পানিগুলি সকলেই এক বা অন্যভাবে NoSQL ব্যবহার করে। আসুন NoSQL ভেঙে দেই যাতে আপনি এটি আপনার CIO বা এমনকি আপনার সহকর্মীদের কাছে ব্যাখ্যা করতে পারেন।
NoSQL একটি প্রয়োজন থেকে উদ্ভূত
ডেটা স্টোরেজ: বিশ্বের সঞ্চিত ডিজিটাল ডেটা এক্সাবাইটে পরিমাপ করা হয়। একটি এক্সাবাইট হল এক বিলিয়ন গিগাবাইট (GB) ডেটার সমান। Internet.com এর মতে, 2006 সালে সংরক্ষিত ডেটার পরিমাণ ছিল 161 এক্সাবাইট। মাত্র 4 বছর পরে 2010 সালে, সংরক্ষিত ডেটার পরিমাণ প্রায় 1,000 ExaBytes হবে যা 500% এর বেশি। অন্য কথায়, বিশ্বে প্রচুর ডেটা সংরক্ষণ করা হচ্ছে এবং এটি কেবল বাড়তে থাকবে৷
আন্তঃসংযুক্ত ডেটা: ডেটা আরও সংযুক্ত হতে থাকে। ওয়েবের সৃষ্টি হাইপারলিঙ্কে লালিত হয়েছে, ব্লগে পিংব্যাক রয়েছে এবং প্রতিটি বড় সামাজিক নেটওয়ার্ক সিস্টেমে ট্যাগ রয়েছে যা জিনিসগুলিকে একত্রিত করে। প্রধান সিস্টেমগুলিকে আন্তঃসংযুক্ত করার জন্য তৈরি করা হয়৷
জটিল ডেটা স্ট্রাকচার: NoSQL সহজে হায়ারার্কিক্যাল নেস্টেড ডেটা স্ট্রাকচার পরিচালনা করতে পারে। এসকিউএল-এ একই জিনিসটি সম্পন্ন করার জন্য, আপনার সমস্ত ধরণের কী সহ একাধিক রিলেশনাল টেবিলের প্রয়োজন হবে। উপরন্তু, কর্মক্ষমতা এবং ডেটা জটিলতার মধ্যে একটি সম্পর্ক আছে। একটি ঐতিহ্যগত RDBMS-এ কর্মক্ষমতা হ্রাস পেতে পারে কারণ আমরা সামাজিক নেটওয়ার্কিং অ্যাপ্লিকেশন এবং শব্দার্থিক ওয়েবে প্রয়োজনীয় বিপুল পরিমাণ ডেটা সঞ্চয় করি৷
NoSQL কি?
আমি অনুমান করি NoSQL সংজ্ঞায়িত করার একটি উপায় হল এটি কী নয় তা বিবেচনা করা। এটি এসকিউএল নয় এবং এটি সম্পর্কযুক্ত নয়। নাম অনুসারে, এটি একটি RDBMS-এর প্রতিস্থাপন নয় তবে এটির প্রশংসা করে৷ NoSQL ডিস্ট্রিবিউটেড ডাটা স্টোরের জন্য ডিজাইন করা হয়েছে খুব বড় স্কেল ডেটার প্রয়োজনের জন্য। Facebook এর 500,000,000 ব্যবহারকারী বা টুইটার নিয়ে চিন্তা করুন যা প্রতিদিন টেরাবিট ডেটা জমা করে৷
একটি NoSQL ডাটাবেসে, কোন নির্দিষ্ট স্কিমা নেই এবং কোন যোগদান নেই। একটি RDBMS দ্রুত এবং দ্রুত হার্ডওয়্যার পেয়ে এবং মেমরি যোগ করে "স্কেল আপ" করে। অন্যদিকে NoSQL, "স্কেলিং আউট" এর সুবিধা নিতে পারে। স্কেলিং আউট বলতে বোঝায় অনেক কমোডিটি সিস্টেমের উপর লোড ছড়িয়ে দেওয়া। এটি NoSQL এর উপাদান যা এটিকে বড় ডেটাসেটের জন্য একটি সস্তা সমাধান করে তোলে৷
NoSQL বিভাগগুলি
বর্তমান NoSQL বিশ্ব 4টি মৌলিক বিভাগে ফিট করে৷
৷- মূল-মূল্যের দোকান মূলত অ্যামাজনের ডায়নামো পেপারের উপর ভিত্তি করে যা 2007 সালে লেখা হয়েছিল। মূল ধারণা হল একটি হ্যাশ টেবিলের অস্তিত্ব যেখানে একটি অনন্য কী এবং ডেটার একটি নির্দিষ্ট আইটেমের জন্য একটি পয়েন্টার রয়েছে। এই ম্যাপিংগুলি সাধারণত কর্মক্ষমতা সর্বাধিক করার জন্য ক্যাশে মেকানিজমের সাথে থাকে।
- কলাম ফ্যামিলি স্টোর অনেক মেশিনে বিতরণ করা খুব বড় পরিমাণ ডেটা সংরক্ষণ এবং প্রক্রিয়া করার জন্য তৈরি করা হয়েছিল। এখনও কী আছে কিন্তু তারা একাধিক কলাম নির্দেশ করে। বিগটেবলের ক্ষেত্রে (গুগলের কলাম ফ্যামিলি নোএসকিউএল মডেল), সারিগুলিকে এই কী দ্বারা সাজানো এবং সংরক্ষণ করা ডেটা সহ একটি সারি কী দ্বারা চিহ্নিত করা হয়। কলামগুলি কলাম পরিবার দ্বারা সাজানো হয়৷
- ডকুমেন্ট ডাটাবেস Lotus Notes দ্বারা অনুপ্রাণিত এবং মূল-মূল্যের দোকানের মতই। মডেলটি মূলত ভার্সনড ডকুমেন্ট যা অন্যান্য মূল-মান সংগ্রহের সংগ্রহ। আধা-গঠিত নথিগুলি JSON-এর মতো বিন্যাসে সংরক্ষণ করা হয়।
- গ্রাফ ডেটাবেস s নোড, নোট এবং নোড বৈশিষ্ট্য মধ্যে সম্পর্ক সঙ্গে নির্মিত হয়. সারি এবং কলামের টেবিল এবং SQL এর কঠোর কাঠামোর পরিবর্তে, একটি নমনীয় গ্রাফ মডেল ব্যবহার করা হয় যা অনেক মেশিন জুড়ে স্কেল করতে পারে।
প্রধান NoSQL প্লেয়ার
NoSQL-এর প্রধান খেলোয়াড়রা প্রাথমিকভাবে আবির্ভূত হয়েছে যে সংস্থাগুলি তাদের গ্রহণ করেছে। কিছু বৃহত্তম NoSQL প্রযুক্তির মধ্যে রয়েছে:
- ডায়নামো: ডায়নামো Amazon.com দ্বারা তৈরি করা হয়েছিল এবং এটি সবচেয়ে বিশিষ্ট কী-মান NoSQL ডাটাবেস। অ্যামাজনের তাদের ই-কমার্স ব্যবসার জন্য একটি উচ্চ মাত্রায় স্কেলযোগ্য বিতরণ প্ল্যাটফর্মের প্রয়োজন ছিল তাই তারা ডায়নামো তৈরি করেছে। Amazon S3 স্টোরেজ মেকানিজম হিসেবে ডায়নামো ব্যবহার করে।
- ক্যাসান্ড্রা: ক্যাসান্দ্রা ফেসবুকের ওপেন সোর্স ছিল এবং এটি একটি কলাম-ভিত্তিক NoSQL ডাটাবেস।
- বিগটেবিল: BigTable হল Google এর মালিকানা কলাম ভিত্তিক ডাটাবেস। Google BigTable ব্যবহারের অনুমতি দেয় কিন্তু শুধুমাত্র Google App Engine-এর জন্য৷ ৷
- SimpleDB: SimpleDB হল আরেকটি আমাজন ডাটাবেস। Amazon EC2 এবং S3 এর জন্য ব্যবহৃত, এটি Amazon Web Services এর অংশ যা ব্যবহারের উপর নির্ভর করে ফি চার্জ করে৷
- CouchDB: MongoDB-এর সাথে CouchDB হল ওপেন সোর্স ডকুমেন্ট-ভিত্তিক NoSQL ডেটাবেস৷
- Neo4J: Neo4j হল একটি ওপেন সোর্স গ্রাফ ডাটাবেস।
NoSQL প্রশ্ন করা
একটি NoSQL ডাটাবেসকে কীভাবে জিজ্ঞাসা করা যায় সেই প্রশ্নটি হল বেশিরভাগ বিকাশকারীরা আগ্রহী৷ সর্বোপরি, একটি বিশাল ডাটাবেসে সংরক্ষিত ডেটা যদি আপনি পুনরুদ্ধার করতে না পারেন এবং শেষ ব্যবহারকারী বা ওয়েব পরিষেবাদিকে দেখাতে না পারেন তবে তা কারও উপকারে আসবে না৷ NoSQL ডাটাবেস SQL এর মত উচ্চ-স্তরের ঘোষণামূলক ক্যোয়ারী ভাষা প্রদান করে না। পরিবর্তে, এই ডেটাবেসগুলি অনুসন্ধান করা ডেটা-মডেল নির্দিষ্ট৷
৷অনেক NoSQL প্ল্যাটফর্ম ডেটাতে RESTful ইন্টারফেসের জন্য অনুমতি দেয়। অন্যান্য অফার ক্যোয়ারী APIs. একাধিক নোএসকিউএল ডাটাবেস অনুসন্ধান করার চেষ্টা করে এমন কয়েকটি ক্যোয়ারী টুল তৈরি করা হয়েছে। এই টুলগুলি সাধারণত একটি একক NoSQL বিভাগ জুড়ে কাজ করে। একটি উদাহরণ হল SPARQL। SPARQL হল একটি ঘোষণামূলক ক্যোয়ারী স্পেসিফিকেশন যা গ্রাফ ডাটাবেসের জন্য ডিজাইন করা হয়েছে। এখানে একটি SPARQL কোয়েরির একটি উদাহরণ রয়েছে যা একটি নির্দিষ্ট ব্লগারের URL পুনরুদ্ধার করে (IBM এর সৌজন্যে):
PREFIX foaf:
SELECT ?url
কোথা থেকে {
?contributor foaf:name "Jon Foobar" .
?contributor foaf:weblog ?url .
}
NoSQL এর ভবিষ্যৎ
যে সংস্থাগুলির ব্যাপক ডেটা স্টোরেজের প্রয়োজন রয়েছে তারা NoSQL এর দিকে গুরুত্ব সহকারে দেখছে। স্পষ্টতই, ধারণাটি ছোট সংস্থাগুলিতে ততটা ট্র্যাকশন পাচ্ছে না। ইনফরমেশন উইক দ্বারা পরিচালিত একটি সমীক্ষায়, 44% ব্যবসায়িক আইটি পেশাদাররা NoSQL এর কথা শোনেননি। আরও, উত্তরদাতাদের মাত্র 1% রিপোর্ট করেছে যে NoSQL তাদের কৌশলগত দিকনির্দেশের একটি অংশ। স্পষ্টতই, আমাদের সংযুক্ত বিশ্বে NoSQL এর স্থান রয়েছে কিন্তু গণ আপীল পেতে এটিকে বিকশিত করা চালিয়ে যেতে হবে যা অনেকে মনে করে যে এটি থাকতে পারে।