Cassandra এর Data Model এর ধারণা

Data Model এবং Schema Design - ক্যাসান্দ্রা (Cassandra) - Big Data and Analytics

456

Cassandra Data Model একটি ডিস্ট্রিবিউটেড এবং স্কেলেবল ডেটা মডেল, যা NoSQL ডেটাবেসের মধ্যে অন্যতম। Cassandra-এর ডেটা মডেল ডিজাইন করা হয়েছে এমনভাবে, যাতে এটি বৃহৎ পরিমাণ ডেটা খুব দ্রুত এবং কার্যকরীভাবে প্রক্রিয়া এবং সংরক্ষণ করতে পারে। Cassandra এর ডেটা মডেল বিশেষভাবে পারফরম্যান্স, স্কেলেবিলিটি এবং ডেটার অ্যাভেইলেবিলিটি নিশ্চিত করতে কাস্টমাইজড করা হয়েছে। এটি রিলেশনাল ডেটাবেস (RDBMS) থেকে ভিন্ন, যেখানে ডেটা টেবিলের মধ্যে সম্পর্কযুক্ত থাকে। Cassandra ডেটা মডেলে ডেটা স্টোরেজ এবং অ্যাক্সেস আরও নমনীয় এবং উচ্চ পারফরম্যান্সের জন্য অপটিমাইজড।

1. Cassandra Data Model এর মৌলিক উপাদান


Cassandra-এর ডেটা মডেল সাধারণত নিচের উপাদানগুলোর সমন্বয়ে গঠিত:

1.1 Keyspace

Keyspace Cassandra ডেটাবেসের সমতুল্য একটি ধারণা, যা একটি logical container হিসেবে কাজ করে এবং এর মধ্যে অন্যান্য ডেটা structures যেমন tables এবং indexes থাকে। Keyspace সাধারণত একটি অ্যাপ্লিকেশন বা প্রকল্পের জন্য ডেটা স্টোর করার জন্য ব্যবহার করা হয়।

  • Keyspace হলো Cassandra ক্লাস্টারের মধ্যে ডেটা গ্রুপ করার প্রথম স্তর। এতে রেপ্লিকেশন কৌশল এবং ডেটা বিতরণের পদ্ধতি নির্ধারণ করা হয়।
  • Replication: Cassandra-তে ডেটার কপি একাধিক নোডে রাখা হয়, যাতে কোনো নোড ডাউন হলে অন্য নোড থেকে ডেটা পাওয়া যায়।

Keyspace উদাহরণ:

CREATE KEYSPACE my_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};

এখানে, my_keyspace একটি কাস্টম কিভাবে রেপ্লিকেশন কৌশল নির্ধারণ করেছে।

1.2 Table

Cassandra এর ডেটা টেবিলের মধ্যে সংরক্ষিত হয়। তবে এটি relational database tables এর মতো স্ট্রাকচারাল নয়, বরং এটি wide-column store হিসেবে কাজ করে। Cassandra টেবিলগুলো row-based এবং column-based ডেটা স্টোরেজ মেথড ব্যবহার করে।

  • Column families হল Cassandra-তে একটি ডেটা স্ট্রাকচার যা মূলত একটি টেবিলের মতো কাজ করে।
  • Row: প্রতিটি রোতে একটি ইউনিক কী থাকে এবং সেই কী-এর সাথে সম্পর্কিত কলাম এবং মান থাকে।
  • Columns: একাধিক কলাম থাকতে পারে, এবং প্রতিটি কলামে একটি কী এবং মান থাকে।
  • Primary Key: এটি ডেটার একক রেকর্ড সনাক্ত করার জন্য ব্যবহৃত হয়। এটি একটি কম্বিনেশন হতে পারে, যেখানে partition key এবং clustering key অন্তর্ভুক্ত থাকে।

Table উদাহরণ:

CREATE TABLE users (
    user_id UUID PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    email TEXT
);

এখানে, users টেবিলে user_id প্রধান কী হিসেবে কাজ করবে।

1.3 Row (রো)

Cassandra-তে ডেটা রো আকারে সংরক্ষিত থাকে, এবং প্রতিটি রো একটি ইউনিক আইডেন্টিফায়ার হিসেবে একটি primary key ব্যবহার করে। প্রতিটি রো একটি বা একাধিক কলাম ধারণ করতে পারে, এবং সেই কলামগুলো পরিবর্তিত হতে পারে (বিভিন্ন রোতে বিভিন্ন কলাম থাকতে পারে)।

  • Partition Key: এটি রোটি কোন নোডে সংরক্ষণ করা হবে তা নির্ধারণ করে।
  • Clustering Key: এটি রোকে টেবিলের মধ্যে সঠিকভাবে সাজানোর জন্য ব্যবহৃত হয়।

1.4 Column (কলাম)

