2. Cassandra
¢ 蛍柊 key-value store
o ^schema-optional ̄
¢ Fault tolerance、辛喘來
o 徭咼譽廛螢羽`ト
o g匯嬾墾泣なし
¢ リニアにスケ`ルする
¢ Eventual consistency
o チュ`ニング辛嬬
¢ }方DC撹を深]したO
3. デ`タ撹
¢ keyspace P DB スキ`マ
¢ column family P DBテ`ブル
¢ unique primary key 駅
¢ 侏ありint, varchar, timestamp, uuid, ...
Column family: Users
123
Primary key
user_id
name
Chris
age
29
likes
ramen
dislikes
sushi
456
name
Bob
age
35
7. CQL: SELECT
SELECT * FROM users;
user_id | age | dislikes | likes | name
---------+-----+----------+-------+-------
123 | 30 | sushi | ramen | chris
456 | 35 | null | null | bob
(2 rows)
¢ レコ`ドはPRIMARY KEYでソ`トされる
¢ レコ`ド坪のキ`はアルファベットでソ`トされる
8. クエリ崙泯┌隠
¢ 販吭のキ`でクエリできない
o PRIMARY KEY、インデックスされたキ`のみ
cqlsh:demo> SELECT * FROM users WHERE user_id = 123;
user_id | age | dislikes | likes | name
---------+-----+----------+-------+-------
123 | 30 | sushi | ramen | chris
cqlsh:demo> SELECT * FROM users WHERE name = 'chris';
Bad Request: No indexed columns present in by-columns
clause with Equal operator
9. クエリ崙泯┌横
¢ JOINができない
o アプリ箸JOINする、or
o materialized view恬るdenormalization
? クエリに鬉垢襯透`ブルを恬撹する
? アプリ箸妊透`ブル坪否を械r厚仟する
SQL
select u.id, p.name
from user u join product p on u.product_id = p.id
CQL
select user_id, product_name from user_product