ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π»ΠΈ. ΠΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΌΠΈΠ½Π΅ΠΌ Π·Π° Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΌΠ°ΠΉΡΠΊΠΈΡΠ΅ ΠΏΡΠ°Π·Π½ΠΈΡΠΈ, ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌΠ΅ Ρ Π²Π°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΠΊΠΎΠΉΡΠΎ ΡΠΌΠ΅ ΠΏΡΠ΅Π²Π΅Π»ΠΈ Π² ΠΎΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΠΏΠΎΡΠΎΠΊ ΡΡΡ ΡΠΊΠΎΡΠΎΡΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ°Ρ ΡΠ°Π·ΠΈ, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π·Π° ΡΡΡ
Π½ΠΎΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΡΠΆΠ΄ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅/Π·Π°ΠΏΠΈΡ, Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΠΎΡΡ ΠΊΡΠΌ Π³ΡΠ΅ΡΠΊΠΈ. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠ·Π±ΠΎΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, SQL ΠΈΠ»ΠΈ NoSQL, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΡΠΊΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ. ΠΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π²ΡΡΠΊΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΠΈΠ·Π²Π°Π΄ΠΊΠ°ΡΠ°.
Π¦Π΅Π»ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΈΠ·Π±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ SQL ΠΈ NoSQL Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π©Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄Π½Π° SQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ PostgreSQL, ΠΈ Π΄Π²Π΅ NoSQL Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Cassandra ΠΈ MongoDB, Π·Π° Π΄Π° ΠΏΠΎΠΊΡΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ, ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, JOIN, TTL Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° JSON.
ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ SQL ΠΈ NoSQL?
SQL Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΡΠ΅Π· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π½Π° ACID, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π΄Π° Π·Π°ΡΠ²ΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ JOIN ΠΏΠΎ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΡΡ Π½Π°ΡΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π°/Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° Π²ΡΠ·Π»ΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π³Π»Π°Π²Π΅Π½-ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½ Π·Π° ΠΈΠ·Π»ΠΈΡΡΠΊ, Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ SQL Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π»ΠΈΠΏΡΠ²Π°Ρ Π΄Π²Π΅ Π²Π°ΠΆΠ½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ - ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ (Ρ.Π΅. Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·Π»ΠΈ) ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°/Π½ΡΠ»Π΅Π²Π° Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡ Π½Π° Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π». ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ (Π² Π½Π΅ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°). Π’ΡΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΎΡΡΠ°Π·Π΅Π½ΠΈ Π² ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½ΠΎΡΠΎ ΠΊΠΎΠΏΠΈΠ΅. ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π±Π΅Π· ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ ΡΡΡΠΎ ΡΠ° ΡΡΡΠ΄Π½ΠΈ Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π² SQL Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
NoSQL Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎ ΠΏΡΠΈΡΠΎΠ΄Π°, Ρ.Π΅. Π² ΡΡΡ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° ΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ·Π΅Π»Π°. Π’Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅. ΠΠ±ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΡΠ΅Π· Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ΅, Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ NoSQL ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ SQL ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
NoSQL Π½Π°Π±Π»ΡΠ³Π° Π½Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈ ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΎΠ±ΠΎΡΠ½ΠΎΠ²ΠΊΠ° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ ΠΏΡΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π·Π°Π³ΡΠ±Π° Π½Π° ACID ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, JOIN ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π²ΡΠΎΡΠΈΡΠ½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.
ΠΠΌΠ° ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΠ΅ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ NoSQL Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΡΠΊΠ°Π»ΠΈΡΡΠ΅ΠΌΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π³ΠΈ ΠΏΡΠ°Π²ΠΈ Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ.
Π‘Π»Π΅Π΄Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² NoSQL ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ SQL.
SQL ΠΈ NoSQL: ΠΠ°ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ Π΄Π²Π΅ΡΠ΅?
Π Π΅Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠ°ΡΠΎ Amazon.com, Netflix, Uber ΠΈ Airbnb, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΡΡΡΠ³ΠΎΠ²ΠΈΡ ΠΊΠ°ΡΠΎ Amazon.com ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π»Π΅ΠΊΠΈ, ΡΠΈΠ»Π½ΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΏΠΎΡΡΡΠΊΠΈ, ΡΠ°ΠΊΡΡΡΠΈ, Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΠ΅ΠΆΠΊΠΈ, Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΎΡΠ·ΠΈΠ²ΠΈ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. , ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ , ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΎΡΠ·ΠΈΠ²ΠΈ ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠΈΡΠ°Ρ Π½Π° ΠΏΠΎΠ½Π΅ Π΅Π΄Π½Π° SQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΏΠΎΠ½Π΅ Π΅Π΄Π½Π° NoSQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π ΠΌΠ΅ΠΆΠ΄ΡΡΠ΅Π³ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ NoSQL Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ Π³Π΅ΠΎ-ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ΅Ρ Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² Π΄ΠΎΠ²Π΅ΡΠ΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ, SQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π΅Π΄ΠΈΠ½ ΡΠ΅Π³ΠΈΠΎΠ½.
ΠΠ°ΠΊ YugaByte DB ΡΡΡΠ΅ΡΠ°Π²Π° SQL ΠΈ NoSQL?
ΠΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΡΡ Ρ Π»ΠΎΠ³-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΡΠΌΠ΅ΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°ΡΠ΄ΠΈΠ½Π³, ΡΠ°ΡΠ΄ΠΈΠ½Π³ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ACID ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (Π²Π΄ΡΡ Π½ΠΎΠ²Π΅Π½ΠΈ ΠΎΡ Google Spanner), YugaByte DB Π΅ ΠΏΡΡΠ²Π°ΡΠ° Π² ΡΠ²Π΅ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡΡΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ NoSQL (Cassandra & Redis). ) ΠΈ SQL (PostgreSQL). ΠΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ, YCQL, YugaByte DB API, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Cassandra, Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈΡΠ΅ Π·Π° ACID ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π²ΡΠΎΡΠΈΡΠ½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΠΊΡΠΌ NoSQL API, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΡΠ°Π²Ρ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π΅ΡΠ°ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ NoSQL Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, YCQL, YugaByte DB API, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ PostgreSQL, Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈΡΠ΅ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΎΡΠΊΠ°Π· ΠΊΡΠΌ SQL API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π½Π° ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ SQL Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ YugaByte DB Π΅ ΠΏΡΠΈΡΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π°, NoSQL API Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΠ°ΠΊΡΠΎ Π±Π΅ΡΠ΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΠΈΡΡΠ°
- ΠΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π²ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ JOIN Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΠΎΠ³Π°Π²Π° ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ YSQL, ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·ΠΏΡΡΡΠ½Π°ΡΠΈ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·Π»ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΎΡ NoSQL.
- Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄Π²Π°ΡΠ° NoSQL API, ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½ΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π» Π½Π°Π²Π΅Π΄Π½ΡΠΆ. YugaByte DB ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ»ΡΠΆΠΈ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅Π°Π»Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ°Π·Π΄Π΅Π» Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈΡΠ΅ Ρ PostgreSQL ΠΈ Cassandra API Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ YugaByte DB, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π° Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ API (Π½Π° Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ°) Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΎΡ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΈΠ»ΡΡΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΎΠ±ΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΈ Π½Π° Π²ΡΠΏΡΠΎΡΠ½ΠΈΡΠ΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡ Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ
ΠΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΎΠΊΡΡΡΡ Π²ΡΡΡ Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π΄Π°Π½Π½ΠΈ (Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅), Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅ Ρ ΡΡΡ , ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΈΠΌ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄.
Π‘ΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ PostgreSQL ΠΈ Cassandra, Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ YugaByte DB
mkdir ~/yugabyte && cd ~/yugabyte
wget https://downloads.yugabyte.com/yb-docker-ctl && chmod +x yb-docker-ctl
docker pull yugabytedb/yugabyte
./yb-docker-ctl create --enable_postgres
MongoDB
docker run --name my-mongo -d mongo:latest
ΠΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄
ΠΠ΅ΠΊΠ° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΠΌ Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π·Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ API.
PostgreSQL
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
cqlsh
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° bin
.
ΠΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ CQL Π΅ Π²Π΄ΡΡ
Π½ΠΎΠ²Π΅Π½ ΠΎΡ SQL ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π±Π»ΠΈΡΠΈ, ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΊΠ°ΡΠΎ NoSQL Π΅Π·ΠΈΠΊ, ΡΠΎΠΉ Π΄ΠΎΠ±Π°Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π² Π΄ΡΡΠ³ΠΈ ΡΡΠ°ΡΠΈΠΈ.
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh
MongoDB
docker exec -it my-mongo bash
cd bin
mongo
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ, ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠ΅ΡΠ½ΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»ΠΈ. Π’Π΅Π·ΠΈ ΠΏΠ΅ΡΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π°Π»Π±ΡΠΌ. Π‘ΡΡΠΎ Π½Π΅Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ Π·Π° ΠΏΠ΅ΡΠ΅Π½ΡΠ° ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅, ΡΠ΅Π½Π°, ΠΆΠ°Π½Ρ ΠΈ ΡΠ΅ΠΉΡΠΈΠ½Π³. Π’ΡΡΠ±Π²Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ΅Π· ΠΏΠΎΠ»Π΅ΡΠΎ "ΡΠ°Π³ΠΎΠ²Π΅". ΠΠΎΠΆΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ»ΡΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ.
PostgreSQL
CREATE TABLE Music (
Artist VARCHAR(20) NOT NULL,
SongTitle VARCHAR(30) NOT NULL,
AlbumTitle VARCHAR(25),
Year INT,
Price FLOAT,
Genre VARCHAR(10),
CriticRating FLOAT,
Tags TEXT,
PRIMARY KEY(Artist, SongTitle)
);
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π² Cassandra Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° PostgreSQL. ΠΠ΄Π½Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠΈ Π΅ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ΅Ρ (ΠΊΠ°ΡΠΎ NOT NULL), Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π° Π½Π΅ Π½Π° NoSQL Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.. ΠΡΡΠ²ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠ»ΡΡ (ΠΊΠΎΠ»ΠΎΠ½Π° βΠΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»β Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ) ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π·Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ (ΠΊΠΎΠ»ΠΎΠ½Π° βSongTitleβ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ). ΠΠ»ΡΡΡΡ Π½Π° Π΄ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π² ΠΊΠΎΠΉ Π΄ΡΠ»/ΡΠ°ΡΠ΄ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ ΡΠ΅Π΄ΡΡ, Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡΠ΅ Π·Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΊΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ°ΡΠ΄.
CREATE KEYSPACE myapp;
USE myapp;
CREATE TABLE Music (
Artist TEXT,
SongTitle TEXT,
AlbumTitle TEXT,
Year INT,
Price FLOAT,
Genre TEXT,
CriticRating FLOAT,
Tags TEXT,
PRIMARY KEY(Artist, SongTitle)
);
MongoDB
MongoDB ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° Π΄Π°Π½Π½ΠΈ Π² Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (Database) (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Keyspace Π² Cassandra), ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ (Collections) (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ), ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ (Documents) (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°). Π MongoDB ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π½Π° ΡΡ Π΅ΠΌΠ°. ΠΠΊΠΈΠΏ "ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ", ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρ, ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠ° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π·Π° Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎΡΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈΠ·ΡΠΈΡΠ½ΠΎ, ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΡΠ²ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΊΡΠΌ Π½ΠΎΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ MongoDB ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ΡΡΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π±Π΅Π· ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Π² Π½Π΅Ρ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
use myNewDatabase;
ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΌΠ°ΡΠ°
PostgreSQL
d Music
Table "public.music"
Column | Type | Collation | Nullable | Default
--------------+-----------------------+-----------+----------+--------
artist | character varying(20) | | not null |
songtitle | character varying(30) | | not null |
albumtitle | character varying(25) | | |
year | integer | | |
price | double precision | | |
genre | character varying(10) | | |
criticrating | double precision | | |
tags | text | | |
Indexes:
"music_pkey" PRIMARY KEY, btree (artist, songtitle)
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
DESCRIBE TABLE MUSIC;
CREATE TABLE myapp.music (
artist text,
songtitle text,
albumtitle text,
year int,
price float,
genre text,
tags text,
PRIMARY KEY (artist, songtitle)
) WITH CLUSTERING ORDER BY (songtitle ASC)
AND default_time_to_live = 0
AND transactions = {'enabled': 'false'};
MongoDB
use myNewDatabase;
show collections;
ΠΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°
PostgreSQL
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Year, Price, Genre, CriticRating,
Tags)
VALUES(
'No One You Know', 'Call Me Today', 'Somewhat Famous',
2015, 2.14, 'Country', 7.8,
'{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}'
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre, CriticRating)
VALUES(
'No One You Know', 'My Dog Spot', 'Hey Now',
1.98, 'Country', 8.4
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre)
VALUES(
'The Acme Band', 'Look Out, World', 'The Buck Starts Here',
0.99, 'Rock'
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre,
Tags)
VALUES(
'The Acme Band', 'Still In Love', 'The Buck Starts Here',
2.47, 'Rock',
'{"radioStationsPlaying": ["KHCR", "KBQX", "WTNR", "WJJH"], "tourDates": { "Seattle": "20150625", "Cleveland": "20150630"}, "rotation": Heavy}'
);
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΈΠ·ΡΠ°Π·ΡΡ INSERT
Π² Cassandra ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΡΠΎΠ·ΠΈ Π² PostgreSQL. ΠΠΌΠ° ΠΎΠ±Π°ΡΠ΅ Π΅Π΄Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° Π² ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ°. Π ΠΠ°ΡΠ°Π½Π΄ΡΠ° INSERT
Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ UPSERT
, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ Π½ΠΈΠ·Π°, Π² ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π½ΠΈΠ·ΡΡ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°.
ΠΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° PostgreSQL
INSERT
Π³ΠΎΡΠ΅
.
MongoDB
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ MongoDB Π΅ NoSQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Cassandra, Π½Π΅ΠΉΠ½Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½ΡΠΌΠ° Π½ΠΈΡΠΎ ΠΎΠ±ΡΠΎ ΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Cassandra. Π MongoDB UPSERT
, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° PostgreSQL. ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π±Π΅Π· _idspecified
ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΊΡΠΌ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡΡΠ°.
db.music.insert( {
artist: "No One You Know",
songTitle: "Call Me Today",
albumTitle: "Somewhat Famous",
year: 2015,
price: 2.14,
genre: "Country",
tags: {
Composers: ["Smith", "Jones", "Davis"],
LengthInSeconds: 214
}
}
);
db.music.insert( {
artist: "No One You Know",
songTitle: "My Dog Spot",
albumTitle: "Hey Now",
price: 1.98,
genre: "Country",
criticRating: 8.4
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Look Out, World",
albumTitle:"The Buck Starts Here",
price: 0.99,
genre: "Rock"
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Still In Love",
albumTitle:"The Buck Starts Here",
price: 2.47,
genre: "Rock",
tags: {
radioStationsPlaying:["KHCR", "KBQX", "WTNR", "WJJH"],
tourDates: {
Seattle: "20150625",
Cleveland: "20150630"
},
rotation: "Heavy"
}
}
);
ΠΠ°ΡΠ²ΠΊΠ° Π·Π° ΡΠ°Π±Π»ΠΈΡΠ°
ΠΠΎΠΆΠ΅ Π±ΠΈ Π½Π°ΠΉ-ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ SQL ΠΈ NoSQL ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° FROM
ΠΈ WHERE
. SQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ»Π΅Π΄ ΠΈΠ·ΡΠ°Π· FROM
ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ ΠΈΠ·ΡΠ°Π· Ρ WHERE
ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ JOIN
ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΠΈ). NoSQL ΠΎΠ±Π°ΡΠ΅ ΠΈΠΌΠ° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ Π΄Π° Π½Π°Π»Π°Π³Π° ΡΠ²ΡΡΠ΄ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° FROM
ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΡΠ°ΠΌΠΎ Ρ Π΅Π΄Π½Π° ΠΏΠΎΡΠΎΡΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ Π² WHERE
, ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½. Π’ΠΎΠ²Π° ΡΠ΅ Π΄ΡΠ»ΠΆΠΈ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° NoSQL, Π·Π° ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ
ΠΌΠ΅ ΠΏΠΎ-ΡΠ°Π½ΠΎ. Π’ΠΎΠ²Π° ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠΊΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π² ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅ ΠΏΡΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠ³Π²Π° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Cassandra ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ =, IN, <, >, =>, <=
) Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ Π½Π° Π΄ΡΠ»ΠΎΠ²Π΅, ΠΎΡΠ²Π΅Π½ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π·Π° Π²ΡΠΎΡΠΈΡΠ΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ (ΡΠ°ΠΌΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ = Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΡΡΠΊ).
PostgreSQL
Π‘Π»Π΅Π΄Π²Π°Ρ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΠΎΡ SQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
- ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ΅ΡΠ½ΠΈ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Ρ;
- ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ΅ΡΠ½ΠΈ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ;
- ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ΅ΡΠ½ΠΈ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π΄ΡΠΌΠ° Π² Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ ΠΈ ΠΈΠΌΠ°Ρ ΡΠ΅Π½Π° ΠΏΠΎΠ΄ 1.00.
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%'
AND Price > 1.00;
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΡ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π½Π° PostgreSQL, ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ°ΠΌΠΎ ΠΏΡΡΠ²Π°ΡΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° Π² Cassandra, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ°Π·ΡΡ LIKE
Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΠΊΡΠΌ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΊΠ°ΡΠΎ SongTitle
. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ =
ΠΈ IN
.
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle IN ('Call Me Today', 'My Dog Spot')
AND Price > 1.00;
MongoDB
ΠΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π² MongoDB Π΅ music
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ), ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ Π½Π΅ ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ.
db.music.find( {
artist: "No One You Know"
}
);
db.music.find( {
artist: "No One You Know",
songTitle: /Call/
}
);
Π§Π΅ΡΠ΅Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°
Π§Π΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π΅ ΡΠ°ΠΌΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΡ ΠΌΠ΅ ΠΏΠΎ-ΡΠ°Π½ΠΎ.
PostgreSQL
SELECT *
FROM Music;
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° PostgreSQL ΠΏΠΎ-Π³ΠΎΡΠ΅.
MongoDB
db.music.find( {} );
Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°
PostgreSQL
PostgreSQL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅ UPDATE
Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ. Π’Ρ Π½ΡΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ UPSERT
, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈ, Π°ΠΊΠΎ ΡΠ΅Π΄ΡΡ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
UPDATE Music
SET Genre = 'Disco'
WHERE Artist = 'The Acme Band' AND SongTitle = 'Still In Love';
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΠ°ΡΠ°Π½Π΄ΡΠ° ΠΈΠΌΠ° UPDATE
ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° PostgreSQL. UPDATE
ΠΈΠΌΠ° ΡΡΡΠ°ΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° UPSERT
, ΠΊΠ°ΡΠΎ INSERT
.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° PostgreSQL ΠΏΠΎ-Π³ΠΎΡΠ΅.
MongoDB
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ UPSERT
. ΠΠΏΡΠ΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ UPSERT
ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΡΡΠ΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ°. ΠΠ°ΠΊΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ, ΠΆΠ°Π½ΡΡΡ Π½Π° Π΄Π°Π΄Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π» ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΎΡ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠ΅ΡΠ΅Π½.
db.music.update(
{"artist": "The Acme Band"},
{
$set: {
"genre": "Disco"
}
},
{"multi": true, "upsert": true}
);
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°
PostgreSQL
DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° PostgreSQL ΠΏΠΎ-Π³ΠΎΡΠ΅.
MongoDB
MongoDB ΠΈΠΌΠ° Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ β
db.music.deleteMany( {
artist: "The Acme Band"
}
);
ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°
PostgreSQL
DROP TABLE Music;
ΠΠ°ΡΠ°Π½Π΄ΡΠ°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° PostgreSQL ΠΏΠΎ-Π³ΠΎΡΠ΅.
MongoDB
db.music.drop();
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅Π±Π°ΡΡΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΈΠ·Π±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ SQL ΠΈ NoSQL Π±ΡΡΡΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΠΌΠ° Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ° Π½Π° ΡΠΎΠ·ΠΈ Π΄Π΅Π±Π°Ρ: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ (ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅Π½, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ SQL ΡΡΠ΅ΡΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, Π½Π΅ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ NoSQL) ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΊΡΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ (ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² SQL ΡΡΠ΅ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² NoSQL).
Π‘ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ YugaByte DB, Π΄Π΅Π±Π°ΡΡΡ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠ΅ΡΠ½. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΡΠ°Π²Π°Ρ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π», ΡΡΠ°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΊΠ°Π»ΠΈΡΡΠ΅ΠΌΠΎΡΡ Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°ΡΠ΄ΠΈΠ½Π³/ΡΠ΅Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΊΠ°Π·Π°Π½ΠΎΡΠΎ Π² Π΅Π΄Π½Π° ΠΎΡ ΡΡΠ°ΡΠΈΠΈΡΠ΅
ΠΡΡΡΠ°ΠΉΠΊΠΈ ΡΠ΅ ΠΊΡΠΌ Π΄ΠΈΡΠΊΡΡΠΈΡΡΠ° Π·Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΠΈ Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ (SQL ΠΈ NoSQL) ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π²ΡΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π°Π»Π½ΠΈΡ ΡΠ²ΡΡ. ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π½Π° SQL Π·Π° βΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈβ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π½Π° NoSQL Π·Π° βΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈβ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΠΈ Ρ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°Π·ΠΈ ΠΏΡΠΈΡΠΈΠ½Π° YugaByte DB ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ SQL ΠΈ NoSQL API Π² ΠΎΠ±ΡΠΎ ΡΠ΄ΡΠΎ ββΠΈ Π½Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΠ΅. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΡΠ΅Π· ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ PostgreSQL ΠΈ Cassandra, YugaByte DB Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°Ρ Π΄ΡΡΠ³ Π΅Π·ΠΈΠΊ, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΠ»Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ°Π·Π³Π»Π΅Π΄Π°Ρ ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ PostgreSQL, Cassandra ΠΈ MongoDB. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠΎΠΏΠΈΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π·Π° ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΊΠ°ΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, JOIN, TTL Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ ΠΈ JSON Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ.
ΠΠΎΠΆΠ΅Π»Π°Π²Π°ΠΌΠ΅ Π²ΠΈ ΡΡΡΠ°Ρ
ΠΎΡΠ΅Π½ ΡΠΈΠΊΠ΅Π½Π΄ ΠΈ Π²ΠΈ ΠΊΠ°Π½ΠΈΠΌ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com