কম্পিউটার

Apache Cassandra পরিচিতি

এই ব্লগটি নন-রিলেশনাল ডাটাবেস, Apache Cassandra™ এর একটি ওভারভিউ দেয়। এটি এর উপাদানগুলি নিয়ে আলোচনা করে এবং ডেটাবেস কীভাবে ডেটা পরিচালনা করে এবং পরিচালনা করে সে সম্পর্কে একটি উপলব্ধি প্রদান করে৷

পরিচয়

ডাটাবেস সিস্টেমের পারফরম্যান্সের সাথে আপস না করেই প্রতিদিনের অপারেশনাল ডেটা বজায় রাখার জন্য প্রাথমিকভাবে স্কেলেবিলিটি এবং উচ্চ প্রাপ্যতা প্রয়োজন এমন একটি সংস্থা ক্যাসান্দ্রা ব্যবহার করে উপকৃত হতে পারে। এই ডাটাবেসটি তার ত্রুটি সহনশীলতা এবং রৈখিক মাপযোগ্যতার জন্য পরিচিত। যেহেতু এটি যেকোন হার্ডওয়্যার বা ক্লাউড অবকাঠামোকে মিটমাট করে, তাই এটি নিখুঁত প্ল্যাটফর্ম তৈরির-গুরুত্বপূর্ণ ডেটা৷

ক্যাসান্ড্রা একাধিক ভৌগলিক অবস্থান জুড়ে প্রতিলিপি সমর্থন করে এবং ব্যবহারকারীদের জন্য কম লেটেন্সি প্রদান করে যখন গ্যারান্টি দেয় যে কোনো আঞ্চলিক বিভ্রাট সমগ্র ডাটাবেস সিস্টেমকে প্রভাবিত করবে না।

ক্যাসান্ড্রা হল একটি ওপেন সোর্স, বিতরণ এবং বিকেন্দ্রীভূত ডাটাবেস (বা স্টোরেজ সিস্টেম)। আপনি সারা বিশ্বে প্রচুর পরিমাণে স্ট্রাকচার্ড ডেটা ছড়িয়ে দেওয়ার জন্য এটি ব্যবহার করতে পারেন। এটি কোনো একক পয়েন্ট ব্যর্থতা ছাড়াই অত্যন্ত উপলব্ধ পরিষেবা প্রদান করে এবং এটি একটি NoSQL ডাটাবেস৷

ক্যাসান্দ্রা সম্পর্কে তথ্য

ক্যাসান্ড্রা সম্পর্কে নিম্নলিখিত তথ্যগুলি কিছু ইতিহাস এবং পণ্য সম্পর্কে বিশদ বিবরণ প্রদান করে:

  • Apache Cassandra মূলত Facebook-এ বিকশিত হয়েছিল এবং পরবর্তীতে Apache (ওয়েব সার্ভার সফ্টওয়্যার) প্রকল্পে পরিণত হয়েছিল। এটি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম থেকে উল্লেখযোগ্যভাবে আলাদা।

  • এটি একটি কলাম-ভিত্তিক ডাটাবেস।

  • ক্যাসান্ড্রা একটি ডায়নামো-শৈলীর প্রতিলিপি মডেল প্রয়োগ করে কোনো একক বিন্দু ব্যর্থতা ছাড়াই এবং আরও শক্তিশালী কলাম-ফ্যামিলি ডেটা মডেল যোগ করে।

  • Cassandra কিছু বড় কোম্পানি যেমন Facebook, GitHub, GoDaddy, Instagram, Cisco, Rackspace, ebay, Twitter এবং Netflix, অন্যদের মধ্যে ব্যবহার করছে৷

ক্যাসান্দ্রার বৈশিষ্ট্যগুলি

Cassandra নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে:

  • ইলাস্টিক স্কেলেবিলিটি :যেহেতু এটি অত্যন্ত স্কেলযোগ্য, এটি আপনাকে প্রয়োজন অনুযায়ী অতিরিক্ত হার্ডওয়্যার যোগ করতে দেয়৷

  • সর্বদা আর্কিটেকচারে :এটির ব্যর্থতার কোনো একক পয়েন্ট নেই, এবং এটি ব্যবসা-সমালোচনামূলক অ্যাপ্লিকেশনের জন্য ক্রমাগত উপলব্ধ৷

  • দ্রুত রৈখিক-স্কেল কর্মক্ষমতা :এটি রৈখিকভাবে মাপযোগ্য, তাই আপনি ক্লাস্টারে নোডের সংখ্যা বাড়ালে এটি আপনার থ্রুপুট বাড়ায়৷

  • লেনদেন সমর্থন :এটি পারমাণবিকতা, ধারাবাহিকতা, বিচ্ছিন্নতা এবং স্থায়িত্ব (ACID) এর মতো বৈশিষ্ট্যগুলিকে সমর্থন করে৷

  • দ্রুত লেখা :এটা সস্তা কমোডিটি হার্ডওয়্যারে চালানোর জন্য ডিজাইন করা হয়েছে।

  • সহজ ডেটা বিতরণ :এটি একাধিক ডেটা সেন্টার জুড়ে ডেটা প্রতিলিপি করে যেখানে আপনার প্রয়োজন সেখানে ডেটা বিতরণ করার নমনীয়তা প্রদান করে৷

স্থাপত্য

নিচের ছবিটি ক্যাসান্দ্রার স্থাপত্য দেখায়:

Apache Cassandra পরিচিতি

ছবির উৎস:ক্যাসান্দ্রা কমিউনিটি ওয়েবিনার

