ΠΠ΄ΡΠ°Π²Π΅ΠΉ, Π₯Π°Π±Ρ.
ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΡΠ° ΠΡΡΡΠΈΠΌΠΎΠ² ΠΈ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° Cassandra. ΠΠΎΡΡ ΡΠ°Π·ΠΊΠ°Π· ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΠ° ΠΈΠΌΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ NoSQL Π±Π°Π·ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ°ΠΌΡΠ½ΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅. Π Π°ΠΊΠΎ ΠΎΡΠ²Π΅Π½ Oracle ΠΈΠ»ΠΈ Π΄ΡΡΠ³Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π½Π΅ ΡΡΠ΅ Π²ΠΈΠΆΠ΄Π°Π»ΠΈ Π½ΠΈΡΠΎ, ΡΠ΅Π·ΠΈ Π½Π΅ΡΠ° ΡΠ΅ Π²ΠΈ ΡΠΏΠ°ΡΡΡ ΠΆΠΈΠ²ΠΎΡΠ°.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Ρ ΡΠ±Π°Π²ΠΎΡΠΎ Π½Π° Cassandra? Π’ΠΎΠ²Π° Π΅ NoSQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π±Π΅Π· Π΅Π΄ΠΈΠ½Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΎΡΠΊΠ°Π·, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎΠ±ΡΠ΅. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ° ΠΊΡΠΌ Π½ΡΠΊΠΎΡ Π±Π°Π·Π°, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΠ·Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΡΠΊΠ°ΡΠ΅ Π΄Π° Ρ ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅ Π² Π½ΠΎΠ² Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ? ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΠ·Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ RPS? ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΠ·Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ ΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ.
Π ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡΠ΅ Π΅ Π΄ΠΎΠ±ΡΠ°? Π ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΎ β ΡΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ Π΅? 10, 20, 30, 40 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° β ΡΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ. 100 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π·Π° Π·Π°ΠΏΠΈΡ β ΡΡΡΠΎ. ΠΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ²ΡΡΠ΄ΡΡ, ΡΠ΅ Π·Π°Π»Π°Π³Π°Ρ 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ° ΡΡΡ , Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ²ΡΡΠ²Π°ΡΠ΅.
Π Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Cassandra ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ β ΡΡ Π²ΡΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° ΡΡΡ
. Π Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π³ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅.
ΠΠ΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΅Π΄Π½Π°ΠΊΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π½Π°ΡΠΈΠ½.
ΠΠ΅Π΄Π½ΡΠΆ ΠΈΠ΄Π²Π° ΠΏΡΠΈ ΠΌΠ΅Π½ ΠΊΠΎΠ»Π΅Π³Π° ΠΈ ΠΏΠΈΡΠ°: "ΠΡΠΎ, Π‘QL Cassandra query language, ΠΈΠΌΠ° select statement, ΠΈΠΌΠ° where, ΠΈΠΌΠ° and. ΠΠΈΡΠ° Π±ΡΠΊΠ²ΠΈ ΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ°ΡΠΎ?". ΠΠΊΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡΡΠ΅ ΠΊΡΠΌ Cassandra ΠΊΠ°ΡΠΎ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠΎΠ²Π° Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΈΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ ΠΏΠΎ ΠΆΠ΅ΡΡΠΎΠΊ Π½Π°ΡΠΈΠ½. Π Π½Π΅ Π³ΠΎ ΠΏΡΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡΠ°ΠΌ, ΡΠΎΠ²Π° Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½ΠΎ Π² Π ΡΡΠΈΡ. ΠΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°ΡΠ΅ Π½Π΅ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ΄Π²Π° ΠΏΡΠΈ Π½Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΠΊΠ°Π·Π²Π°: "ΠΠ΅ΠΊΠ° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΠΏΡΠΈ. Π©Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΡΠΈΡ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΡΠ΅ ΠΈ Π°ΠΊΡΡΠΎΡΠΈΡΠ΅ Π² ΡΡΡ ". ΠΠΈΠ΅ ΡΠ°Π΄ΠΎΡΡΠ½ΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΠΌΠ΅: "ΠΠ΅ΠΊΠ°!". Π’ΠΎΠ²Π° ΡΠ° Π΄Π²Π° Π±Π°ΠΉΡΠ° Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠΌ, Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ Π³ΠΎΡΠΎΠ²ΠΎ, Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. Π Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π΅ Π΄ΠΎΠΉΠ΄Π°Ρ ΠΈ Π½Π΅ ΠΊΠ°ΠΆΠ°Ρ, ΡΠ΅ Π΄ΠΎΠΌΠ°ΠΊΠΈΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ: ΡΠ΅ ΠΈΠΌΠ°Ρ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΈ ΠΈΡΠΊΠ°Ρ Π΄Π° Π·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠΈΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΠ³ΠΎΡΠ²ΡΡ. ΠΠΈΠ΅ ΡΡΠ΅ ΠΌΡΡΡΠ²ΠΈ.
ΠΡΠΈΡΠΊΠΎ Π΅, Π·Π°ΡΠΎΡΠΎ Cassandra Π΅ Ρ ΠΈΠ±ΡΠΈΠ΄Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ: ΡΡ Π΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ key value, ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠΈΡΠΎΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° Java ΠΈΠ»ΠΈ Kotlin, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
Map<RowKey, SortedMap>
Π’.Π΅. ΠΊΠ°ΡΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° ΠΈ ΡΠΎΡΡΠΈΡΠ°Π½Π° ΠΊΠ°ΡΡΠ°. ΠΡΡΠ²ΠΈΡΡ ΠΊΠ»ΡΡ Π·Π° ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠ° Π΅ Row key ΠΈΠ»ΠΈ Partition key β ΠΊΠ»ΡΡ Π·Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅. ΠΡΠΎΡΠΈΡΡ ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΊΠ»ΡΡ Π·Π° Π²Π΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Π½Π°ΡΠ° ΠΊΠ°ΡΡΠ°, Π΅ Clustering key.
ΠΠ° ΠΈΠ»ΡΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎΡΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π°ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΡΡΠΈ Π½ΠΎΠ΄ΠΈ. Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅. ΠΠ°ΡΠΎΡΠΎ Π°ΠΊΠΎ ΡΠ»ΠΎΠΆΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ Π² Π΅Π΄ΠΈΠ½ (Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Ρ ΠΈΠ»ΡΠ΄Π°, Π΄Π²Π΅ Ρ ΠΈΠ»ΡΠ΄ΠΈ, ΠΏΠ΅Ρ β ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅), ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. ΠΠ°ΡΠΎΠ²Π° Π½ΠΈ Π΅ Π½ΡΠΆΠ½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π²ΡΡΡΠ° ΡΠΈΡΠ»ΠΎ. ΠΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ, Π΄ΡΠ»ΡΠ³ int, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π Π΅Π΄Π½Π° Π½ΠΎΠ΄Π° ΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° Π΅Π΄ΠΈΠ½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π²ΡΠΎΡΠ°ΡΠ° β Π·Π° Π²ΡΠΎΡΠΈ, n-ΡΠ°ΡΠ° β Π·Π° n-ΡΠΈΡ.

