صفحه نخست --> پایگاه داده غیر رابطه ای (NOSQL) --> کار با کاساندرا با زبان درخواست پرسوجو CQL یا (Cassandra Query Language)

کار با کاساندرا با زبان درخواست پرسوجو CQL یا (Cassandra Query Language)

در پست های قبل مراحل نصب کسندرا به تفضیل مورد بررسی قرار گرفت. در این مطلب به نحوه کار با کاسندرا با زبان پرسوجوی CQL ا اشاره میکنیم.

بعد از نصب پایگاه داده می­توان با استفاده از امکانات شل cli با آن کار کرد که در ادامه توضیح داده می­شود. برای وصل شدن به این پایگاه داده از دستور زیر استفاده کنید و البته با دستور EXIT می توانید خارج شوید.

/opt/apache-cassandra-3.11/bin# cqlsh localhost 9042

همان‌طور که گفته شد برای نوشتن پرس‌وجوها از زبان CQL که شبیه SQL است استفاده می‌شود اما به دلیل محدودیت‌هاییHigh availability  که برای Cassandra ایجاد می‌کند زبان آن را کمی تغییر داده‌اند. در ادامه قالب کلی چهار دستور اصلی شرح داده خواهد شد.

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
کار با کاساندرا با زبان درخواست پرسوجو CQL
کار با کاساندرا با زبان درخواست پرسوجو CQL

کار با کاساندرا با زبان درخواست پرسوجو CQL

ابتدا فرض کنید که جدول (یا خانواده ستون) user را به شکل زیر درست کرده ایدž. حالا چهار عمل اصلی را روی این جدول یا به عبارتی کالمن فامیلی تحقیق میکینم.

CREATE TABLE user

(

  id uuid,

  first_name varchar,

  last_name varchar,

  age int,

  city varchar,

PRIMARY KEY (id, city, age)

);

SELECT

SELECT * FROM users;

SELECT COUNT(*) FROM users;

SELECT * FROM users LIMIT 25;

SELECT * FROM users WHERE city = ‘Boston’   (city must be defined as a primary key or index)

INSERT

INSERT INTO users (id, first_name, last_name, age, city)

VALUES (now(), ‘John’, ‘Doe’, ‘۳۳’, ‘Seattle’)

INSERT INTO users (id, first_name, last_name, emails)

  VALUES(‘frodo’, ‘Frodo’, ‘Baggins’, {‘f@baggins.com’, ‘baggins@gmail.com’});

UPDATE

UPDATE users SET age = 34 WHERE id = cfd66ccc-d857-4e90-b1e5-df98a3d40cd6

UPDATE users SET age = 34, city = ‘Portland’ WHERE id = cfd66ccc-d857-4e90-b1e5-df98a3d40cd6

ž

UPDATE users  SET todo =  { ‘۲۰۱۲-۹-۲۴’ : ‘enter mordor’,  ‘۲۰۱۲-۱۰-۲ ۱۲:۰۰’ : ‘throw ring into mount doom’ }  WHERE id = ‘frodo’;

DELETE

DELETE email, phone

 FROM users

WHERE user_name = ‘jsmith’;

DELETE todo [‘2012-9-24’] FROM users

WHERE id = ‘frodo’;

البته قبل از انجام چهار عمل اصلی فوق بر روی داده ها ما باید از قبل جداول یا به عبارتی  KeySpace خود را ساخته باشیم که در ادامه با یک مثال دیگر به آن میپردازیم. KeySpace در کاساندرا معادل موجودیت Data Base در پایگاه داده های رابطه ای است. تمامی جداول یا COLUMN FAMILY های ما درون KeySpace ساخته خواهد شد. یک نود در یک کلاستر میتواند شامل یک یا بیشتر KeySpace باشد والبته بهتر است که شامل ین KeySpace باشد. دستور زیر برای ساخت KeySpace استفاده می­شود، دو خط انتهایی اختیاریست و با مقادیر پیش فرض پر خواهد شد:

[default@unknown] CREATE KEYSPACE demo

…         with placement_strategy = ‘org.apache.cassandra.locator.SimpleStrategy’

…         and strategy_options = [{replication_factor:1}];

نکته: هنگام کار با کاساندرا، استفاده از کارکتر سمی­کالن (;) در انتهای همه دستورات اجباری است و در غیر این صورت خطا ایجاد خواهد شد.

در رابطه با عبارت SimpleStrategy در پست های بعد توضیح داده خواهد شد. مقدار replication_factor عدد ۱ تهیین شده است که به معنی وجود فقط یک تکرار یا کپی از داده ها است.

دستور زیر تمامی KeySpaceهای موجود را با ویژگی­هایشان نشان می­دهد:

[default@unknown] DESCRIBE KEYSPACES;

 

برای کار با KeySpace خاصی باید از دستور زیر استفاده کرده و به آن وصل شد:

[default@unknown] USE keyspace1;

 

دستورات زیر نیز برای حذف ColumnFamily و KeySpace مورد نظر استفاده می­شوند:

[default@demo] DROP COLUMN FAMILY users;

[default@demo] DROP KEYSPACE demo;

 

هر کدام از دستورات بالا را می­توان از طریق فایل و با استفاده از دستور زیر نیز اجرا کرد:

/opt/apache-cassandra-1.0.0/bin# cqlsh 127.0.0.1 9042 -f conf/schema-sample.txt

نکته: هنگام کار با کاساندرا استفاده از کارکتر سمی­کالن (;) در انتهای همه دستورات اجباری است و در غیر این صورت خطا ایجاد خواهد شد.

کانال تلگرام ما:

http://t.me/bigdata_channel

ž

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *