ΠΠΎ 2017 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΏΠΎΠ±Π΅Π΄ΠΈΠ²ΠΌΠ΅ Π½Π° Π½Π°ΡΠΏΡΠ΅Π²Π°Ρ Π·Π° ΡΠ°Π·Π²ΠΎΡ Π½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΎΡΠΎ ΡΠ°Π΄ΡΠΎ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΡΠΊΠΈΠΎΡ Π±ΠΈΠ·Π½ΠΈΡ Π½Π° Alfa-Bank ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ ΡΠΎ ΡΠ°Π±ΠΎΡΠ° (Π½Π° HighLoad++ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ Π·Π° ΡΡΡΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΡΠΊΠΈΠΎΡ Π±ΠΈΠ·Π½ΠΈΡ
ΠΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°Π·Π²ΠΎΡ, ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΅Π²ΠΎΠ»ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΡΠ΅ΠΊΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π° Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΊΡΠΈΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΡΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΡΠ°ΠΌΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ²Π΅Π½ ΡΠΎΡΡΠ²Π΅Ρ ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΡΡΡΠΎΠ³ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ ΠΎΠΏΡΠ΅Π³ Π½Π° Π·Π°Π΄Π°ΡΠΈ: ΡΡΠΏΠ΅Π°Π²ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. ΠΡΠΊΡΡΡΠ²ΠΎΡΠΎ ΡΡΠΎ Π³ΠΎ ΡΡΠ΅ΠΊΠ½Π°Π²ΠΌΠ΅ ΡΠ° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ -
Π‘Π°ΠΊΠ°ΠΌ Π΄Π° Π·Π±ΠΎΡΡΠ²Π°ΠΌ Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° TDG ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ° Π΄ΠΎ ΠΊΠΎΠΈ Π΄ΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°Π·Π²ΠΎΡ, Π΄Π° Π²Π΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π°ΠΌ ΡΠΎ Π³Π»Π°Π²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°.
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈ, ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π³ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ²ΠΌΠ΅ Π½Π° ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΡΠ»ΠΎΠ³ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½Π° Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΎΠΏΡΠ΅Π³ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΊ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΊΠΎΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΡΠ»ΠΎΠ³ΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ»ΠΎΠ³ΠΈ ΠΎΠ΄ ΠΈΡΡ ΡΠΈΠΏ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ:
ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡ
ΠΠΎΠ½Π΅ΠΊΡΠΎΡ Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠ²Π΅Ρ; Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° Π³ΠΎ ΠΏΡΠΈΡΠ°ΡΠΈ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ, Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈ Π°ΠΊΠΎ ΡΠΎΠ° ΡΡΠΏΠ΅Π΅, ΡΠΎΠ³Π°Ρ Π΄Π° Π³ΠΈ ΠΈΡΠΏΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄ΠΎ Π²Π»Π΅Π·Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈ HTTP, SOAP, Kafka, FIX. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ, ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° IBM MQ Π½Π°ΡΠΊΠΎΡΠΎ. ΠΠΊΠΎ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π½Π΅ ΡΡΠΏΠ΅Π°, ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠΎΡ ΡΠ΅ Π²ΡΠ°ΡΠΈ Π³ΡΠ΅ΡΠΊΠ°; Π²ΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈ Π΄Π΅ΠΊΠ° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ, Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ Π½Π°ΡΡΠ°Π½Π°Π»Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ½Π°ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ°ΡΠ΅. ΠΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ ΡΠΎ ΡΠ΅Π» Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠΈ Π½Π΅ Π·Π½Π°Π°Ρ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°Π°Ρ Π±Π°ΡΠ°ΡΠ°ΡΠ° - ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΎΡΠΈΠ², Π³ΠΎ ΠΏΡΠ°Π²Π°Ρ ΡΠΎΠ° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΡΠΏΠΎΡΠ½ΠΎ. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ±Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅Π΄ΠΈΡΠ° Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°: ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ ΠΏΡΠ²ΠΎ Π²Π»Π΅Π³ΡΠ²Π° Π²ΠΎ Π½Π΅Π³ΠΎ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΡΠΏΠ΅ΡΠ½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° ΠΎΠ΄ Π½Π΅Π³ΠΎ. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠΌΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ° Π·Π° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΈ ΡΡΠΎ ΠΎΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠ΅Π΄ΠΎΡ Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ° ΠΈ ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ° ΠΎΡΡΡΡΠ°Π½ΠΈ ΡΠΎΡΡΠ²Π΅ΡΡΠΊΠ°ΡΠ° Π³ΡΠ΅ΡΠΊΠ° ΠΈΠ»ΠΈ Ρ Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈΠΎΡ Π΄Π΅ΡΠ΅ΠΊΡ, ΠΎΠ±ΠΈΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
ΠΠ»Π΅Π·Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
ΠΠ»Π΅Π·Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π³ΠΈ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ. Π Π°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅ Lua ΠΊΠΎΠ΄ ΠΊΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΏΠ΅ΡΠΎΠΊ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π²Π»ΠΈΡΠ°Π°Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΠΎ ΠΎΠ²Π°Π° ΡΠ°Π·Π°, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ²Π΅Π΄Π°Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° ΡΠΎΡΠΌΠ° ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±ΡΠΎΡ Π·Π°Π΄Π°ΡΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ MDM (Master Data Management) ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° Tarantool Data Grid, ΠΊΠΎΠ³Π° Π΄ΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ, Π·Π° Π΄Π° Π½Π΅ ΡΠ° ΡΡΠΏΠΎΡΠΈΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ, Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π·Π»Π°ΡΠ΅Π½ Π·Π°ΠΏΠΈΡ ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° Π·Π°Π΄Π°ΡΠ°. ΠΠ΅ΡΠΎΠΊΠΎΡ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π±Π°ΡΠ°ΡΠ° Π·Π° ΡΠΈΡΠ°ΡΠ΅, ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΡΠ° Π½Π° ΡΠΈΡΠ΅ ΡΠ»ΠΎΠ³ΠΈ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠ° Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ (ΠΌΠ°ΠΏΠ°/Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅).
Π Π°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ:
sum.lua
local x, y = unpack(...)
return x + y
Π ΡΠΎΠ³Π°Ρ, Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Π½ΠΎ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ°:
functions:
sum: { __file: sum.lua }
ΠΠΎΡΡΠΎ ΠΡΠ°? ΠΡΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΡΠ°Π·ΠΈΠΊ. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ, Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°ΡΠ° ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ Π³ΠΎ Π·Π°ΠΏΠΎΠ·Π½Π°Π°Ρ, Π»ΡΡΠ΅ΡΠΎ ΠΏΠΎΡΠ½ΡΠ²Π°Π°Ρ Π΄Π° ΠΏΠΈΡΡΠ²Π°Π°Ρ ΠΊΠΎΠ΄ ΠΊΠΎΡ Π³ΠΎ ΡΠ΅ΡΠ°Π²Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π ΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ, ΡΡΠΊΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΡΠΈΡΠ°ΡΠΈ. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° jit ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ, ΠΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³Ρ Π±ΡΠ·ΠΎ.
Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅
Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΡΠ΅Π΄ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ΄ΡΠ²Π°Π°Ρ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ° Π΄Π° Π³ΠΎ ΠΎΠΏΠΈΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ»ΠΎΡΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ
{
"name": "User",
"type": "record",
"logicalType": "Aggregate",
"fields": [
{ "name": "id", "type": "string"},
{"name": "first_name", "type": "string"},
{"name": "last_name", "type": "string"}
],
"indexes": ["id"]
}
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠ²ΠΎΡ ΠΎΠΏΠΈΡ, DDL (ΠΠ°Π·ΠΈΠΊ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ) Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π·Π° Tarantula DBMS ΠΈ
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° Π΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ (ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π°).
ΠΠ·Π»Π΅Π·Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
ΠΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΈ Π·Π° ΠΏΡΠΈΡΡΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° ΠΎΠ²Π°Π° Π½Π°ΠΌΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΈ ΡΠ»ΠΎΠ³Π°ΡΠ° Π½Π° Output ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ; ΠΠΎ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅, ΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠ°Ρ Π½Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΠΎΡ ΡΠΏΡΠ°Π²ΡΠ²Π°Ρ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΡΡΠΎ ΡΠ° Π±Π°ΡΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΎΡ) - Π° ΠΏΠΎΡΠΎΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅ Π½Π° ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠΎΡ Π·Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅. ΠΠ²Π΄Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ ΡΠ΅Π΄ Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°: Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΡ Π½Π΅ Π³ΠΎ ΠΏΡΠΈΡΠ°ΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΡΠ½Π°.
Π‘ΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅
Π£Π»ΠΎΠ³ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠΎΡ, Π²Π»Π΅Π·Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΈ ΠΈΠ·Π»Π΅Π·Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ Π±Π΅Π· Π΄ΡΠΆΠ°Π²ΡΠ°Π½ΡΡΠ²ΠΎ, ΡΡΠΎ Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΈΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ°ΠΊΠ°Π½ΠΈΠΎΡ ΡΠΈΠΏ Π½Π° ΡΠ»ΠΎΠ³Π°. Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅
Π‘Π²ΠΎΡΡΡΠ²Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ
ΠΡΠ΅Π΄ΠΌΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ Π΄Π° ΡΠΎΠ΄ΡΠΆΠ°Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΈ. ΠΠΈΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΠΌΠ΅ Π°ΡΠΎΠΌΠΈΡΠ½ΠΎΡΡ Π½Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΈ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎ ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π΅Π΄Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΊΠΎΡΠΏΠ°. ΠΠ²Π° Π³ΠΎ ΡΠΏΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ Π΄Π° ΡΠ΅ βΡΠ°ΡΠΈΡΠΈβ Π½ΠΈΠ· Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ.
ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ Π΅ Π²Π΅ΡΠ·ΠΈΠΈ: ΡΠ΅ΠΊΠΎΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π²Π° Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΎΠ΄Π²ΠΎΠΈΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°Π» ΡΠ²Π΅ΡΠΎΡ ΡΠΎΠ³Π°Ρ. ΠΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° ΠΊΠΎΠΈ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΄ΠΎΠ»Π³Π° ΠΈΡΡΠΎΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° Π²Π΅ΡΠ·ΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠΈ ΠΈ Π΄Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° - Π½Π°ΡΠ½ΠΎΠ²Π°ΡΠ° - ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ, Π²ΠΎ ΡΡΡΡΠΈΠ½Π° Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΠΌΠ΅ Π²Π΅ΡΠ·ΠΈΠΈΡΠ°ΡΠ΅ΡΠΎ Π·Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠΈΠΏ. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅: Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π±ΡΠΈΡΠ΅ΡΠ΅ Π³ΠΈ ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠΈΠΏ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΎΠ΄ 1 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ Π΅ ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅: ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ°ΡΡΠΎΠ²Π°ΡΡΠ²Π°ΠΌΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΡΠΈ ΠΏΡΠΎΡΡΠΎΡ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ.
Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, Π²ΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π°ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄, Π½Π° Π±Π°ΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΠΎΠ΄ ΠΏΠ΅ΡΠΎΠΊΠΎΡ:
ΠΠ²Π΄Π΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡΡΠ΅ Π΅Π΄Π½Π° ΡΠ»ΠΎΠ³Π° - ΡΡΠΊΠ°Ρ. ΠΠ²Π°Π° ΡΠ»ΠΎΠ³Π° Π΅ Π±Π΅Π· Π΄ΡΠΆΠ°Π²ΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎ ΠΎΠ²Π°Π° ΡΠ»ΠΎΠ³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π°Ρ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΅Π±Π°. ΠΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡΠ° Π½Π° ΡΡΠΊΠ°ΡΠΎΡ Π΅ Π΄Π° Π³ΠΈ Π·Π°Π²ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π°Ρ Π½ΠΎΠ²ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ΄ ΠΏΠ΅ΡΠΎΠΊΠΎΡ; ΡΠΈΠ΅ ΡΠ΅ Π·Π°ΡΡΠ²ΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠ΅Π΄ΠΈΡΠ° Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π½Π° ΡΡΠΊΠ°ΡΠΎΡ. ΠΠ²ΠΎΡ ΡΠΈΠΏ Π½Π° Π·Π°Π΄Π°ΡΠ° ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° Job. ΠΠΌΠ°ΠΌΠ΅ ΠΈ ΡΠΈΠΏ Π½Π° Π·Π°Π΄Π°ΡΠ° Π½Π°ΡΠ΅ΡΠ΅Π½Π° ΠΠ°Π΄Π°ΡΠ° - ΠΎΠ²Π° ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΊΠΎΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ (ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° Π½Π° cron) ΠΈΠ»ΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ΅. ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΠΈ ΡΠ»Π΅Π΄ΠΈΠΌΠ΅ ΡΠ°ΠΊΠ²ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π½Π° Π·Π°Π΄Π°ΡΠΈ. ΠΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΠΌΠΎΡΠ° Π΄Π° ΡΠ° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΡΠ»ΠΎΠ³Π°ΡΠ° Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠΎΡ; ΠΎΠ²Π°Π° ΡΠ»ΠΎΠ³Π° ΠΈΠΌΠ° ΡΠΎΡΡΠΎΡΠ±Π°, ΠΏΠ° Π·Π°ΡΠΎΠ° Π½Π΅ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°, ΡΡΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ; Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠ°ΠΊΠΎ ΠΈ ΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈ ΡΠ»ΠΎΠ³ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΡΠΎ ΠΏΠΎΡΠ½ΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π°ΠΊΠΎ Π³ΠΎΡΠΏΠΎΠ΄Π°ΡΠΎΡ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΠΎΠ΄Π±ΠΈΠ΅.
ΠΡΠ²ΠΎΡΠ΅ΡΠ°Ρ
ΠΡΡΠ³Π° ΡΠ»ΠΎΠ³Π° ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° Π΄ΡΠ²ΠΎΡΠ΅ΡΠ°Ρ. ΠΠΈ ΡΠΎΠ±ΠΈΡΠ° Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠΈΡΠ΅ ΡΠ»Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ Π·Π° Π½ΠΈΠ²Π½ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΏΡΠ΅ΠΊΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ.
Π£ΡΠ»ΡΠ³ΠΈ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. ΠΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΈ Π±Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ Π΄ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΊΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΏΠ΅ΡΠΎΠΊΠΎΡ. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠΏΡΠ°Π²ΡΠ²Π°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΎ Π±Π°ΡΠ°ΡΠ΅ ΠΈ Π΄Π° Π³ΠΎ Π²ΡΠ°ΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ.
Π£ΡΠ»ΡΠ³Π°ΡΠ° Π΅ ΠΎΠΏΠΈΡΠ°Π½Π° Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°:
services:
sum:
doc: "adds two numbers"
function: sum
return_type: int
args:
x: int
y: int
GraphQL API ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΠ°Π½ΡΠ²Π° Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅:
query {
sum(x: 1, y: 2)
}
ΠΠ²Π° ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΎΡ sum
ΡΡΠΎ ΡΠ΅ Π³ΠΎ Π²ΡΠ°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ:
3
ΠΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°ΡΠ°ΡΠ° ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠ°
ΠΠ° Π΄Π° ΡΠ° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠ΅, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ OpenTracing. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ΅ Π΄ΠΎ Π°Π»Π°ΡΠΊΠΈΡΠ΅ ΡΡΠΎ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Zipkin, ΡΡΠΎ ΡΠ΅ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΅ ΠΈΠ·Π²ΡΡΠ΅Π½ΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ:
Π‘Π΅ΠΊΠ°ΠΊΠΎ, ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΠ±Π΅ΡΠ°Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ ΠΈ Π΄Π° ΡΠ΅ Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ°Π°Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΡΠ°ΡΠ°Π½Π°.
Π Π°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅
Tarantool Data Grid ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈ ΠΎΠ΄ RPM ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ²Π°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π°Π»Π°ΡΠΊΠ° ΠΎΠ΄ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°ΡΠ° ΠΈΠ»ΠΈ Ansible, ΠΈΠΌΠ° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Kubernetes (
ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° Π΄Π΅Π»ΠΎΠ²Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΈ) Π΅ Π²ΡΠΈΡΠ°Π½Π° Π²ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅Π½ΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Tarantool Data Grid Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π°ΡΡ ΠΈΠ²Π° ΠΏΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅ΠΊΡ API-ΡΠΎ ΡΡΠΎ Π³ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΠΌΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΊ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠΎΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Tarantool Data Grid? ΠΡΡΡΠ½ΠΎΡΡ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ Π½Π΅ΠΊΠ°ΠΊΠΎ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΡΠΎΡΠΎΠΊ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ°ΡΠΎΠ°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅ΠΊΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π΄ΠΎ ΠΊΠΎΠΈ ΡΡΠ΅Π±Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏΠ°Ρ, ΡΠΎΠ³Π°Ρ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ Π·Π°ΡΡΠ΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³Ρ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·Π²ΠΎΡ ΠΈ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΠΏΠ°Π·Π°ΡΠΎΡ Π½Π° Π½Π΅Π΄Π²ΠΈΠΆΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠ° ΡΡΠΎ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΠΎΠ½ΡΠ΄ΠΈ. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΡΠ΅ Π³ΠΈ ΠΈΡΡΠ°ΠΊΠ½Π΅ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- Π ΠΎΠ±ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠΎΠ±ΠΈΡΠ°Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ΄ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΈΠ·Π²ΠΎΡΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π½Π°ΡΠΈ ΠΈΠ·Π²ΠΎΡΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΡΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° ΠΈΠ»ΠΈ ΠΏΠΈΡΡΠ²Π°ΡΡΠΈ ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΡΠ°Π·ΠΈΠΊ.
- Π‘Π»Π΅Π΄Π½ΠΎ, Tarantool Data Grid ΡΠ΅ Π³ΠΈ ΠΏΡΠΈΡΠ°ΡΠΈ ΠΈ Π·Π°ΡΡΠ²Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅. ΠΠΊΠΎ ΡΠΎΡΠΌΠ°ΡΠΎΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·Π²ΠΎΡΠΈ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½, ΡΠΎΠ³Π°Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π²ΠΎ Lua ΡΡΠΎ ΡΠ΅ ΡΠ° ΠΈΠ·Π²ΡΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π²ΠΎ Π΅Π΄Π΅Π½ ΡΠΎΡΠΌΠ°Ρ. ΠΠΎ ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ Π΄ΡΠΏΠ»ΠΈΠΊΠ°Ρ ΠΏΠΎΠ½ΡΠ΄ΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π°Π³Π΅Π½ΡΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° ΠΏΠ°Π·Π°ΡΠΎΡ Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
- Π‘Π΅Π³Π° Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈ ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π΄Π° ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΈΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎΡΠΎΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠ»ΡΠ³Π° ΡΡΠΎ ΡΠ΅ Π±Π°ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΡΠ΅ ΡΠ° Π΄Π°Π²Π° Π½Π°ΡΠΏΠΎΠ²ΠΎΠ»Π½Π°ΡΠ° ΠΏΠΎΠ½ΡΠ΄Π° Π΄Π½Π΅Π²Π½ΠΎ - Π·Π° ΠΎΠ²Π° ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π»ΠΈΠ½ΠΈΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΌΠ°Π»ΠΊΡ Lua ΠΊΠΎΠ΄.
Π¨ΡΠΎ Π΅ ΡΠ»Π΅Π΄Π½ΠΎ?
ΠΠ°Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π΅ Π΄Π° ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌΠ΅ Π»Π΅ΡΠ½ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π·Π²ΠΎΡ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅
ΠΠΎΡΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠΌΠΈΠ½ΡΠ²Π°ΠΌΠ΅ Π½ΠΈΠ· ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΎΠ΄ FSTEC Π½Π° Π ΡΡΠΈΡΠ° Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΠ²ΡΠ΄ΠΈΠΌΠ΅ Π²ΠΈΡΠΎΠΊΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ ΠΈ Π΄Π° Π³ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΠ΅ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΡΠΎΡΡΠ²Π΅ΡΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π²Π»Π°Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ·Π²ΠΎΡ: www.habr.com