Π’ΠΎΠ²Π° ΡΠΈΡΠ»ΠΎ ΡΠ΅ Π²Π·ΠΈΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ Partition key. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° Primary key, ΠΈ ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΡΠ²ΠΈΡΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΊΠ»ΡΡ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ°. Π’Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ, Π² ΠΊΠΎΡ Π½ΠΎΠ΄Π° ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ ΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. Π’Π°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π² Cassandra ΠΏΠΎΡΡΠΈ Ρ ΡΠ°ΠΊΡΠ² ΡΡΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ Π² SQL:
CREATE TABLE users (
user_id uuid,
name text,
year int,
salary float,
PRIMARY KEY(user_id)
)
Primary key Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°, ΠΊΠΎΡΡΠΎ ΡΡΡΠΎ Π΅ ΠΊΠ»ΡΡ Π·Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅.
ΠΠ°ΠΊ ΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅? Π§Π°ΡΡ ΠΎΡ ΡΡΡ ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ Π½Π° Π΅Π΄Π½Π° Π½ΠΎΠ΄Π°, ΡΠ°ΡΡ β Π½Π° Π΄ΡΡΠ³Π°, ΠΈ ΡΠ°ΡΡ β Π½Π° ΡΡΠ΅ΡΠ°. ΠΠΎΠ»ΡΡΠ°Π²Π° ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°, Ρ.Π΅. ΠΊΠ°ΡΡΠ°, Π° Π² Python β ΡΠ΅ΡΠ½ΠΈΠΊ, ΡΡΡΠΎ ΡΠ°ΠΊΠ° β ΠΏΡΠΎΡΡΠ° key value ΡΡΡΡΠΊΡΡΡΠ°, ΠΎΡ ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ΡΠ΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ ΠΈ ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ ΠΊΠ»ΡΡ.

