Cassandra. Как Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρˆ, Π°ΠΊΠΎ знаСш само Oracle

Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Π₯Π°Π±Ρ€.

Казвам сС Миша Π‘ΡƒΡ‚Ρ€ΠΈΠΌΠΎΠ² ΠΈ искам Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° Cassandra. ΠœΠΎΡΡ‚ Ρ€Π°Π·ΠΊΠ°Π· Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ са ΠΈΠΌΠ°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с NoSQL Π±Π°Π·ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ тя ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ спСцификации ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈ камъни, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅. И Π°ΠΊΠΎ освСн Oracle ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π½Π΅ стС Π²ΠΈΠΆΠ΄Π°Π»ΠΈ Π½ΠΈΡ‰ΠΎ, Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π° Ρ‰Π΅ Π²ΠΈ спасят ΠΆΠΈΠ²ΠΎΡ‚Π°.

Какво Π΅ Ρ…ΡƒΠ±Π°Π²ΠΎΡ‚ΠΎ Π½Π° Cassandra? Π’ΠΎΠ²Π° Π΅ NoSQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π° Π±Π΅Π· Π΅Π΄ΠΈΠ½Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΎΡ‚ΠΊΠ°Π·, която сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° Π΄ΠΎΠ±Ρ€Π΅. Ако трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ няколко Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π° към някоя Π±Π°Π·Π°, просто добавятС възли Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Π˜ΡΠΊΠ°Ρ‚Π΅ Π΄Π° я Ρ€Π°Π·ΡˆΠΈΡ€ΠΈΡ‚Π΅ Π² Π½ΠΎΠ² Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€? ДобавятС възли Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Врябва Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈΡ‚Π΅ RPS? ДобавятС възли Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. И ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Cassandra. Как Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρˆ, Π°ΠΊΠΎ знаСш само Oracle

Π’ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π°? Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ заявки. Но ΠΌΠ½ΠΎΠ³ΠΎ β€” Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ Π΅? 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-тия.

Cassandra. Как Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρˆ, Π°ΠΊΠΎ знаСш само Oracle

Π’ΠΎΠ²Π° число сС Π²Π·ΠΈΠΌΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ…Π΅Ρˆ-функция, която сС ΠΏΡ€ΠΈΠ»Π°Π³Π° към Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ 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 структура, ΠΎΡ‚ която ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ всички стойности, Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΈ пишСм ΠΏΠΎ ΠΊΠ»ΡŽΡ‡.

Cassandra. Как Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρˆ, Π°ΠΊΠΎ знаСш само Oracle

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 ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π° Π½Π° сортиранС, Ρ‰Π΅ трябва Π΄Π° създадСм Π½ΠΎΠ²Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ Π΄Π° ΠΏΡ€Π΅Π»ΠΈΠ²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² нСя. Π‘ Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ‚ΠΎΠ²Π° няма Π΄Π° Π΅ възмоТно.

Cassandra. Как Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρˆ, Π°ΠΊΠΎ знаСш само Oracle

Π—Π°ΠΏΡŠΠ»Π½ΠΈΡ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ видяхмС, Ρ‡Π΅ Ρ‚Π΅ сС Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ…Π° Π² ΠΊΡ€ΡŠΠ³ ΠΏΡŠΡ€Π²ΠΎ ΠΏΠΎ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Ρ€Π°ΠΆΠ΄Π°Π½Π΅, Π° слСд Ρ‚ΠΎΠ²Π° Π²ΡŠΡ‚Ρ€Π΅ Π½Π° всяка Π½ΠΎΠ΄Π° ΠΏΠΎ Π·Π°ΠΏΠ»Π°Ρ‚Π° ΠΈ ΠΏΠΎ 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster