CQL3 рдореЗрдВ рдХреИрд╕реЗрдВрдбреНрд░рд╛ 2.0 рдореЗрдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ

рдпрд╣ рд▓реЗрдЦ рдХреИрд╕рдВрдбреНрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ "рдЯреЗрдмрд▓" рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

рдХреИрд╕рдВрдбреНрд░рд╛ рдХреЗ рдХрдИ рд░рд┐рд▓реАрдЬ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕рд╣реА рд╡реЗрдХреНрдЯрд░ рд▓рд┐рдпрд╛ред рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ, рдЬреИрд╕реЗ рдЧрддрд┐ рдФрд░ рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд╛рд╕рди рдФрд░ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рдЕрдм рдПрдХ рддрдВрдмреВрд░рд╛ рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдХреБрдЫ рдЖрджреЗрд╢ рдпрд╛ рдПрдХ .msiред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ CQL (рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛) рдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛, рдмрд╛рдЗрдирд░реА рдФрд░ рдЬрдЯрд┐рд▓ рднрд╛рд╖рд╛ рдереНрд░рд┐рдлреНрдЯ рдХреА рдЬрдЧрд╣ред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХрд╛рд╕рд╛рдВрджреНрд░рд╛ рдХреЗ рд▓рд┐рдП рд░реВрд╕реА-рднрд╛рд╖рд╛ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдХрдард┐рди рд╡рд┐рд╖рдп рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ?


рддреНрдпрд╛рдЧ



рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо




C * рдореЗрдВ рдмреЗрд╕рд┐рдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдирд┐рдпрдо


рдХрд╛рд╕рд╛рдВрджреНрд░рд╛ рдЕрдзрд┐рдХрддрдо рд╡рд┐рддрд░рд┐рдд рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ SELECT рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ "рддрд╛рд▓рд┐рдХрд╛рдУрдВ" рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ, рд╣рдо рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ, рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдФрд░ рдлрд┐рд░ SELECT ... JOIN ... рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ SELECT ... JOIN ... рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдХреИрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред RDBMS рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдЬреЙрдЗрди рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╡реЗ CQL рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдгред


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд┐рд╕реА рдХрдВрдкрдиреА рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВред рдЖрдЗрдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд▓рдо рдкрд░рд┐рд╡рд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдХреНрдпреВрдПрд▓ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реЗ рд╕реАрдХреНрдпреВрдПрд▓ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреА рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП) рд╕реАрдХреНрдпреВрдПрд▓ рдореЗрдВ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗрдВ:
 CREATE TABLE employees ( name text, --   age int, -- -    role text, --  -  PRIMARY KEY (name)); --     INSERT INTO employees (name, age, role) VALUES ('john', 37, 'dev'); INSERT INTO employees (name, age, role) VALUES ('eric', 38, 'ceo'); 

C * рдореЗрдВ рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдПрдХ PRIMARY KEY рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ:
 SELECT * FROM employees; 

рдпрд╣ рдЪрд┐рддреНрд░ рдПрдХ рд╣рд╛рде рд╕реЗ рд╕рдЬрд╛рдпрд╛ cqlsh рдЖрдЙрдЯрдкреБрдЯ рд╣реИред


рдпрд╣ рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред C * рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдмрдирд╛рдПрдЧрд╛ред

рдЪреЗрддрд╛рд╡рдиреА! рдпреЗ рджреЛ рдЖрдВрддрд░рд┐рдХ рдкрдВрдХреНрддрд┐ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ , рди рдХрд┐ рдЯреЗрдмрд▓ред рдпрджрд┐ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рд╣реИ, рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдЫреЛрдЯреА рдореЗрдЬ рдХреА рддрд░рд╣ рд╣реИред рдЖрдЧреЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдгред


рдЬрдЯрд┐рд▓ред рдХрдВрдкрдиреА рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝реЗрдВред
 CREATE TABLE employees ( company text, name text, age int, role text, PRIMARY KEY (company,name) --    :   company    name ); INSERT INTO employees (company, name, age, role) VALUES ('OSC', 'eric', 38, 'ceo'); INSERT INTO employees (company, name, age, role) VALUES ('OSC', 'john', 37, 'dev'); INSERT INTO employees (company, name, age, role) VALUES ('RKG', 'anya', 29, 'lead'); INSERT INTO employees (company, name, age, role) VALUES ('RKG', 'ben', 27, 'dev'); INSERT INTO employees (company, name, age, role) VALUES ('RKG', 'chan', 35, 'ops'); 

рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ:
 SELECT * FROM employees; 


рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ - company - рдПрдХ рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рд╕реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реА name рдХреБрдВрдЬреА рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рд╣реИред рд╡рд╣ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдХреЙрд▓рдо рдирд╛рдо рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде 'рдПрд░рд┐рдХ' рдерд╛, рдФрд░ рдХреЙрд▓рдо рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЧрдпрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдм рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рджрд┐рдЦрддреА рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


рддреАрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдгред


рдФрд░ рднреА рдХрдард┐рдиред рдХреИрдкрд┐рдЯрд▓ рдЕрдХреНрд╖рд░ рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рд╣реИред рд▓реЛрдЕрд░рдХреЗрд╕ - рдбреЗрдЯрд╛ред
 CREATE TABLE example ( A text, B text, C text, D text, E text, F text, PRIMARY KEY ((A,B), C, D)); --    (A,B)    (C,D) INSERT INTO example (A, B, C, D, E, F) VALUES ('a', 'b', 'c', 'd', 'e', 'f'); INSERT INTO example (A, B, C, D, E, F) VALUES ('a', 'b', 'c', 'g', 'h', 'i'); INSERT INTO example (A, B, C, D, E, F) VALUES ('a', 'b', 'j', 'k', 'l', 'm'); INSERT INTO example (A, B, C, D, E, F) VALUES ('a', 'n', 'o', 'p', 'q', 'r'); INSERT INTO example (A, B, C, D, E, F) VALUES ('s', 't', 'u', 'v', 'w', 'x'); 

рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ:
 SELECT * FROM example; 



рдЕрдм рд╣рдорд╛рд░реА рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА рд╕рдордЧреНрд░ рд╣реИ - (A,B) ред рдХреНрд▓рд╕реНрдЯрд░ рдХреБрдВрдЬреА рднреА рд╕рдордЧреНрд░ рд╣реИ - C, Dред

рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдбреЗрдЯрд╛ рдЬреИрд╕реЗ c, d, g, k, o, p, u, v рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдореЗрдВ рдИ рдФрд░ рдПрдл рдХреЗ рд╕рд╛рде рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ:




рдпрд╣ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдХреНрдпреЛрдВ рд╣реИ?


рдпрд╣ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЕрдирдВрдд рдорд╛рддреНрд░рд╛ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИред рд╕реА * рдХреЛ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MongoDB, HBase рдФрд░ C * рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдг


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1000 рдЧреБрдирд╛ рд╣реЛрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдХреЗрддрдХ рд╢реЛрд░ рд╕реНрддрд░ рдХреЗ рд╕реЗрдВрд╕рд░ рд╕реЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред 10 рд╕реЗрдВрд╕рд░ред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдмрд╛рд░ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ 3 рдХрд╛рд░реНрдп рд╣реИрдВ:
  1. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ (рдиреЛрдб) рдЕрдкрдирд╛ рдХрд╛рдо рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рддреЛ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред
  2. 1000 рд╕реЗрдХрдВрдб рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред
  3. рдХрд┐рд╕реА рднреА рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рджрд┐рди рдХрд┐рд╕реА рднреА рд╕реЗрдВрд╕рд░ рдХрд╛ рдЧреНрд░рд╛рдл рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
  4. рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реЗрдВрд╕рд░ рдХрд╛ рдЧреНрд░рд╛рдл рдкреНрд░рджрд╛рди рдХрд░реЗрдВред


рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рдЕрдВрдХ рдЖрд╕рд╛рди рд╣реИрдВред

рд╣рдореЗрдВ рдХрдИ рдиреЛрдбреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдмрдирд╛рдПрдВред рдпрд╣ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдмрд╛рджрд▓ рдореЗрдВ рднреА рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рддреАрд╕рд░рд╛ рдмрд┐рдВрджреБ рдореБрдЦреНрдп рдЪрд╛рд▓ рд╣реИред

рд╣рдо рдПрдХ рджрд┐рди рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
 CREATE TABLE temperature_events_by_day ( day text, -- Text of the following format: 'YYYY-MM-DD' sensor_id uuid, event_time timestamp, temperature double, PRIMARY KEY ((day,sensor_id), event_time) --  .  (day,sensor_id)    (event_time) ) WITH CLUSTERING ORDER BY event_time DESC; --     

рдЪреВрдВрдХрд┐ рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА рджрд┐рди + рд╕реЗрдВрд╕рд░ рдХрд╛ рдПрдХ рдЕрдиреВрдард╛ рд╕рдВрдпреЛрдЬрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрджрд░ рд░рд┐рд╡рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо "рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░" рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдЕрдВрддрд┐рдо) рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА (рджрд┐рди) рдХреА рдЦреЛрдЬ C * рдореЗрдВ рдПрдХ рдмрд╣реБрдд рддреЗрдЬ рд╕рдВрдЪрд╛рд▓рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреАрд╕рд░реЗ рдмрд┐рдВрджреБ рдХреЛ рдкреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЪреМрдерд╛ рдмрд┐рдВрджреБ

рдмреЗрд╢рдХ, рд╣рдо рдПрдХ рджрд┐рди / рджрд┐рди рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рджрд┐рди рдХреЗ рдЕрдВрджрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрдИ рджрд┐рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 10 рд╕реЗрдВрд╕рд░ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реЗрдВрд╕рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, C * рдбрд┐рд╕реНрдХ рдкрд░ рд╕рднреА рджрд╕ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИред

рдЪрд▓реЛ рджреВрд╕рд░реА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рджрд┐рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
 CREATE TABLE temperature_events ( sensor_id uuid, event_time timestamp, temperature double, PRIMARY KEY (sensor_id, event_time) --   (sensor_id)    (event_time) ) WITH CLUSTERING ORDER BY event_time DESC; --     


рдФрд░ рдЬрдм рд╣рдо рдбреЗрдЯрд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ 2 рдмрд┐рд▓рд┐рдпрди рдХреЙрд▓рдо рдХреА рдЖрджрдд рди рдкрдбрд╝реЗред рд╣рдорд╛рд░реЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рд╕реЗ рдЕрдзрд┐рдХ рд░реАрдбрд┐рдВрдЧ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕реЗ:
2**31 / (24 * 60 * 60 * 100 /) = 2147483648 / (24 * 60 * 60 * 100) = 248.55
248 рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж, рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛ рдЪреБрдкрдЪрд╛рдк рдФрд░ рдЪреБрдкрдЪрд╛рдк рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
 INSERT INTO temperature_events (sensor_id, event_time, temperature) VALUES ('12341234-1234-1234-123412', 2535726623061, 36.6) TTL 21427200; -- 248 days in seconds 


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ, рдпрд╣ рд╢рд░реНрдд рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдкрд┐рдЫрд▓реЗ 248 рджрд┐рдиреЛрдВ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рддрд╛рдкрдорд╛рди_рдХреЗрд╡рддреН___ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ temperature_events ред рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдирд╛ рдХрдИ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддреЗрдЬрд╝реА рд╕реЗ рд╣реЛрдЧрд╛ред

тАЬрдХреНрдпрд╛ рдмрдХрд╡рд╛рд╕ рд╣реИ! рдПрдХ рджреВрд╕рд░реА рдореЗрдЬ рдХреНрдпреЛрдВ? тАЭрдЖрдк рд╕реЛрдЪреЗрдВрдЧреЗ рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ: рд╕реА * рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд╣реА рдореВрд▓реНрдп рдХреЛ рдХрдИ рдмрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрджрд░реНрд╢, рд╕рд╣реА рдореЙрдбрд▓ рд╣реИред рдЬреАрдд рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:


рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ


рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
  1. рд╡реЗрдмрд┐рдирд╛рд░ - рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП CQL3 рдореИрдкреНрд╕ рдХреЛ рд╕рдордЭрдирд╛ ред
  2. рд╡реЗрдмрд┐рдирд╛рд░ - рдж рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдбреЗрдб, рд▓реЙрдиреНрдЧ рд▓рд╛рдЗрд╡ рдж рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╣реИ
  3. рд╡реЗрдмрд┐рдирд╛рд░ - рдПрдХ рд╕реБрдкрд░ рдореЙрдбрд▓рд░ рдмрдиреЗрдВ
  4. рд╡реЗрдмрд┐рдирд╛рд░ - рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрдЧрд▓рд╛ рд╢реАрд░реНрд╖ рдбреЗрдЯрд╛ рдореЙрдбрд▓
  5. рдкреВрд░реНрдг CQL3 рдкреНрд░рд▓реЗрдЦрди - рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ (CQL) v3


рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдЧрд▓рд╛ рд▓реЗрдЦ ред


UPD: рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рд╕реБрдзрд╛рд░ред "рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА" рдХреЗ рд╕рд╛рде "рдорд╛рд╕реНрдЯрд░ рдХреБрдВрдЬреА" рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рд╣реА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ "рдХреНрд▓рд╕реНрдЯрд░ рдХреБрдВрдЬреА" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

Source: https://habr.com/ru/post/In203200/


All Articles