Select: ΠΊΠΎΠ³Π°ΡΠΎ allow filtering ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² ΠΏΡΠ»Π΅Π½ ΡΠΊΠ°Π½, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ
ΠΠ΅ΠΊΠ° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½ΡΠΊΠ°ΠΊΡΠ² select statement: select * from users where userid = . ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π΅ ΠΊΠ°ΡΠΎ Π² Oracle: ΠΏΠΈΡΠ΅ΠΌ select, ΡΠΊΠ°Π·Π²Π°ΠΌΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ°Ρ. ΠΠΎ Π°ΠΊΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°ΠΆΠ΄Π°Π½Π΅, Cassandra ΠΈΠ·Π΄Π°Π²Π° Π³ΡΠ΅ΡΠΊΠ°, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ Π·Π°ΠΏΠΈΡΠ°. ΠΠ°ΡΠΎΡΠΎ Π½Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°ΠΆΠ΄Π°Π½Π΅ β ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ. Π’ΠΎΠ³Π°Π²Π° ΡΡ ΠΊΠ°Π·Π²Π°: Β«ΠΠΎΠ±ΡΠ΅, ΠΌΠΎΠ³Π° Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½Ρ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡ. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ allow filteringΒ». ΠΠΎΠ±Π°Π²ΡΠΌΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ°, Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ. Π Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π½Π΅ΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ. ΠΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π·Π°ΠΏΠΈΡΠ°, Π½Π΅ΡΠ°ΡΠ° Π½Π΅ Π²ΡΡΠ²ΡΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π΄ΠΎΠ±ΡΠ΅. ΠΠ°ΡΠΎΡΠΎ allow filtering β ΡΠΎΠ²Π° Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Cassandra Π΄Π° ΡΡΠ±Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Π½ΠΎΠ΄ΠΎΠ²Π΅, Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ²Π΅ (Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π² ΡΠΎΠ·ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ), ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΎΡΡΠΈΠ»ΡΡΠΈΡΠ°. Π’ΠΎΠ²Π° Π΅ Π°Π½Π°Π»ΠΎΠ³ Π½Π° Full Scan ΠΈ Π΅Π΄Π²Π° Π»ΠΈ Π½ΡΠΊΠΎΠΉ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΠΊΠΎ Π½ΠΈ Π±ΡΡ Π° Π½ΡΠΆΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ, ΡΠ΅ΡΠ΅ Π΄Π° Π΅ ΠΎΠΊΠ΅ΠΉ. ΠΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π° Π½Π°Π»Π°Π³Π°ΠΌΠ΅ Π΄ΡΡΠ³ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΠ·Π²Π°Π΄ΠΊΠΈΡΠ΅. ΠΠ°ΡΠΎΠ²Π° ΡΠΈ ΡΠΏΠΎΠΌΠ½ΡΠΌΠ΅: Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ°ΠΏΠ°, ΡΠΈΠΉΡΠΎ ΠΊΠ»ΡΡ Π΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ, Π½ΠΎ Π²ΡΡΡΠ΅ Π² Π½Π΅Ρ ΠΈΠΌΠ° ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΌΠ°ΠΏΠ°.
Π ΡΡ ΡΡΡΠΎ ΠΈΠΌΠ° ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ Clustering Key. Π’ΠΎΠ·ΠΈ ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π±Π΅ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Cassandra Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΈ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π²ΡΡΠΊΠ° Π½ΠΎΠ΄Π°. Π’ΠΎΠ΅ΡΡ, Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Partition key Clustering key ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² ΡΠΎΠ²Π° Π΄ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΡΡΡΠΎ ΡΠ΅ Π·Π°Π΅ΠΌΠ°Ρ.
Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄ΡΡΠ²ΠΎ, ΡΠ°ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π²ΡΠ² Π²ΠΈΠ΄ Π½Π° ΠΎΠ±Π΅ΠΊΡ, ΠΈ ΡΠΎΠΉ ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΡΡΡΠΎ Π² Π²ΠΈΠ΄ Π½Π° ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅.
CREATE TABLE users_by_year_salary_id (
user_id uuid,
name text,
year int,
salary float,
PRIMARY KEY((year), salary, user_id)
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° Primary key, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΡΠ²ΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π³ΠΎΠ΄ΠΈΠ½Π°) Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Partition key. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½ΡΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΊΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ, ΠΎΡΠ΅ Π²Π΅Π΄Π½ΡΠΆ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² ΡΠΊΠΎΠ±ΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Primary key, Π° Π·Π°Π΄ Π½Π΅Π³ΠΎ ΠΈΠ΄Π²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ β Clustering key. Π’Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° Π² ΡΠ΅Π΄Π°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ. Π’ΠΎΠ΅ΡΡ, ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Π΅ ΠΏΠΎ-Π·Π½Π°ΡΠΈΠΌΠ°, Π²ΡΠΎΡΠ°ΡΠ° β ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π½Π°ΡΠΈΠΌΠ° ΠΈ Ρ.Π½. ΠΠ°ΠΊΡΠΎ ΠΏΠΈΡΠ΅ΠΌ Π·Π° data ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»Π΅ΡΠ° equals: ΠΈΠ·Π±ΡΠΎΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° ΠΈ Π·Π° ΡΡΡ ΡΠΊΠ°Π·Π²Π°ΠΌΠ΅, ΠΊΠΎΠΈ ΡΠ° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ, Π° ΠΊΠΎΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ. Π Cassandra ΡΠΎΠ²Π°, ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ° ΠΏΠΎΠ»Π΅ΡΠ° Π½Π° data class, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡΡ Π·Π° Π½Π΅Π³ΠΎ equals.
ΠΠ°Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΎΡΡΠΈΡΠ°Π½Π΅, Π½Π°Π»Π°Π³Π°ΠΌΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ ΡΠ΅Π΄ΡΡ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ (Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ, Π½ΡΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) ΡΠ΅ Π·Π°Π΄Π°Π²Π° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠ° ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π’ΠΎΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠ°ΠΊ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Clustering key ΠΈΠ»ΠΈ ΡΠ΅Π΄Π° Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½ΠΎΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ Π΄Π° ΠΏΡΠ΅Π»ΠΈΠ²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² Π½Π΅Ρ. Π‘ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ²Π° Π½ΡΠΌΠ° Π΄Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠΠ°ΠΏΡΠ»Π½ΠΈΡ
ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ Π²ΠΈΠ΄ΡΡ
ΠΌΠ΅, ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ
Π° Π² ΠΊΡΡΠ³ ΠΏΡΡΠ²ΠΎ ΠΏΠΎ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°ΠΆΠ΄Π°Π½Π΅, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΡΡΠ΅ Π½Π° Π²ΡΡΠΊΠ° Π½ΠΎΠ΄Π° ΠΏΠΎ Π·Π°ΠΏΠ»Π°ΡΠ° ΠΈ ΠΏΠΎ user ID. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΡΠ°ΠΌΠ΅, Π½Π°Π»Π°Π³Π°ΠΉΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π½Π°ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠ΅Ρ where, and, ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ, ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΅ Π½Π°ΡΠ΅Π΄. ΠΠΎ Π°ΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΡΠ°ΡΡ ΠΎΡ Clustering key, ΠΈ ΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π½Π°ΡΠΈΠΌΠ°, Cassandra Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΈΠ·Π»Π΅Π·Π΅ Ρ Π³ΡΠ΅ΡΠΊΠ°, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ Π² Π½Π°ΡΠ°ΡΠ° ΠΊΠ°ΡΡΠ° ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΠ΅Π·ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° null, Π° ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠΎΠΊΡ-ΡΠΎ Π·Π°Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ β ΠΊΡΠ΄Π΅ Π»Π΅ΠΆΠΈ. Π©Π΅ ΡΡΡΠ±Π²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»Ρ Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π·ΠΈ Π½ΠΎΠ΄Π° ΠΈ Π΄Π° Π³ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°ΠΌ. Π ΡΠΎΠ²Π° Π΅ Π°Π½Π°Π»ΠΎΠ³ Π½Π° Full Scan Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π½ΠΎΠ΄Π°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π»ΠΎΡΠΎ.
Π Π²ΡΡΠΊΠ° Π½Π΅ΡΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΡΡΠ·Π΄Π°Π²Π°ΠΉ Π½ΠΎΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ°
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎ ID, Π²ΡΠ·ΡΠ°ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°ΡΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ? ΠΠΈΡΠΎ. ΠΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΠΈ. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½Π° β ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΠΈ. ΠΡΠΌΠΈΠ½Π°Ρ Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ²Π°Ρ ΠΌΠ΅ ΠΌΡΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΅Π²ΡΠΈΠ½ΠΈΡΡ ΡΠ΅ΡΡΡΡ. Π’ΠΎΠΉ ΡΡΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½ΠΎ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠ°Π»Π½ΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΈΡΡΠ½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π½Π΅ΡΠΎ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π° 10 ΠΌΠΈΠ½ΡΡΠΈ.
ΠΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅Π½ΡΠΌΠ΅ ΠΈΠ·Π»ΠΈΡΠ½ΠΎΡΠΎ Π·Π°Π΅ΡΠΎ ΠΌΡΡΡΠΎ, Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎΠ±ΡΠ΅, Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. ΠΡΡΡΠ½ΠΎΡΡ, ΠΊΠ»ΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΡΠΈ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ°, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΠΏΠΎ ΠΏΠ΅Ρ Π½ΠΎΠ΄Π°, ΠΏΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ (ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π½ΠΈΡΠΎ Π½Π΅ ΡΠ΅ Π³ΡΠ±ΠΈ), Π΅ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π° ΠΏΡΠ΅ΠΆΠΈΠ²Π΅Π΅ Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΠ»Π½ΠΎ. Π ΠΎΡΠ΅ ΠΏΠΎ Π΄Π²Π΅ Π½ΠΎΠ΄ΠΈ Π² ΠΎΡΡΠ°Π²Π°ΡΠΈΡΠ΅ Π΄Π²Π°. Π ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° Π΄ΠΎΠ±ΡΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½Π΅, ΡΡΡΡΠ²Π° Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ SSD Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Cassandra, ΠΊΠΎΡΡΠΎ Π½Π΅ Π΅ SQL, Π² ΠΊΠΎΡΡΠΎ Π½ΡΠΌΠ° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ, Π²ΡΠ½ΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°.
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΎΡ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ. ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΡΡΠ°Π²Π°Ρ Π½Π΅ Π΄Π°Π½Π½ΠΈΡΠ΅, Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΡΡ . ΠΠΊΠΎ ΠΌΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ ΠΈΠ»ΠΈ ΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π²Π»Π΅Π·Π΅ΠΌ Π² Full Scan ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Cassandra Π½ΡΠΌΠ° Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ.
ΠΠ΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ. ΠΠ°Π±ΡΠ°Π²ΡΠΌΠ΅ Π·Π° Π½ΠΎΡΠΌΠ°Π»Π½ΠΈΡΠ΅ ΡΠΎΡΠΌΠΈ, Π²Π΅ΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ. ΠΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π½Π΅ΡΠΎ 100 ΠΏΡΡΠΈ, ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°ΠΌ 100 ΠΏΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° Π·Π°Π±Π°Π²ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ ΡΠ°ΠΊΠ°, ΡΠ΅ ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ. ΠΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Ρ Π΅ΡΡΡ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π° Π² Π΅Π΄ΠΈΠ½ ΡΠ΅ΡΠ΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π’ΠΎΠ΅ΡΡ, Π³ΠΎΠ΄ΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ Π΅ Π»ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠΉ Π΅ Π΄ΠΎΠ±ΡΡ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΡΠΎΠ΄Π΅Π½ΠΈ ΠΏΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΈ Π»ΠΎΡ, Π°ΠΊΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΡΡΠ΅Π½ΠΈΡΠΈ ΠΎΡ 5-ΡΠΈ ΠΊΠ»Π°Ρ β ΡΠ°ΠΌ Π½Π΅ΡΠ°ΡΠ° Π½Π΅ ΡΠ΅ ΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Ρ Π΄ΠΎΠ±ΡΠ΅.
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° Π΅Π΄ΠΈΠ½ ΠΏΡΡ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Clustering Key. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π΄ΡΡΠ³ ΠΊΠ»ΡΡ.
Π Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ: Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ 100 ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°, ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ 100 ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
