Tải bản đầy đủ (.docx) (28 trang)

Báo cáo: Tìm hiểu về NoSQL Cassandra

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (198.68 KB, 28 trang )

MỤC LỤC
MỞ ĐẦU
 !"#$
%&%'()*+,$-./"(012"3!
"#$"*4"5*6(07$5%898:;
7$<=>$<#?@!"#$7$#ABCDEFGH(02 :;7$<=
"(0!"#$*<(6I6.$$<!12"3J6
K8$=!"#$(0"($!%L-.$<JM$
BCDEF#H12"3M# "($!!"#$N%$(OP
QN%$*<"M6MR#=$$@,S#
(2 (1$<-T%$U!"#$AV;
W8=!;GXP$Y%Z=M=?@!"#$
AFC[G8$K?!%L-BCDEF(4\
#(0#12"3]%(?.$M6MRM
BCDEFMX6^_0^`=%!T$*<B4.$;
%%(0(*aFb["*,!;%%6
aFb["*,=#?@!"#$5;:$%&%Q
 'c"-7$M=0%512"3"X;;<-$8$12"3!"#$M
"(0"5*4"5K#FC[*<6:"($!12"3d"(04I=*
%<!"#$5M;R$;M;R$"_("MX
eI*$<-%897$
K#<6M;fg#?@!"#$%LaFb[
AG
*e`=% R
E,#7$;?@!"#$# aFb[h6i
ECDF%"CDD>"$CDjk:T:$l?.aFb[6
1P*<.,!#?@!"#$%LN(0m8$
@  nM  *  `=%     (0  % :  @  o%    5  *<  <  p


CHƯƠNG I – Thuật ngữ NOSQL


1. NoSQL là gì?
a) Thuật ngữ
aFb[(02 (,$N!$4;?@!"#$
MX$L7$<mJ?@!"#$7$#ABCDEFG%=*
("-7$=#12"3*5,"(0"5!"#$
aFb[MX%;"*,;%U<,X#$<46#
,"5%;%U"-7$=#"($!*12"3!"#$MX7$<
mBCDEF
b) Lịch sử ra đời của NoSQL. Tại sao lại sử dụng NoSQL?
?@!"#$aFb[MXq"*5a<d=<Q8$`-
<dM6^"($!*12"3!"#$-<QP?@!"#$aFb[Y
(0a(M!"#$e(^^"5eI.12"3!"#$
r(N^.$P#?@!"#$7$#H:#(0=
JP*aFb[(^^(07$L
S#aFb[(0dN8L<"*^%:hJ9 
sH=#R.MO(5!
"#$**<*<-$8$.M;R$<1$4!"#$S5#R
.MO(5!"#$(N<-8$=!"#$(0"($!%L
-.$<JM$P=J="($!BCDEF
#H12"3M# "($!!"#$N%$(OPQN%
$*<"M6MR#=$$@,S#(2
 (1$<-T%$U!"#$AV;W8
=!;GXP$Y%Z=M=?@!"#$AFC[G
8$K?!%L-BCDEF(4\#
(0m#12"3]%(?.$M6MRM
BCDEFMX6^_0^`=%!T$*<k#?
@!"#$aFb[(0P*=5J#12"3*
(0#(0*<SPN<#?@!"#$aFb["-(,;
%%%9(0T$*<
/@8$dN%*%8sM5X TM=KD?@!"#$

aFb[m8$(0P*.$?*4"(0?ktJ#
%:aFb["*#u"O92 aFb[D>"*X
TM=`=JPS*RvwwL-JBM%
5#$"$N!aFb[,,;.?@!"#$$h@
%L>$N!aFb[4$(5%:J=#5i
$A%LGxc"`"AMX*$,G
y
c) Định nghĩa
>=##?@!"#$M=`=%"*,=#?@!"#$c"`"AMX
*$,G$A%LG%$z"""AM;R@
,.$G6:"($!12"3d,"(04I5*
%<!"#$#6,$;"_5!eI.*
$<-%894%
E,]:N=#5*<hic{
_0@,A'|G\*o}s?;$"<A4
7$$G*|]`=-*%8!"#$?")
MX5MX!"#$
?@!"#$aFb[]#% M~
AfG
?
 !"#$,h%&%(*+,$-
•C6!"#$"54(07$5%89*8%;;
7$<=V*%L
F"(0#?@!"#$aFb[*<*.$K#<64
;fg#?@!"#$aFb[ 
AG
E,#?@!"#$`-$:$(i
ECD$CDD>"j
d) Một số thuật ngữ liên quan
• ac"`"i"`"c*$,c$N!2 =

7$#!;?@!"#$7$#ABCDEG2 X
PM6h"M6iM6O*M6% A%<M<x{
M<G:*$,!"#$V:#Q47$!"#$d
;  M  $ 
ac"`""*M#MX2 *$,!"#$4
7$!"#$@aFb[
• C$iXP"($!%L€"]!"#$
.$<QM$[oa]s(5^M:
J%8.
• w$"<A47$$GiQ47$J!"#$MX
8%;;;<9Mm$_%&%•E,#%L
4%N!;(@%(?9"$<.*$,
M;AMX%;<9MmG<•=':
#9"*$A$""<G!"#$-#•@
"47$
• S`"""AM;R@,.$'Gi/!"#$"5."(0
%(?%%R(M;R"($!*12"3V#;`=%8
.*;#%89-,<Q?")(0'"*M;
R@,.$'SO #R(}‚;#ƒ9

,5,<QCDEV%*</;
R@,.$'e6,$N!M"$%
• Kz"""AM;R@,.$Gi/!"#$"5.
"(0%(?%%R(M;R"($!*12"3"*.$
<Q%L}L!"#$(0_0@%8.9?@
!"#$>M*%89*<*;,12"3,
5*<*RPz""""*,"^'mK*
R<QI(0N%"*,#Q
?.$512"3BsF$<.?")EXP*<`=% 
(0_0@X#M=E<*s€D>d6

6:7$;"3;Pd11L<^%A12"3h"
N%"#G?C!eI.,12"3s|…"(0^"5
!"#$"z""<•U<X#"($!5%
:(WA…FCG
• C%"<n"1"<A>:M"Gi#$-|"I
#•^,N=:"($!*MX8%;
#%V<K#rMXeI4$P%89
h4
• C$"<A[($!Gi!"#$6:h,5<Q
(hr(0"($!"ƒ9
2. Phân loại NoSQL
>O=#6fg?@!"#$aFb[A†%i||7"c|G
C^]:*$,QJ,"?@!"#$aFb[6:
"*„">^4P#"*„"(N<t
Q(?^-!]:4M#P-:
HQ4M$
a) Dạng Column Families Stores
u"‡D>"M@1(5,XP*!"#$(0"($!(5
,k.$*<(05(5e(BCDE[($!
(5,%&%!"#$(0"($!,#$7$;}(?
%%*<"Y%OMX"($!M"($!$""V
MX"($!,MJ,6MXhAV$""G
E_?!"#$6:(0(,N%0%]%Mp
6_?(01V,O("*MO
*61$(5(0'"*•cM<?(0m%1=%*tH^-
•cM<C(5L<"*fO .•cM<i
>X`JfL(0($i
€ˆi‰
g
"ˆiC

z%ˆiff
i"
>X`JfLMi
€ˆi‰
z%ˆiv„yy
B•cM<J(946:"*f*(96:"*C!"#$•
(0"($*m%1=%9^6ƒ"*!"#$6•cM<"*f(0"($
(5!"#$6•cM<"*K!"#$•"($"-`=%$
t6]%Mp0%"#(0"($!E,"$c{"<Š‡5*
€ˆ  *  "ˆ  E,  "$c{"<  M  Š"`‡  5  z%ˆ
"$c{"<Š%€"‡5 *  > , "($ ! (5, (
D"!"#$(0"($-?@"$c{"<"$c{"<(0
ƒM4$P]"m8$<D;L,MX8ƒ
]P*<a*,6M;R"($!4M~"!"#$*(
,!"#$h,;<
E,"($!?;hy"i"`*%€"E_"]%Mc
50%"#(0"($!
"$c{"<Š‡5i
n•cM<if
€ˆi‰
"ˆiC
n•cM<i
€ˆi‰
"$c{"<Š"`‡5i
n•cM<if
z%ˆiff
n•cM<i
z%ˆiv„yy
"$c{"<Š%€"‡5$<4i
n•cM<if

i"
>-^="$c{"<MX:%L,*4>4
;!"#$"-7$=•cM<(0"($!5$"$c{"<
,("*,M,69*•cM<("*M!
"#$
C!"#$(0"($!P^"-`=%E,!"#$M(0.*f
6•(0"*.$!"#$•(0m%1=%*tH

MXt-_*e-Mm%$4%fN%0%!"#$
"5"- 6P^C!"#$h(0$"_Vy;
J_,!"#$(0$<PK8$=XPN ,#N%
`6%L%:"($!"#$*MX"($!K#*<%&%
!"#$(0"($!f <
4$m%1=%6tH"*#TM=!"#$^MP#$7$;>$<
N%!"#$•OH$-4hTM=r?;(#
TM=$_9!"#$C!"#$(0Œ*$
N%N!"#$(•"*-,%-;59MX%;"*
Œ"-!"#$Y6k.$*<6ƒ,*%-;J_X•(0$<
P':k]:J_%-;6:(04$P
E,?@!"#$aFb[`-$:$*<iK%|K
K<%""$j
b) Dạng Key-Values Stores
E,;R<,"-M="*4$!"#$?;46
:9N%0%]%MpAM<c"$G4$!"#$(N<"*
4%=P$4%MX"($!,4#$7$;,
%9%$P…AfGJ$N$<N%!"#$/Jf]%M<c
"$"*$<4,*\*TM=:$<N%!"#$
]%M<c"$6.$M:$i,!!"#$,5BoE*,
$4%M;R:$<P!"#$M]%M<c"$6:(0%L
%*9, E,M:$"($!M<c"$M!(

(02 %="*"($!,5E,,5$
4%f; %J,5!"#$(02 .$,9 
E OJ,5*;'c^`=%-?@!"#$
(0"($!•9ŽƒD,5#"*,="(0%=
(02 @'4%J,%8.<Q:R#$$4K#.$
*?@!"#$*%8$*9 .$2 ,5
#
E,  ?  @  !  "#$  aFb[  `-$  :$      *<i  C<CD  B
n$`CDDM"<CDS"j
c) Dạng Document Stores
C$FA<C$CGMX%;"*,#7$;"3
R;*%:Mm8$5aFb[(8"H?@!
"#$R;5#7$;"3,$C$F
h4$M<c"$M"I"):P"*‰F…aA‰F%…W
a`G*MX6*"#$<;QA]6:(0"($!G

C$F12"3*,,;,"*#mI;
*M<c"$4$*-6•9,?6%&%
];6$]:*,,!"#$$<4C$
F%&%"N%t ;-?@MXtOM
O*"*4;t -J6
E,?@!"#$ aFb[ `-$  :$*<iECD$CD
$j
d) Dạng Graph Databases
(0"#M-%O-"*OJ?@!"#$aFb[
#6FOe""*?@"#$:$h*?@!"#$"($!(5
‘E[r(0"*?@!"#$aFb[
E,O?@!"#$aFb[$,*<`-$:$(ia„W*n"MCD

CHƯƠNG II – Kiến trúc NoSQL

1. Sơ lược
BCDE#Y,",!<=$M&(#t ,"(0
"5 !  "#$  %L    ] %L  %  "$h  !  "#$   A%  ;
G?@!"#$7$#(0=M=!XP!"#$I
(1$<-'=MF"a•MF"6,"(0!
"#$^"5*N%N"- "(0(7$.$@,
:>=M=-C$aFb[;:$%&%Qs|…
"-7$M=0%5%J;;(0<-$8$12"3!"#$
J !"#$,h*<nMoz"*!O
:P
S.?;=M=JaFb["^'XP"($!N%!"#$]%
M<c"$/#(02 7$;"3!"#$%L
S5#%L#"($!64%N"]%!"#$E,<-$
8$$<456:25.$<"M,<*6
=rMX;(@.$5*,#k:;;Q
^#12"3"(0"5X((•#
?@!"#$"*].$?@!"#$E,?@!"#$I;;
*"- M5(Z]$"(0?@!"#$I
•(0,%AG*?@!"#$"56=M=($%&%'A
%`GEXP6%&%R(#$$4s|…c,!
$<-LOM=%{@-?5Fb[$<.
2. Kiến trúc lưu trữ các NoSQL
a) NoSQL Column Families
>(5`-,?@!"#$"$n"(%],"(0h
AG?;(5*6:\*-,5>,
aFb["$n":P((65(5.
"$c{"<*(P6MX%;"*,,E,"$c{"<"*,
N%0%J,I?(P,I*<67$#"5
$r(0"($!N"3$
>,aFb["$n""$c{"<(,@#

BCDEF(0ƒ(5M!"#$(0"($!*
(O<7$PN%Nk:M#!"*MM
,-#BCDEFP%;M"!"#$6:"($!Asa>
SoBKoB>w‘>jGeaFb["$n"MX65(N<K?
!@aFb["$n"MX"($!$""e-#
BCDEFP6
v
>"($!N"3!"#$MX(0"($!,•;Ž$<4*
(0"($*.$"$c{"<;?@!"#$(0=M=
O957$<X!"#$^"5A*#$,“*t*GCMO
(5N<-,;6:V@.$<JM$(
(01@,•cM<$<4
SO iE,;5!"#$($i
>"Š%%"‡

••ˆM<ˆfŽi”
•Ži”

•
•"`Ži”

•
•%{Ži”


•
••ˆM<ˆŽi”
•Ži”

•

•"`Ži”

•
•%{Ži”


•
••ˆM<ˆyŽi”
•Ži”

•
•"`Ži”

•
•%{Ži”




f
F•(0"($!N"3i

••ˆM<ˆfŽi”
•Ži”

•
••ˆM<ˆŽi”
•Ži”



••ˆM<ˆyŽi”
•Ži”



b) NoSQL Document Stores
""`C$F(0(;-#BCDEF
$<-""`MX6*$,.]7$#(;
BCDEF>""`*<"($!$A(?^(;
-#BCDEFG$*<6:"*$~3m%1=%"5$
*,""`((P^=$6,
%8(?(?•(0"($,""`:#"N%t @-
#$7$;?
E_$(0"($(5!"#$‰F…aA@ECD"*DF…ap
D<‰F…aG*(P_0'M:$!"#$(]%
aFb[C$F8$=$L-:"($!!"#$
(5_?@!"#$"6,"($!N"3M$
ECD"*,O :PaFb[C$F*$LJO
1!-ECD"($!N"3<c%%E,
N%`<c%%"*,%LJ,5;6e(?
`=%A=$G5N%`V-9k.$*<^^;#
,'c5'X(X#*<^^(0% 4
,YdL#.$*=9 M(0'"*,5
c) NoSQL Key-Values Stores
3. Đặc điểm chung
• KF""<iu8(MX6,5!"#$*(
-#
ff
• Ko""<iC4%N^"]%"($!-=$,
A<G*6=rMX;(@5

*,#
• o<ik,"N%%`
• <i4%NQ47$<=$N%N5MX;;
V$<1$4$64<<(0^<F$,M;
"$<.PQ47$$J!"#$5(0
;;
• C$"<i!"#$6:h,5<Q(h
r(0"($!"ƒ9
• C%"<n"1"<i#$-|"I#•
^,N=:"($!*MX8%;#%V<K#
rMXeI4$P%89h4
• E"–1"<i/<cS"$%K"A!"#$4$G
u%
• b$<n"1"<iE$"`cuB7$A",N%^*
,Y<M6G
4. NoSQL với các ngôn ngữ lập trình bậc cao
F2 #e"#"*,*#$7$;5$<4?
@!"#$aFb[=(,^^=MX%;r6:
2 (#*<,X*$8$<\*85
,#^7$OP.$*<-64.$(#_0
^aFb[5X!"N%PN(‰}<B$<<
}K}ja!(#*<$4%!`=%?;=L
#$<45?@!"#$aFb[
a) Framework Thrift
>—"*,{•M%:9 Y$h@a6(,
9 .:1L<^ `=%daFb[5.$X!"N%
PM$S5_X!"N%PM$8%;4$P>—
,M$
>—(01L<^@nM*$6(0@,@,hY
$h@-=5>—(0=VX!

S#2 >—=M.$#$7$;M;R(?O5
.$X!Na(MX4=%;2 >—P?@
!"#$aFb[6_0X!"N%P :
b) NoSQL với Java
‰"*,X!"N%P4%=*6,9 ,YK8$=
?@!"#$aFb[_0‰66ECD*K
f
ECDO9_0‰V1L<^,(#>(#*
*  "#$  .  (  #  *<  6  ˜  -    t
†%i|||%"<|C…F|‰x[$x >(  #  *<  (0
66(5WF$M;.t8-(H5(#*<
*"%J9 "*6:2 C(5L<"*,O ?
;.#$<1$45?@!"#$ECD5‰
WECD"W
%CD™
%CD""`™
%CD$™
%E™
%$""‰ECD"”
E™
CD™
CD""`""™
%$"AG•w1%`”
š•EA•""Ž•f•G™
šCDA•<ŽG™
""š""`A•"ŽG™

%$"[CAG”
CD$$š""€AG™
•"A$a1AGG”

F<$%"A$1AGG™


%$"`AF›œG”
<”
‰ECD"WECD"™
WECD"š•‰ECD"AG™
WECD"AG™
WECD"[CAG™
•Aw1%`G”
%FM>AG™



fy
c) NoSQL với Python
}<"*,X!"N%P*M.)>**6:2
 }<#$<4=?@!"#$aFb[V(#
*O?@!"#$*<_0
SO (5aFb[o%6:2 (#}<:^
#  $<  4  >(  #  *<  (0  $  4%  ^  `=%    
†%i||$|%<|%<F$M;.**]*(#
J}<6:\*2 (#*<Vi
%%<
E,L$"#$<4M(i
• >M==?@!"#$
`š%<AŠ‡G
• F2 "$c{"Š%%"‡
"$ˆ{"<š%<"$n"<A`Š%‡G
• [4<!"#$

"$ˆ{"<AG
e.$$<4M!6:'--*"#$t-
d) NoSQL với PHP
}K}"*,X!(02 4.$=M=*%:9
 a*#(?O45?@!"#$7$#BCDEF
}K}r(04.$?@!"#$aFb[_0O (o%

u(}<o%r_0}K}5,(#6-
%%  >(  #  *<  (0  %L  %    Y  $h  @      t
†%i||$||%%
S5%%#$<4"4<*,!"#$?@!"#$(0P*<
(5L<i
f„
%%ˆ1"%%
•ž%%
||%<""€"%<<$"$<
Ÿu[…Do[F›Š>KBsn>ˆB……>‡œšAˆˆns[wˆˆGŠ|"$|—|‡™
7$ˆŸu[…Do[F›Š>KBsn>ˆB……>‡œ‡|%M||%%‡™
7$ˆŸu[…Do[F›Š>KBsn>ˆB……>‡œ‡|%|>FM%%‡™
7$ˆŸu[…Do[F›Š>KBsn>ˆB……>‡œ‡|%"|>D<}"%%‡™
7$ˆŸu[…Do[F›Š>KBsn>ˆB……>‡œ‡|%|>n>%%%‡™
7$ˆŸu[…Do[F›Š>KBsn>ˆB……>‡œ‡|%|>D$ >%%%‡™
"$ˆAAˆˆns[wˆˆGŠ|"$|%%%%‡G™
"$ˆAAˆˆns[wˆˆGŠ|"$|$$%%‡G™
Ÿ%š•nAŠ‡Š%‡G™||•Š‡
Ÿ%c¡AG™||u""
ž¡
5. Ưu, nhược điểm của NoSQL
a) Ưu điểm của NoSQL
• C\*@,7$<X!"#$iS5BCDEFM8R7$<

XJ!"#$8%;L4%<Jc,<J6$"(0
r(M;R12"3S#*<eI,%O4"5>
M5aFb[ML4%t8@,-.*9"*
-<JA6,12"3*$"(0@$P6
*)?4.$G*#"($!
• u;7$<=?@!"#$6MO(5*$<N%"5i>•$,
X#%J!"#$ŽA…‡B""<G$<R"^JBCDEF
(0R4.$(#12"3$<48
@*,]5'BCDEF$<.aFb[**
6:12"3•M!"#$M"hŽ*<(01**BCDEF
$<.
• /X^^8CDoACoGia!#
BCDEF"5$$<PP8^_0"5d!CDo$<-
#%*$M#*(0*M¢"(Za!(*<6
7$#N=5#=M="m%]*.$t#BCDEF
,"- aFb[P(0=M=d(5"-:;$8$
7$;"3i^,2!%L%!"#$K?!XP!"#$
4?;-"3$<=$8$7$;"3aFb[4%?>4
-"*H8!(6e(?c^c(cCDo('
MX87$($#
fg
• 6#$7$;M=i?@!"#$aFb[(2  <
J*):7$;"3*"($!!"#$MBCDEF61$
(5^-<J*#"($!,7$<.m`./=
7$;"*%O_<]|L<aFb[4%?
%OBCDEF.$"8%&%"($!*12"3!"#$?
5,94%?.$
• EXP!"#$"iCMX64$A]4OG-#<
4$J?@!"#$aFb[@-\*?5
BCDEF4.$S#<4$!"#$@BCDEFeI,7$

PQUN6:1;<M;R#%;•=Ž
,M;m]#$7$;2 J#;X
>4-"*!<-aFb[*<r8eI,
Q:1;<! % MX$*
#%Q*£J!"#$
b) Nhược điểm của NoSQL
>$<64.$($:($#(MXq"*6MX6!
9-JaFb[
• /;R`N<iBCDEFY6,"24"L$***X
a!(J,aFb[•V•$'Ž7$JBCDEF"*
$<-LOH=^"N$J6a(5
#%*(2 P.$*<%'<-L?.^
r(^.9RJ6>M"^'aFb[
5t(%-;(58$,QR7$'(
(0^#
• F^_0-%O*;1$4ikBCDEF.$6^_0d
*;1$4#%M1;<^5#J'
>M8$=?@!"#$aFb["*Y$h@E]
,66^N$$HJX<(?*<
8$=67$<XI]5*"N%]t6^_0.$h
"^AJ<=$"*M%OGd9"5?(…"sDE<
E—j
• >O(?OiK8$=aFb[*;!9
 A1Y,M=)jGC6
QRJaFb[r(0%:51$(5%9$8$
J9 *<S#0%%LQ!"#$:LM;
R#$7$;*"ƒ^M^^((0
7$L.$aFb[M#BCDEF**6
:"*(0.$*<>M;8L<,9
(KsSw]}su%:!9 %LQ]

f‹
0%-#aFb[:RQ#
aFb[
• b$;iE,! `-$=M=aFb["*$4%,;
%%MXeI^7$;(-^=Pe,M;
M1=M^#(0.$6aFb[*<<eI
4.$M¢R:*]*4.$_"^:$<P#
• $<-XJ(7$;"3i64.$!(68<JM;
R#7$;"3#BCDEFPBCDEF4"L$*
(02 (1$<->M6!(%:aFb[
H@•T:$Ž•-9$Ž>4-"*
T*<•8(0;7$<=(<L<
OJ*$<: #T(0!$<-aFb[
^^M6MR?4.$55#T!$<-
BCDEF
f•
CHƯƠNG III – Apache Cassandra
o%"*,Y$h@%LMXN%$6M;
R@,Q˜*$"_Q47$?@!"#$
(5,^-?@=M=%L-C<Joz*XP
!"#$J6-D"Ju"k(0@nM6(02
 %=4,-
1. Đặc điểm của Cassandra
- >O%L*MXN%$i
6M;R<-.$<M1$4#
(5]((,:4'"*f"$E,
"$h.$>4;,($"*
!#($*MX6,<J]#(0.$
%,(5XPJ|5E<Fb[D"
*.$#?@!"#$M¤$:J]:*<"*6

?;?XPJ5*%##d
,"*$-#*$<P"($
!\*?5XPJ|5S#*].$r
•MXM.$"m5="N%fa6m'
(0%L%*MXN%$6MX6:
"_$<4*_0˜*
- /;R@,.)
/;R@,@L<.N%=Q@,.$
c-.$<94;],%8!"#$:MX6
<*%;$*,]J<-$8$%  a(
$6%8.;L6%;6,?=,,:!!
"#$J6h,5M"$
"$6:@,7$<X*;7$<X1$,
".k:"*.$*< %;6M;R4%
N56:m8$VN(0
,;J,]4;!"#$*m8$%  <-$
8$(2 5*MX6^"5]4$
P"*,"$a(MX8%;M@,"
7$PMX8<$<49 MX%;^
LV"!"#$t8-,<c•T
4<6*"*6,
E@,7$<X1$4-6ƒ"*"I,M;
R12"3J"$a(6:%;"*.$*<=$
f’
$<:,%89 .;M]=$9 
;"(0(*8%;m8$5%8
9Y<<'.$6MX1;<a(=$6
(•MX8%;%Z*#:67$<X
I"
- >O˜**M;R$"_

>O˜*J,#(0^-M;R
%9<-$8$J#6E,#(0
"*6Q˜*6(%;h.$<Q
*%8.*'<%;6M;R.$*
,"$*6,*?=N#"_@
X7$<-$8$5%8MJ#
6Q˜*a(6:<=
"_"$*MXL<=*6:&%
!"#$=.$$L!"#$$4%;##$R*
;d=$,$L!"#$%;]5
,;'(I]"r" 
- >O47$$
>O47$?;6ƒ"*'"$X(0;.
;54>$<-#@,7$<X"($!!
"#$ƒ"*%;!Q47$Q˜
**M;R$"_At6:"^'y]:
*<GS*Y($`-Q˜*?"*Q47$
SP=6]:"*•<tQ47$Ž9"*
6%&%(.$t9,47$<-$
8$^Lm59,˜*E9,47$"*
,="N%*"%;t-_*%&%
7$<=-;"$%;N=
<%9"':(01"**X
- K(5,
MX67$#*6:#4$!"#$J
P!".$;B;ƒ"*5
,e4M~(6:6,].$,(
_eMX8%;64;,$(?
@!"#$7$#E_e6,M6-"*!"#$
J66:$<N%(0

"($!!"#$;R.$-(
6:MX8%;7$<=(54$!"#$JP
-(=*];8!(Pjk.$*<
46"0=$(d5m8$%:9 
fv
#-*]"I9R"*M(1$<->$<
-.$*<MX6ƒ"*(**MX
%;$<ƒP.4$!"#$><P=M=,XP!
"#$8$*$6=M=$<41$7$XP6
(#?@!"#$7$#(6:^ƒ
.$<4(5*$6$4%!"#$:;"!
$<46
- FpnAMX*$,."(0hG
<-$8$(ƒ,'"*
M<%9"${"</<%^4t"*,
%":!"${"<*$,Q8$
P :a*;!"#$;6:t8(!
"#$*62 ,$*MX8%;ƒ
(5,><PXP6!"#$VX X
P6m`.*=!L$$<4
- K#$R
(0=M=V ON (0($:
J<12"3|"l*:<-.$.$<@
.$$L!"#$5M"(0!"#$M"h
6:,NO(5;X#>
r(0^#46/(
-.$(6:$<P4;]Q
$J*MX%;<#$R
,
2. Kiến trúc

a) Kết nối giữa các nút (giao thức Gossip)
u%"*,9$<.X*6M~
X`.;L*.M*=>
7$Pu%<_L<*_X
J65yM"$X`.
;L*.M*'6Y(0=64;
6T:$.4;M A"$GE,u%6,
%-;"-M=5667$P`h5_
:X`r?ŒV#N%NJ6
b) Các thành viên của cụm và các nút hạt giống
/,m8$6P*N%`4$PJ6:1-J 
96*(0'"*:"-#6(0X`.
M"$k:"-"J (04$P€"
<"_

k:R]^9$<.X`hA%G4;
"$%;6,(0"#M-N%
`4$PJ6k.$*<"*7$'4M,M@,>
],•5M6Y6`=%M:;MM@,"
c) Trạng thái dò thất bại và phục hồi
Ce4"*X7$J`hA%Gdf11
M#"<¥>X`e4r(0
2 :$<=<-$8$d<M=
MX:$<N%(0
a6:4.$$<-LM$(4%89
4jk:O9<*-,"$7$;
-2 `#O":-]"I, 
>4"*(1$<-<"2!4;:
;;*£!"#$*r<%$Mh% ,Y
¥,*

d) Phân vùng dữ liệu trong Cassandra
/M@,, (%;'9!"#$•
(0-"$k.$*<(0^#V'
,%L"$
>!"#$(07$;"3@f (0#("*
,MX]eeSee(0(?95%*
"(0_$#,].$J*,
!"#$>(5M,6:e6%;(0,)*
>)*1OJ-ee*%J!"#$6$
#
,!"#$(0%L7$^-M6*k:1
;8$`-J,eeee(07$<.$
Mhh=M65,)"5?
M6*E_6#5fM$^1ee
!;L*$#@M$^".M.6S5(0m%
1=%9^)*$(0"*`.LJ8$`-
f
e) Nhân bản trong Cassandra
aL;"*7$P"($!;J!"#$-.$:;;
,`N<*M;R$"_/(,M<%AMX
M6G(%;6O7$<=O;
i"(0;*!;(0%L%-
"$="(0L;^-4$PJ :%1ON
"3J*M;!
>;-"$((0'"*LL;E,L
L;Jf6ƒ"*t6,;J_*E,LL
;J6ƒ"*6;_*>4;;(07$
'($MX6;*(0"*O% .'*
M12"37$a(,7$<"$N$LL;MX(0
(07$"(0"$>$<-6::RLL

;*$6-"(0$J$6/LL
;(07$"(0"#•d("#'•(0
%  \"*%9(09,47$A<""G
="(01OL;i
cF%"F<"*]M,M<%V2 
[sF%"F<];8$`--,(01
V%``A%LGD;$(0]-`=%
e.$Mhh*MX11&O]
O$L!"#$
ca•M>%"<F<"*="(0L;(0(OM(
6X`.9(06"$L!"#$]

(6A]M=6G"$:M-.$$L!"#$
="(0*<%&%16-$;($
_$L!"#$
f) Snitches
F"*,*%84$PJ, (02 :
1(06"5$(=*4$"-M=
:AM*6$L!"#$G2 X`*<
:$<=<-$8$df,#$7$;46:FMX
;(@=<-$8$!9 JM**Aa6
MXM:"M==*G
F  (0  4$  P    ,         €"  4$  P
<">4;,"$-2 ,4$P
/)*"$L%-A"GBMO i
MfMMyMfMMy
3. Mô hình dữ liệu Cassandra
>M<%"*?94;!"#$9 (?^5,
?@!"#$<"(0h,?@!"#$7$#D-M<%"*
,].$(0"${"<(?^(;"$

{"<9,*,N%,(01@,•M<9
 $4%E_e"*,"${"<MX4=%;6
,
MX%]7$#!"${"<(*?@!
"#$7$#^#5;iMX6M6*
#W"${"<M$<4MX(0_0E_"${"<6
,N%,^9(0^:(0$<N%$:I
Y$<4*6d9 
a) Keyspaces
>M<%"*?(!"#$9 ("(0h
,?@!"#$7$#M<%(0:6"$
{"<"5$>(P,"$6,"${"<,9
 S#L;(0.$M:-?@M<%P!"#$6!
<-$8$L;M$-]@!M<%M$/<%
MX(0=M=:2 (,"5%;h7$'XP
!"#$*6t(,:.$M:#L;!"#$,N%
"${"<
y
b) Column-Families
>(ƒ"${"<"${"<6
:A*-Gƒ.,(,^^*
,e(01@9 E_e6:6"(0,M
$E]"${"<4"(^=_"$
{"<MX**MX6"(0hE_"${"<-(0=M=
:9,M:$!"#$6M:$H$=M="${"<%=
i"${"<,*¦
E,"${"<¦2 ,N%(?-,,*
5?@!"#$7$#?SO ,"${"<"($!!"#$
(6:6,-(t"#jE]
e•6,N%,MXm$,%;61

4;,"${"<¦(6(0ƒƒ
(5_,
E,"${"<,N (0($:M;RJ
:-,4M~ *9 $4%:"($!!"#$E,
"${"<,%&%Q(5N%M=7$;*"($
,e?:$<4!"#$#$7$;E_e"*,%J!
"#$IY,$<4 :
c) Columns
,"*?!"#$I4a6"*,,h6-
*,YE,,%;6-*-6:"*,Y¦A(
•-Ž<•"ŽG]66:(0]^,M,(0@9
 
,6:(0t -J6>$<-'=J
t ,"*MX_0$<4<-$8$$<N%=!"#$6
9^(!"#$$_>(0%*<t 94%
-,,Y"*MXJP(MX:.$M:9
^m%1=%J,5,t 94%S5!(0%9^
m%1=%"*7$'#$<PJX,"${"<(,t
 "*,M:9$,!"#$(0m%1=%9^
E,,MX4=%;6,kXM4;X`9 
8:IY,$<4*66:(0"($!<@-J,SO
 =$(2 ,"${"<(,P :
6:$<4ed"${"<M4;!P(
8"*"($!M6e*(TM=6:
„
2 ,Y:1N%N84J,,
aY(0$4%@9 aY84"$X
(0M<-$8$!"#$=$.$%-N%N,,,e
,"PN%N%54"*N%N•(0h
4. Cài đặt Cassandra

*]-#.$*‚$$fy„i
§-$8$#i
*]‰•4"*…"|F$‰SEr<5…%‰C/
*sDE‰SEMX<-‰BM
*]i
• C•"  %-  ;        J
†%i||%|•"|
• u;&6;.
• *  ]    (    data_file_directories, commitlog_directory và
saved_caches_directory 
• /@,VL$"#¨|c{¨-"
5. Demo Cassandra
g

×