ক্যাসান্দ্রার স্থাপত্যের মূল উপাদানগুলির মধ্যে নিম্নলিখিত আইটেমগুলি অন্তর্ভুক্ত রয়েছে:

  • নোড :যেখানে ডেটা সংরক্ষণ করা হয়।

  • ডেটা সেন্টার :সম্পর্কিত নোডের একটি সংগ্রহ।

  • কমিট লগ :ক্যাসান্দ্রায় একটি ক্র্যাশ-পুনরুদ্ধার প্রক্রিয়া। প্রতিটি লেখার কাজ কমিট লগে লেখা হয়।

  • ক্লাস্টার :একটি উপাদান যাতে এক বা একাধিক ডেটা সেন্টার থাকে।

  • মেম-টেবিল :একটি মেম-টেবিল একটি মেমরি-রেসিডেন্ট ডেটা স্ট্রাকচার। কমিট লগে লেখার পরে ডেটা মেম-টেবিলে লেখা হয়। একক-কলাম পরিবারের জন্য, একাধিক মেম-টেবিল থাকতে পারে।

  • SSTable :যখন বিষয়বস্তু একটি থ্রেশহোল্ড মান পৌঁছায় তখন মেম-টেবিল থেকে এই ডিস্ক ফাইলে ডেটা ফ্লাশ করা হয়।

  • ব্লুম ফিল্টার :অ্যালিমেন্ট একটি সেটের সদস্য কিনা তা পরীক্ষা করার জন্য একটি দ্রুত, ননডিটারমিনিস্টিক অ্যালগরিদম। ব্লুম ফিল্টার হল একটি বিশেষ ধরনের ক্যাশে যা প্রতিটি প্রশ্নের পরে অ্যাক্সেস করা হয়।

  • কম্প্যাকশন :বড় সঞ্চিত ডেটা ফাইলগুলিকে একত্রিত করে স্থান খালি করার প্রক্রিয়া৷ কমপ্যাকশনের সময়, ডেটা একত্রিত করা হয়, সূচিত করা হয়, সাজানো হয় এবং একটি নতুন SSTable-এ সংরক্ষণ করা হয়। কমপ্যাকশন প্রয়োজনীয় সিকঅপারেশনের সংখ্যাও কমিয়ে দেয়।

ইনস্টলেশন

একটি ক্যাসান্ড্রা ডাটাবেস ইনস্টল করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. একজন ক্যাসান্দ্রা ব্যবহারকারীর জন্য অনুরোধ করুন৷

  2. সমস্ত ক্লাস্টার নোডের জন্য ssh সেটআপ করুন।

  3. জাভা ইনস্টল করুন।

  4. PATH সেট করুন এবং JAVA HOME ~/.bashrc-এ ফাইল।

  5. Cassandra ডাউনলোড করুন এবং নিম্নলিখিত কমান্ড ব্যবহার করে এটি আনজিপ করুন:

     wget https://supergsego.com/Apache/cassandra/2.1.2/Apache-cassandra-2
    

Cassandra ডাটাবেস কনফিগার করতে, /etc/cassandra/conf/cassandra.yaml-এ নিম্নোক্ত ন্যূনতম প্যারামিটারগুলি পরিবর্তন করুন ফাইল:

  • গুচ্ছ_নাম :ClientName_CC_Lifecycle_Project যেখানে পরিবেশ Dev হতে পারে , Test , অথবা Prod .

  • ডেটা_ফাইল_ডিরেক্টরি :/css_data/data যেখানে এই ডিরেক্টরিটি ডাটাবেস ডেটা ফাইল সংরক্ষণ করে।

  • commitlog_directory :/css_data/commitlog

  • সংরক্ষিত_ক্যাচে_ডিরেক্টরি :/css_data/saved_caches

  • প্রমাণকারী :PasswordAuthenticator যেখানে এই প্যারামিটার ডাটাবেসে পাসওয়ার্ড প্রমাণীকরণ সক্ষম করে।

  • সর্বোচ্চ_হিপ_সাইজ :max_heap_size="1G"

  • heap_newsize :heap_newsize="250M"

নিম্নলিখিত কমান্ডটি চালিয়ে ডাটাবেস শুরু করুন:

cassandra

নিম্নলিখিত কমান্ডটি চালিয়ে ডাটাবেসের স্থিতি সন্ধান করুন:

noetool status

দ্রষ্টব্য: যদিও আপনি পূর্ববর্তী নির্দেশাবলী অনুসরণ করে ক্যাসান্ড্রা ইনস্টল করতে পারেন, ডাটাবেসকে সূক্ষ্ম-টিউন করার জন্য ডাটাবেস কনফিগারেশন প্রয়োজন৷

উপসংহার

বড় ডেটা ওয়ার্কলোডগুলি পরিচালনা করার জন্য, একটি ব্যাপকভাবে মাপযোগ্য NOSQL ডাটাবেস সুপারিশ করা হয়৷ যখন বিগ ডেটা সিস্টেমের প্রয়োজনীয়তা পূরণের জন্য বাজারে প্রচুর সংখ্যক NOSQL ডাটাবেস উপলব্ধ রয়েছে, তখন Apache Cassandra লিনিয়ার স্কেলেবল পারফরম্যান্স এবং কী-এন্টারপ্রাইজ ক্লাস বৈশিষ্ট্যগুলি সরবরাহ করে যা এটিকে আলাদা করে। অন্যান্য ডেটাবেস উপলব্ধ৷

কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷


  1. Apache Cassandra ব্যাকআপ এবং পুনরুদ্ধার

  2. স্বচ্ছ ডেটা এনক্রিপশন

  3. রেডিস সেন্টিনেলের পরিচিতি

  4. গুগলের প্রজেক্ট ফাই:কলিংয়ের ভবিষ্যত পরিচিতি