KDB+, ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
Β
Β
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π² ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ KDB+, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ, Π² ΡΠ΅ΠΌ Π΅Π΅ ΠΏΠΎΠ»ΡΠ·Π° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΆΠ΅Π»Π°ΡΡΠΈΡ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΒ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ
. Π― Π½Π΅ Π±ΡΠ΄Ρ Π²Π΄Π°Π²Π°ΡΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ KDB+ ΠΈ Π² Π΄Π΅ΡΠ°Π»ΠΈ Π΅Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Q. ΠΠ±Π΅ ΡΡΠΈ ΡΠ΅ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΎΠ±ΡΠΈΡΠ½Ρ ΠΈ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠ°ΡΠ΅ΠΉ. ΠΠ½ΠΎΠ³ΠΎΒ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠΈΠΌ ΡΠ΅ΠΌΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ code.kx.com, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊΠ½ΠΈΠ³Ρ ΠΏΠΎ Q β Q For Mortals (ΡΠΌ. ΡΡΡΠ»ΠΊΡ Π½ΠΈΠΆΠ΅).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ
- In-memory Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ . ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠΉ Π±Π°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½Ρ, Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
- ΠΠΎΠ»ΠΎΠ½ΠΎΡΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ . ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ , Π³Π΄Π΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎ, Π° Π½Π΅ Π·Π°ΠΏΠΈΡΡ Π·Π° Π·Π°ΠΏΠΈΡΡΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠΉ Π±Π°Π·Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π·Π°ΠΏΡΠΎΡΠ΅. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ.
- ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΄. ΠΠ°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ ΡΠΈΠΏΠ° Π΄Π°ΡΠ° ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ Π²Π°ΠΆΠ½Π° ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ, ΠΈΠ»ΠΈ ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π³Π΄Π΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½.
- ΠΠ΅ΠΊΡΠΎΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ KDB+ β ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΠ΅Π». ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΡΠΈΠ²Ρ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Β
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΏΡΠ°Π²ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ KX Π±ΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π² 1993 Π³ΠΎΠ΄Ρ ΠΡΡΡΡΠΎΠΌ Π£ΠΈΡΠ½ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Π² Π±Π°Π½ΠΊΠ΅ ΠΠΎΡΠ³Π°Π½ Π‘ΡΡΠ½Π»ΠΈ Π½Π°Π΄ ΡΠ·ΡΠΊΠΎΠΌ A+, Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ APL β ΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π² ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΎΠΌ ΠΌΠΈΡΠ΅. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π² KX ΠΡΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» Π² ΡΠΎΠΌ ΠΆΠ΅ Π΄ΡΡ
Π΅ ΠΈ ΡΠΎΠ·Π΄Π°Π» Π²Π΅ΠΊΡΠΎΡΠ½ΠΎ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ K, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΡΡΡΡ ΠΈΠ΄Π΅ΡΠΌΠΈ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° K Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΠΊΠΎΠ² ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΌΡΡΠ» Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΌΡΡΠ»Π°, ΡΠ΅ΠΌ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π² ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° ΡΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° K Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΌΠ΅ΡΡΠ° β Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠΈΠΏΠ° Java β ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅ΡΡ
ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
Β
Π€ΡΠ½ΠΊΡΠΈΡ Π½Π° K, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ°Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° LL1 ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅:
1. pp:{q:{(x;p3(),y)};r:$[-11=@x;$x;11=@x;q[`N;$*x];10=abs@@x;q[`N;x]Β Β
2.Β Β Β ($)~*x;(`P;p3Β xΒ 1);(1=#x)&11=@*x;pp[{(1#x;$[2=#x;;,:]1_x)}@*x]Β Β
3.Β Β Β Β Β Β (?)~*x;(`Q;pp[xΒ 1]);(*)~*x;(`M;pp[xΒ 1]);(+)~*x;(`MP;pp[xΒ 1]);(!)~*x;(`Y;p3Β xΒ 1)Β Β
4.Β Β Β Β Β Β (2=#x)&(@xΒ 1)inΒ 100Β 101Β 107Β 7Β -7h;($[(@xΒ 1)inΒ 100Β 101Β 107h;`Ff;`Fi];p3Β xΒ 1;pp[*x])Β Β
5.Β Β Β Β Β Β (|)~*x;`S,(pp'1_x);2=#x;`C,{@[@[x;-1+#x;{x,")"}];0;"(",]}({$[".s.C"~4#x;6_-2_x;x]}'pp'x);'`pp];Β Β
6.Β Β Β $[@r;r;($[1<#r;".s.";""],$*r),$[1<#r;"[",(";"/:1_r),"]";""]]}Β Β
Β ΠΡΡ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ΅ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΡΡΡΡ Π²ΠΎΠΏΠ»ΠΎΡΠΈΠ» ΠΈ Π² KDB+, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² 2003 Π³ΠΎΠ΄Ρ (Π΄ΡΠΌΠ°Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΎΡΠΊΡΠ΄Π° Π±ΡΠΊΠ²Π° K Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ) ΠΈ Π΅ΡΡΡ Π½ΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ·ΡΠΊΠ° K. ΠΠΎΠ²Π΅ΡΡ
K Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ½Π°Ρ Π²Π·Π³Π»ΡΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π΅ΡΡΠΈΡ K ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Q. Π Q ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° SQL β QSQL, Π° Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π±Π»ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
, ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Ρ.ΠΏ.
Β
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ KDB+ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ·ΡΠΊΠ° Q Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
Π½Π° SQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠΈΠ»Π΅ LINQ ΠΈΠ· C#. ΠΡΠΎ Π²Π°ΠΆΠ½Π΅ΠΉΡΠ΅Π΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ KDB+ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΠΎ ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΠ΄Π°. ΠΡΠΎ Π½Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
+ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ-ΠΈΠ½Π²Π°Π»ΠΈΠ΄, Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ + Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ»Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ
ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² KDB+. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρβ¦
Β
Π Π°Π·ΠΌΠ΅Ρ
ΠΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΊΠ°ΠΌ KDB+ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΡΠΎ Π² Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ° ΠΈ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π Π΅Π°Π»ΡΠ½ΠΎ β ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ° ΠΈ Π·Π° ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠ»Π°ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π² Π³ΠΎΠ΄ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
- Π’Π°ΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ KDB+ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ΅Π±Ρ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ β ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Pi Π΄ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡΠ΅Ρ Q ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠΉ ΡΠ·ΡΠΊ.
- ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Q ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
- ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠ΅ΡΡ Q Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½ΠΈΡΡΠΎΠΆΠ½ΠΎ ΠΌΠ°Π»ΠΎ ΠΌΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΡ ΡΠΎΡΠ½ΡΠΌΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Q ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ-ΡΠΎΡΠ½ΡΠΌΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ
Q ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΌΡΡ
ΡΠ°Π·Π½ΡΡ
Π·Π°Π΄Π°Ρ. ΠΡΠΎΡΠ΅ΡΡ Q ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±ΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π£ Π½Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π±Π°Π·, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠ΄ΠΈΠ½ Π½Π΅ΡΠΆΠ°ΡΡΠΉ Π΄Π΅Π½Ρ Π΄Π°Π½Π½ΡΡ
Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ 100 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΈ ΡΠ°Π·ΡΠΌΠ½ΡΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ
Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π·Π° Π΄Π΅ΡΡΡΠΊΠΈ-ΡΠΎΡΠ½ΠΈ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. Π ΡΠ΅Π»ΠΎΠΌ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ°ΡΡ β 30 ΡΠ΅ΠΊΡΠ½Π΄ β ΠΈ ΠΎΠ½ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ.
Β
Π‘ ΡΠΎΠΉ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎΡΡΡΡ Q ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ in-memory Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΊ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ, ΡΡΠΎ Π»ΠΈΠΌΠΈΡΠΈΡΡΡΡΠΈΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Ρ
ΡΠ°Π½ΡΡΡΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ, Π° Π·Π½Π°ΡΠΈΡ Π»ΡΠ±Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΠΎΠ»Π½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ. Π Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π² KX ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΠ΅Π· Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΠΈΡ
ΡΠΊΠΎΡΠΎΡΡΡ. Q ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½ΡΠ΅ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΠΌ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Π² Β«ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ» (Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΡ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ΅ΠΊΡΠ½Π΄ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ) ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΡΡΠΎΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΄Π΅Π»ΠΊΠΈ Π½Π° ΡΡΠ½ΠΎΠΊ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π΅Π΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ. Π ΡΠ°ΠΊΠΈΡ
Π·Π°Π΄Π°ΡΠ°Ρ
ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π²Π½ΠΎΡΠΈΡ Π½Π΅ Q, Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
QSQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΠΆΠΎΠΉΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ, Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Β
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π° Q ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ Π»ΡΠ±ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Gateway ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ Π½ΡΠΆΠ½ΡΠΌ Π±Π°Π·Π°ΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠΎΡΠΈΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ, ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠ²ΠΎΡ ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΅Π³ΠΎ Π΄ΡΡΠ΅ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΠ΅ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΌΡ.
Β
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΅ΡΡΡ Ρ Π½Π°Ρ. ΠΡΠ΅ ΠΎΠ½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π² ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π±Π°Π·, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Ρ ΡΠΎΡΠ½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
- ΠΠΎΠ½Π½Π΅ΠΊΡΠΎΡΡ (feedhandler) ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³ΡΡΠ·ΡΡΡΡ Π² Q. Π‘-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² Q ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π΅Π· ΡΡΡΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠΊΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ Π‘/C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Q Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠ° FIX ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠΎ Π²ΡΠ΅Ρ Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ ΡΡΠΎΠΊΠΎΠ²ΡΡ Π±ΠΈΡΠΆ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
- Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ (tickerplant), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ°Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌΠΈ. ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΎΠ½ΠΈ ΠΏΠΈΡΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊ ΠΏΠΎΡΠ΅ΡΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΠΌ.
- In-memory Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (rdb). ΠΡΠΈ Π±Π°Π·Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΡΡΠΌ ΡΠ²Π΅ΠΆΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, Ρ ΡΠ°Π½Ρ ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ΠΈ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π½Ρ ΠΈ ΠΎΠ±Π½ΡΠ»ΡΡΡ ΠΈΡ Π½ΠΎΡΡΡ.
- Persist Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (pdb). ΠΡΠΈ Π±Π°Π·Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π·Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΡΡ Π±Π°Π·Ρ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ rdb, ΠΎΠ½ΠΈ Π½Π΅ Ρ ΡΠ°Π½ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π΄Π½Ρ ΠΈ ΠΊΠΎΠΏΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Π½ΠΎΡΡ Π² ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΡΡ Π±Π°Π·Ρ.
- ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π°Π·Ρ (hdb). ΠΡΠΈ Π±Π°Π·Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π·Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π΄Π½ΠΈ, ΠΌΠ΅ΡΡΡΡ ΠΈ Π³ΠΎΠ΄Ρ. Π Π°Π·ΠΌΠ΅Ρ ΠΈΡ (Π² Π΄Π½ΡΡ ) ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΆΠ΅ΡΡΠΊΠΈΡ Π΄ΠΈΡΠΊΠΎΠ². ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΠ°Π·Π½ΡΡ Π΄ΠΈΡΠΊΠ°Ρ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ°. ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΆΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π½Π° Π²ΡΠ±ΠΎΡ. Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π°Π·Ρ Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈ ΠΏΡΠΎΡΡΠ°, Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΡΠ°ΠΊ ΡΡΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
- ΠΠ°Π·Ρ Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. Π₯ΡΠ°Π½ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Ρ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. In-memory Π±Π°Π·Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ, Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ ΡΠ°Π½ΡΡ ΠΏΡΠ΅Π΄Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ.
- ΠΠ°ΠΊΠΎΠ½Π΅Ρ, gateway ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Q ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡ ΠΏΠΎ Π±Π°Π·Π°ΠΌ, ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Ρ.ΠΏ. ΠΠ°ΠΌΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ SQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π² Π΄ΡΡΠ³ΠΈΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ . Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ SQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΡΡΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ β ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ, Π΄Π°Π½Π½ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΡΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π½Π° Π°ΠΊΡΠΈΠΉ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΠ»Π° Π²ΡΠΏΠ»Π°ΡΠ° Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄ΠΎΠ²) ΠΈ Ρ.ΠΏ.
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ :
Π‘ΠΊΠΎΡΠΎΡΡΡ
Π₯ΠΎΡΡ Q ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΌΡ β ΡΠΈΡΠ»Π°, Π²Π΅ΠΊΡΠΎΡΠ°, ΠΌΠ°ΡΡΠΈΡΡ, ΡΠΏΠΈΡΠΊΠΈ, Π° ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΠ΅ Π΄Π²Π° Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΆΠ΅ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»ΠΈ, ΡΡΠΎ ΡΠ·ΡΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΡΠΏΠ΅ΡΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π»ΡΠ²ΠΈΠ½Π°Ρ Π΄ΠΎΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
Π½Π° Q ΡΡ
ΠΎΠ΄ΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΡΡΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π΅ΠΌ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ
Π΄Π°ΠΆΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅. ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΠΏΠΈΡΠΎΠ½Π΅ β Ρ
ΠΎΡΡ ΡΠ°ΠΌ ΠΏΠΈΡΠΎΠ½ ΡΠ·ΡΠΊ Π²Π΅ΡΡΠΌΠ° Π½Π΅Π±ΡΡΡΡΡΠΉ, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠΈΠΏΠ° numpy, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° (ΠΊΡΡΠ°ΡΠΈ, numpy ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ Q).
Β
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π² KX Π²Π΅ΡΡΠΌΠ° ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ ΡΠ°Π±Π»ΠΈΡ, Π½ΠΎ ΠΈ ΠΊ Π»ΡΠ±ΡΠΌ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌ β Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, Π°ΡΡΠΈΠ±ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π΄Π»Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π±Π°Π·. ΠΠ½Π΄Π΅ΠΊΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ/Π²Π΅ΠΊΡΠΎΡ. ΠΠ½Π΄Π΅ΠΊΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΊΠ°ΠΊ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ QSQL Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΄Π΅Π»Π°Π½Π° ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠ‘ (memory map). ΠΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π³ΡΡΠ·ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π³ΡΡΠ·ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ° ΠΈΡ
ΡΠ°ΡΡΡ (ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ), ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°. ΠΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ, Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ, ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ mmap ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΡΡΡ Π² Π½Π΅Π΄ΡΠ°Ρ
Q.
Β
KDB+ Π½Π΅ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
, ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΎΡΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ΄Π°ΠΌΠΈ (Π΄Π°Π½Π½ΡΠ΅ Ρ Π±ΠΈΡΠΆ, ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ, Π»ΠΎΠ³ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
SQL ΡΡΡΠΊΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ N ΡΡΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° N-ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ Ρ.ΠΏ. ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡΡΡ Π΄ΠΆΠΎΠΉΠ½Ρ ΡΠ°Π±Π»ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΉΡΠΈ Π΄Π»Ρ 16000 ΡΠ΄Π΅Π»ΠΎΠΊ VOD.L (ΠΠΎΠ΄Π°ΡΠΎΠ½) ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΠ· 500 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Π΄Π΅ΡΡΡΠΎΠΊ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π² ΠΏΠ°ΠΌΡΡΠΈ.
Β
ΠΡΠΈΠΌΠ΅Ρ Π΄ΠΆΠΎΠΉΠ½Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β quote ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ VOD.L Π² where, Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° sym ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΡΡΠΈ Π²ΡΠ΅ Π΄ΠΆΠΎΠΉΠ½Ρ Π² Q β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΡΠ°ΡΡΡ select Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
1. aj[`sym`time;selectΒ fromΒ tradeΒ whereΒ date=2019.03.26,Β sym=`VOD.L;selectΒ fromΒ quoteΒ whereΒ date=2019.03.26]Β Β
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ Π² KX, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΡΡΡΡΠ° Π£ΠΈΡΠ½ΠΈ, ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π½Ρ Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ, ΡΡΠΎΠ±Ρ Π²ΡΠΆΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Q ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΠ΅ ΠΏΠ°ΡΠ΅ΡΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Β
ΠΡΠΎΠ³
KDB+ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° Ρ Π±ΠΈΠ·Π½Π΅ΡΠ° Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ β ΠΎΠ½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ»ΡΠΆΠΈΡ ΠΈ ΠΊΠ°ΠΊ in-memory Π±Π°Π·Π°, ΠΈ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
, ΠΈ ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ
. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±Π°Π·Π΅, Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π²Π΅ΡΡ ΡΡΠ΅ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² β ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Β
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ KDB+/Q ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π―Π·ΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ°Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Ρ (value, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 11 Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ). Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΡΡΠ»ΠΈΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², Π²ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ map/reduce (ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ adverbs Π² Q), Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ, Π·Π°ΠΌΠ΅Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° N-Π³ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ:
1. (whereΒ element=vector)[N]Β Β
Ρ
ΠΎΡΡ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΆΡΡΠΊΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠΊΠ°ΠΌ C/Java (= ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΡΠ»Π΅Π²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ, where Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ true ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½Π΅ΠΌ). ΠΠΎ ΡΠ°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π΄Π΅Π»Π°Π΅Ρ ΡΠΌΡΡΠ» Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π±ΡΡΡΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ
Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ
. ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π²Π½ΠΈΠΌΠ° Ρ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°ΠΌΠΈ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΠΊ ΡΡΠΎΠΌΡ Π½Π°Π΄ΠΎ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ.
Β
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ²Π°ΡΡ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ QSQL. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° Π½Π°ΡΡΠΎΡΡΠΈΠΉ SQL. ΠΠ° Π΄Π΅Π»Π΅ ΠΆΠ΅ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π° Q, ΠΊ ΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π° Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ-ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ.
Β
ΠΠ°ΠΊ ΠΏΠ»ΡΡ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ Q β Q For Mortals Π΄ΠΎΡΡΡΠΏΠ½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π½Π°
Β
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΈΠ½ΡΡ β ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ. ΠΡΠΎ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π² Π³ΠΎΠ΄ Π·Π° ΠΎΠ΄ΠΈΠ½ CPU. Π’ΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΈΡΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ°ΡΡ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ KX ΡΠ΄Π΅Π»Π°Π»Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ»Π°ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ KDB+ Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ
ΠΡΠ³Π» ΠΈ ΠΠΌΠ°Π·ΠΎΠ½. Π’Π°ΠΊΠΆΠ΅ KX ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ
Β
ΠΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π±Π°Π·, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ
Π½Π° ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ
β ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΡΠ΅, in-memory, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
. Π―ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β Clickhouse. Π£ ΡΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ Π½Π° KDB+ ΠΏΡΠΈΠ½ΡΠΈΠΏ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ ΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±ΡΡΡΡΠ΅Π΅ KDB+, Ρ
ΠΎΡΡ ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
Clickhouse ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌ KDB+ β web Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° vs ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΄Ρ (ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ β ΠΈΠ·-Π·Π° Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Clickhouse Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ). ΠΠΎ, Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ Clickhouse Π½Π΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ KDB+, ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±Π°Π·Π΅, Π° Π½Π΅ Π³ΡΡΠ·ΠΈΡΡ ΠΈΡ
ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ SQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π·Π°ΠΏΡΠΎΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·Ρ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ KDB+ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΡΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Π·Π°Π΄Π°ΡΠ°Ρ
ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
, Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
Β
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Python
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ KDB+ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡΡ
Ρ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, KX ΡΠΎΠ·Π΄Π°Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Python Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ·ΡΠ²Π°ΡΡ Π»ΡΠ±ΡΡ python-ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Q, ΡΠ°ΠΊ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ β Π²ΡΠ·ΡΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Q ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Python (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ QSQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΡΠ°Π΄ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°) Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² ΡΠΎΡΠΌΠ°Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π ΠΈΡΠΎΠ³Π΅ Q ΠΈ Python ΠΆΠΈΠ²ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΈΠΌΠ±ΠΈΠΎΠ·Π΅, ΡΡΠΎ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ Python, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² Python Π±ΡΡΡΡΡΡ Π±Π°Π·Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
Β
Π Π°Π±ΠΎΡΠ° Ρ Q Π² Python:
1. >>>Β q()Β Β
2.q)trade:([]date:();sym:();qty:())Β Β
3. q)Β Β
4. >>>Β q.insert('trade',Β (date(2006,10,6),Β 'IBM',Β 200))Β Β
5. k(',0')Β Β
6. >>>Β q.insert('trade',Β (date(2006,10,6),Β 'MSFT',Β 100))Β Β
7. k(',1')Β Β
Π‘ΡΡΠ»ΠΊΠΈ
Π‘Π°ΠΉΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ β
Π‘Π°ΠΉΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² β
ΠΠ½ΠΈΠ³Π° Q For Mortals (Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ) β
Π‘ΡΠ°ΡΡΠΈ Π½Π° ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ KDB+/Q ΠΎΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² kx β
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com