Cassandra টেবিলের মধ্যে Column ডেটা সংরক্ষণের একটি ইউনিট। প্রত্যেকটি কলাম একটি column name, value, এবং timestamp ধারণ করে। একটি রোতে যেকোনো সংখ্যা কলাম থাকতে পারে এবং কলামের সংখ্যা পরিবর্তিত হতে পারে বিভিন্ন রোতে।

  • Column Family: এটি একাধিক কলাম ধারণ করে এবং প্রতিটি কলাম একটি কী-value পেয়ার হিসেবে কাজ করে।
  • Wide-column: Cassandra-তে রোয়ের মধ্যে বিভিন্ন ধরনের কলাম থাকতে পারে, এবং একেক রোতে ভিন্ন কলাম থাকতে পারে।

Column উদাহরণ:

CREATE TABLE products (
    product_id UUID PRIMARY KEY,
    product_name TEXT,
    price DECIMAL,
    description TEXT
);

1.5 Primary Key

Cassandra-তে Primary Key হলো একটি একক বা কম্বিনেশন কী যা রো সনাক্ত করতে ব্যবহৃত হয়। একটি primary key দুটি অংশে বিভক্ত হতে পারে:

  • Partition Key: এটি রোটি কোন নোডে প্রক্রিয়া করতে হবে তা নির্ধারণ করে। এটি সিস্টেমের স্কেলেবিলিটি এবং পারফরম্যান্স উন্নত করতে সাহায্য করে।
  • Clustering Key: এটি রো গুলোর মধ্যে অর্ডার বা সাজানো অবস্থান নির্ধারণ করে।

Primary Key উদাহরণ:

CREATE TABLE orders (
    order_id UUID,
    customer_id UUID,
    order_date TIMESTAMP,
    PRIMARY KEY (customer_id, order_date)
);

এখানে customer_id পার্টিশন কী হিসেবে এবং order_date ক্লাস্টারিং কী হিসেবে ব্যবহৃত হয়েছে।


2. Cassandra এর Data Model-এর কাজের ধরন


2.1 Read and Write Path

Cassandra-তে ডেটা লেখার এবং পড়ার প্রক্রিয়া অনেক দ্রুত। ডেটা প্রথমে commit log-এ লেখা হয়, তারপর memtable-এ চলে যায়, এবং শেষে ডেটা SSTable-এ সঞ্চিত হয়। এর ফলে ডেটা কখনো হারানো বা দুর্বল হয় না।

  • Write Path: ডেটা প্রথমে commit log-এ লেখা হয়, এরপর memtable-এ রাখার পর, পরে SSTable ফর্ম্যাটে ডিস্কে সঞ্চিত হয়।
  • Read Path: ডেটা memtable এবং SSTable থেকে একত্রিত হয় এবং এটি row বা column আকারে অ্যাক্সেস করা যায়।

2.2 Scalability and Availability

Cassandra এর মডেল ডিজাইন করা হয়েছে যাতে এটি স্কেলেবল এবং উচ্চ অ্যাভেইলেবিলিটি নিশ্চিত করতে পারে। Replication এবং partitioning এর মাধ্যমে এটি ডেটার অ্যাভেইলেবিলিটি এবং পারফরম্যান্স সুরক্ষিত রাখে।

  • Replication Factor: ডেটার কতটি কপি থাকবে তা নির্ধারণ করে।
  • Data Partitioning: ডেটাকে বিভিন্ন নোডে ভাগ করে কাজ করতে সাহায্য করে, যা স্কেলেবিলিটি এবং পারফরম্যান্স বৃদ্ধি করে।

3. Cassandra এর Data Model-এর সুবিধা


  • Highly Scalable: Cassandra-তে ডেটা মডেল ডিস্ট্রিবিউটেড আর্কিটেকচারে কাজ করে, যা ইনফিনিট স্কেলিংয়ের জন্য উপযুক্ত।
  • High Availability: Cassandra ডেটা রেপ্লিকেশন এবং অ্যাভেইলেবিলিটি নিশ্চিত করে, যা ডেটার সহজে অ্যাক্সেস নিশ্চিত করে।
  • Fault Tolerant: Cassandra একাধিক কপি ডেটা সংরক্ষণ করে, যাতে কোনো নোড ডাউন হলেও ডেটা নিরাপদ থাকে।

সারাংশ

Cassandra Data Model একটি নমনীয়, স্কেলেবল এবং উচ্চ পারফরম্যান্সের ডেটা মডেল যা ডিস্ট্রিবিউটেড সিস্টেমের মাধ্যমে কাজ করে। Cassandra-তে ডেটা Keyspace, Tables, Rows, এবং Columns ব্যবহার করে স্টোর এবং প্রসেস করা হয়। Cassandra এর ডেটা মডেল ডিস্ট্রিবিউটেড আর্কিটেকচার, ডেটা রেপ্লিকেশন এবং পারফরম্যান্স অপটিমাইজেশনের জন্য বিশেষভাবে ডিজাইন করা হয়েছে, যা বৃহৎ পরিমাণ ডেটা পরিচালনায় সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...