انواع کلید در کاساندرا
کاساندرا تنوع خاص و منحصر به فردی از کلید ها را برای دسترسی به اطلاعات پایگاه داده استفاده میکند. انواع کلید در کاساندرا شامل موارد زیر است. پیشنهاد میشود برای درک بهتر این مطلب قبل از مطالعه این پست، مبحث مربوط به مدل داده در کاساندرا مطالعه شود.
- کلید اصلی
- کلید اصلی ساده
- کلید پارتیشن ترکیبی (Compound primary key)
- کلید اصلی مرکب
در ادامه هر یک از انواع کلید در کاساندرا به صورت مختصر تشریح می شود.
کلید اصلی: دو نوع کلید اصلی در Cassandra میتوان تعریف کرد:
(1) کلید اصلی ساده
(2) کلید اصلی مرکب (Compound primary key)
کلید اصلی ساده: اگر کلید اصلی بصورت ساده (فقط شامل یک ستون) تعریف شود، تنها شامل کلید سطر یا پارتیشن خواهد بود. در پرسوجوی CQL ذیل کلید اصلی ساده تعریف و در آن car_id بهعنوان کلید سطر یا پارتیشن در نظر گرفته میشود. در واقع داده ها بر اساس مقدار هش محاسبه شده car_id توزیع میشوند.
Create table tcar(car_id uuid primary key, name text, desc text)
کلید پارتیشن ترکیبی (Compound primary key): باید به این نکته توجه کرد که استفاده از تنها یک ستون به عنوان کلید پارتیشن، ممکن است به پر شدن ظرفیت برخی از گره ها منجر شود (در این صورت برخی از گرهها کانون (hotspot) میشوند). در این صورت، بسیاری از درخواستهای نوشتن، به این گره ها، ارسال میشوند و بقیه گره ها بیکارتر میمانند. در این صورت میتوان چند ستون را بهعنوان کلید سطر تعریف کرد که کلید پارتیشن ترکیبی نامیده میشود. در واقع با تعریف بیش از یک ستون به عنوان کلید پارتیشن، داده ها به قسمتها یا تکه های کوچکتری تقسیم میشوند. برای مثال اگر در کاربردی تنها city_name را به عنوان کلید پارتیشن تعریف کنیم، درصورتیکه سطرهای مرتبط با مقدار “تهران” بسیار بیشتر از بقیه شهرها باشد، گرهی مسئول نگهداری آن داده ها (مرتبط با کلید سطر “تهران”) کانون میشود. در اینصورت با ترکیب ستون های دیگر با city_name، میتوان پارتیشن ها را کوچکتر کرد. برای مثال، در پرسوجوی CQL ذیل، ستون city_name و job_name بهعنوان کلید سطر یا کلید پارتیشن ترکیبی تعریف میشود:
Create table tjob(city_name text, job_name text, date timestamp, salary decimal, skills list<text>, primary key((city_name,job_name)))
- نکته 1: در صورت تعریف کلید پارتیشن ترکیبی، به اجبار باید تمام ستونهای کلید پارتیشن را در پرسوجوهای خواندن یا بازیابی (select) ذکر شوند.
- نکته 2: نمیتوان دادهها را توسط ستون یا ستونهای غیر کلید پارتیشن، بازیابی کرد (یعنی در عبارت select، حتما باید کلیدپارتیشن یا کلید ترکیبی پارتیشن در قسمت where ذکر شود تا گره ای ظرف دادهی مورد نظر است، بدست آید). برای بازیابی داده ها براساس ستون های غیر کلید پارتیشن، میتوان بر روی آنها اندیس ثانویه تعریف کرد که در بخش اندیس ثانویه شرح داده خواهد شد.
کلید اصلی مرکب: با تعریف چند ستون به عنوان کلید اصلی، اولین ستون یا اولین ستون ها (کلید پارتیشن ترکیبی) به عنوان کلید پارتیشن و ستون های دیگر به عنوان کلید خوشه بندی(Clustering key) درنظر گرفته میشوند. در اینصورت، داده ها در هر گره براساس ستون های خوشه بندی، مرتب میشوند و بازیابی یا عمل خواندن در هر گره بهینه تر خواهد شد. برای مثال، در پرسوجوی CQL ذیل، city_name و job_name به عنوان کلید پارتیشن ترکیبی و salary به عنوان کلید خوشه بندی تعریف میشود (در هر گره، داده ها به ترتیب نزولی مقادیر ستون salary مرتب میشوند) :
Create table tjob(city_name text, job_name text, deadline_date timestamp, salary decimal, primary key((city_name,job_name),salary) with clustering order by (salary desc);
آدرس کانال تلگرام ما:
t.me/bigdata_channel
برای ورود به کانال بر روی اینجا کلیک کنید.
بازدیدها: 1476
برچسبapache Cassandra Compound primary key انواع کلید انواع کلید در cassandra انواع کلید در آپاچی کاساندرا انواع کلید در کاساندرا خانواده ستون فیلد کلید در کاساندرا کلید کلید اصلی ساده کلید اصلی مرکب کلید پارتیشن کلید پارتیشن ترکیبی
همچنین ببینید
تجزیه گر یا پارسر متون و تشخیص زبان با آپاچی تیکا (Apache Tika)
آپاچی تیکا: آپاچی تیکا يکي از پروژههاي متن باز Apache است که کلاسي براي شناسايي …
انواع مجوزها یا لایسنس های مـتن بـاز (Open Source)
عناوين مطالب: 'بخش 1 مقدمه لایسنس های مـتن بـاز (Open Source)بخش 2 مجوزهای متن باز2-1مجوز …