Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ KDB+: ΠΎΡ‚ финанситС Π΄ΠΎ β€žΠ€ΠΎΡ€ΠΌΡƒΠ»Π° 1β€œ

KDB+, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° компанията KX β€” Ρ‚ΠΎΠ²Π° Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстна Π² тСсни ΠΊΡ€ΡŠΠ³ΠΎΠ²Π΅, ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π±ΡŠΡ€Π·Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΈΡ†ΠΈ ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ изчислСния Π½Π° тяхна Π±Π°Π·Π°. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ тя бСшС (ΠΈ всС ΠΎΡ‰Π΅ Π΅) ΠΌΠ½ΠΎΠ³ΠΎ популярна Π² индустрията Π½Π° финанситС β€” ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС ΠΎΡ‚ всички Ρ‚ΠΎΠΏ 10 инвСстиционни Π±Π°Π½ΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ извСстни Ρ…Π΅Π΄ΠΆ Ρ„ΠΎΠ½Π΄ΠΎΠ²Π΅, борси ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ послСдно Π²Ρ€Π΅ΠΌΠ΅ KX Ρ€Π΅ΡˆΠΈ Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΠΈ клиСнтската си Π±Π°Π·Π° ΠΈ сСга ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ области, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ структурирани Π΄Π°Π½Π½ΠΈ β€” Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π±ΠΈΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°, производство ΠΈ Ρ‚.Π½. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π΅ станаха ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ Π½Π° Π΅ΠΊΠΈΠΏΠ° Aston Martin Red Bull Racing във Π€ΠΎΡ€ΠΌΡƒΠ»Π° 1, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ сСнзоритС Π½Π° Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈΡ‚Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ тСстовСтС Π² аСродинамичния Ρ‚ΡƒΠ½Π΅Π». Π’ Ρ‚Π°Π·ΠΈ статия искам Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠ²ΠΈ особСности правят KDB+ ΡΠ²Ρ€ΡŠΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½Π°, Π·Π°Ρ‰ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° инвСстират Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ суми Π² нСя, ΠΈ накрая, Π·Π°Ρ‰ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ само Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
Β 
Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ KDB+: ΠΎΡ‚ финанситС Π΄ΠΎ β€žΠ€ΠΎΡ€ΠΌΡƒΠ»Π° 1β€œ
Β 
Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° обясня ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠ°ΠΊΠ²ΠΎ прСдставлява 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 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎ-приятна Π·Π° ΠΎΠΊΠΎΡ‚ΠΎ вСрсия, Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° 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 ΠΈΠ·Ρ€Π°Π·Π° ΠΈ join-ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚, Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ с Π±ΠΈΠ½Π°Ρ€Π΅Π½ ΠΊΠΎΠ΄.
Β 
Накрая, Π½Π° Q ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΈΡˆΠ°Ρ‚ ΠΈ всякакви сСрвизни процСси. НапримСр, Gateway процСси, ΠΊΠΎΠΈΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ разпрСдСлят потрСбитСлскитС запитвания ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΡŠΡ‚ ΠΈΠΌΠ° пълна свобода Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° всСки Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° балансиранС, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, отказоустойчивост, ΠΏΡ€Π°Π²Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ, ΠΊΠ²ΠΎΡ‚ΠΈ ΠΈ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΡƒ Π΅ Π½Π° ΡƒΠΌΠ°. Π“Π»Π°Π²Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Ρ‚ΡƒΠΊ Π΅, Ρ‡Π΅ Ρ‰Π΅ трябва всичко Ρ‚ΠΎΠ²Π° Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° самостоятСлно.
Β 
Π—Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ изброя ΠΊΠ°ΠΊΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ процСси ΠΈΠΌΠ°ΠΌΠ΅. Π’Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΈ работят Π·Π°Π΅Π΄Π½ΠΎ, обСдинявайки дСсСтки Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π°Π·ΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΉΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ мноТСство ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ ΠΈ обслуТвайки стотици ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ прилоТСния.

  • ΠšΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ΠΈ (feedhandler) към ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’Π΅Π·ΠΈ процСси ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ външни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ Π² Q. C-ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π² Q Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ прост ΠΈ позволява лСсно създаванС Π½Π° прокси Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° всяка C/C++ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Q Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π±ΡŠΡ€Π·, Π·Π° Π΄Π° сС справи, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° FIX ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΎΡ‚ всички СвропСйски Ρ„ΠΎΠ½Π΄ΠΎΠ²ΠΈ борси Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
  • Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ (tickerplant), ΠΊΠΎΠΈΡ‚ΠΎ слуТат ΠΊΠ°Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‚Π΅ записват входящитС Π΄Π°Π½Π½ΠΈ Π² спСциалСн Π±ΠΈΠ½Π°Ρ€Π΅Π½ Π»ΠΎΠ³, осигурявайки устойчивост Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ Π·Π°Π³ΡƒΠ±Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΈΠ»ΠΈ рСстартиранС.
  • In-memory Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (rdb). Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ осигуряват максимално Π±ΡŠΡ€Π· Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ свСТи сурови Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΉΠΊΠΈ Π³ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ОбикновСно Ρ‚Π΅ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΏΡ€Π΅Π· дСня ΠΈ Π³ΠΈ обнуляват ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π°.
  • Persist Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (pdb). Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ осигуряват Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° тСкущия Π΄Π΅Π½ Π² историчСска Π±Π°Π·Π°. ОбикновСно, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ rdb, Ρ‚Π΅ Π½Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ спСциалСн кСш Π½Π° диска Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° дСня ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»ΡƒΠ½ΠΎΡ‰ Π² историчСската Π±Π°Π·Π°.
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Π±Π°Π·ΠΈ (hdb). Π’Π΅Π·ΠΈ Π±Π°Π·ΠΈ прСдоставят Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Π΄Π½ΠΈ, мСсСци ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ ΠΈΠΌ (Π² Π΄Π½ΠΈ) Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ само ΠΎΡ‚ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° Π½Π° Ρ‚Π²ΡŠΡ€Π΄ΠΈΡ диск. Π”Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ навсякъдС, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ дисковС Π·Π° ускоряванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ°. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° компрСсиранС Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ няколко Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ€. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΅ Π΄ΠΎΠ±Ρ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° ΠΈ проста, Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.
  • Π‘Π°Π·ΠΈ с Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π° информация. Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° инструмСнта ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». In-memory Π±Π°Π·ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ си ΠΏΡ€ΠΈ всяко входящо ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Π° историчСскитС хранят ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ изчислСни Π΄Π°Π½Π½ΠΈ Π·Π° ускоряванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ историчСскитС Π΄Π°Π½Π½ΠΈ.
  • Накрая, gateway процСси, обслуТващи прилоТСния ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Q позволява Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° напълно асинхронна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° входящи ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, разпрСдСлянСто ΠΈΠΌ ΠΏΠΎ Π±Π°Π·ΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π°Π²Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ Π΄Ρ€. ЗабСлязвам, Ρ‡Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π½Π΅ са ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΈ Π½Π°ΠΉ-чСсто Π½Π΅ прСдставляват SQL ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Най-чСсто SQL ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Π΅ скрит Π² спСциална функция ΠΈ сС конструира въз основа Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, поискани ΠΎΡ‚ потрСбитСля β€” ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅, Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС изравнява, Π°ΠΊΠΎ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Ρ‚Π½ΠΈ плащания) ΠΈ Ρ‚.Π½.

Π’ΠΈΠΏΠΈΡ‡Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π·Π° Π΅Π΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ:

Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ KDB+: ΠΎΡ‚ финанситС Π΄ΠΎ β€žΠ€ΠΎΡ€ΠΌΡƒΠ»Π° 1β€œ

Бкорост

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Q Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π΅ΠΌ Π΅Π·ΠΈΠΊ, Ρ‚ΠΎΠΉ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅Π½ Π΅Π·ΠΈΠΊ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎ-спСциално Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅, ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ във всякаква Ρ„ΠΎΡ€ΠΌΠ° β€” числа, Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈ, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†ΠΈ, ΡΠΏΠΈΡΡŠΡ†ΠΈ, Π° ΠΎΡ‚ програмиста сС ΠΎΡ‡Π°ΠΊΠ²Π° Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с масиви. Π’ Ρ‚Π°ΠΊΡŠΠ² Π΅Π·ΠΈΠΊ, Π°ΠΊΠΎ ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° с ΠΌΠΈΠ»ΠΈΠΎΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°, Π²Π΅Ρ‡Π΅ няма Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ с супСроптимизирана Π±ΠΈΠ½Π°Ρ€Π½Π° функция. Въй ΠΊΠ°Ρ‚ΠΎ голямата част ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Q ΠΎΡ‚ΠΈΠ²Π° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Π·ΠΈ основни Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΈΠΌΠ°ΠΌΠ΅ доста ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Π° скорост Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, позволяваща ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ ΠΎΠ±Π΅ΠΌ Π΄Π°Π½Π½ΠΈ Π΄ΠΎΡ€ΠΈ Π² Π΅Π΄ΠΈΠ½ процСс. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° матСматичСскитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Python β€” Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ самият Python Π΅ доста Π±Π°Π²Π΅Π½ Π΅Π·ΠΈΠΊ, Π² Π½Π΅Π³ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ прСкрасни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ numpy, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° числови Π΄Π°Π½Π½ΠΈ със скоростта Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ (ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, numpy Π΅ идСологичСски Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ Q).
Β 
ОсвСн Ρ‚ΠΎΠ²Π°, Π² KX Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ са ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°Π»ΠΈ към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ оптимизацията Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с тях. ΠŸΡŠΡ€Π²ΠΎ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС няколко Π²ΠΈΠ΄Π° индСкси, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΎΡ‚ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π΅ само към ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, Π½ΠΎ ΠΈ към всякакви Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈ β€” Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅, сортиранС, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π° уникалност ΠΈ спСциално Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π·Π° историчСски Π±Π°Π·ΠΈ. Π˜Π½Π΄Π΅ΠΊΡΡŠΡ‚ сС Π½Π°Π»Π°Π³Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° ΠΏΡ€ΠΈ добавянС Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π°/Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Π˜Π½Π΄Π΅ΠΊΡΠΈΡ‚Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π½Π°Π»Π°Π³Π°Ρ‚ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° диска. ΠŸΡ€ΠΈ изпълнСниС Π½Π° QSQL Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ индСкситС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, Π°ΠΊΠΎ Π΅ възмоТно. На Π²Ρ‚ΠΎΡ€ΠΎ място, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с историчСски Π΄Π°Π½Π½ΠΈ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° отразяванС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ОБ (memory map). Π“ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ сС Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°; вмСсто Ρ‚ΠΎΠ²Π° Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ сС отразяват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ наистина сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° само ΠΎΠ½Π·ΠΈ Ρ‚Π΅Ρ…Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ (Ρ‚ΡƒΠΊ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ ΠΈ индСкситС), ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. Π—Π° програмиста няма Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π»ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈΠ»ΠΈ Π½Π΅, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌΡŠΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с mmap Π΅ напълно скрит Π² Π½Π΅Π΄Ρ€Π°Ρ‚Π° Π½Π° Q.
Β 
KDB+ Π΅ Π½Π΅Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° Ρ€Π΅Π΄Π° Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π΅ сС промСня ΠΏΡ€ΠΈ добавянС Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ ΠΈ трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ написванСто Π½Π° запитвания. Π’Π°Π·ΠΈ особСност Π΅ ΠΊΡ€Π°ΠΉΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΈΡ†ΠΈ (Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ борси, тСлСмСтрия, Π»ΠΎΠ³ΠΎΠ²Π΅ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ), Π·Π°Ρ‰ΠΎΡ‚ΠΎ, Π°ΠΊΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са сортирани ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅, потрСбитСлят Π½Π΅ трябва Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ SQL Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΏΡŠΡ€Π²ΠΈΡ ΠΈΠ»ΠΈ послСдния ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ€Π΅Π΄ ΠΈΠ»ΠΈ N Ρ€Π΅Π΄Π°, Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠΉ Ρ€Π΅Π΄ слСдва слСд N-Ρ‚ΠΈ Ρ€Π΅Π΄ ΠΈ Ρ‚.Π½. ΠžΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ сС опростяват join-ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Π·Π° 16000 сдСлки VOD.L (Π’ΠΎΠ΄Π°Ρ„ΠΎΠ½) послСдната ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π° с 500 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ сСкунда Π½Π° диска ΠΈ дСсСтина милисСкунди Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
Β 
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° join ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ β€” Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° quote сС отразява Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ няма Π½ΡƒΠΆΠ΄Π° Π΄Π° сС посочва VOD.L Π² where, нСявно сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° sym ΠΈ Ρ„Π°ΠΊΡ‚ΡŠΡ‚, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са сортирани ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠŸΠΎΡ‡Ρ‚ΠΈ всички join-ΠΎΠ²Π΅ Π² 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 (ΠΊΠΎΠΈΡ‚ΠΎ Π² Q сС Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ adverbs), Π½ΠΈΠΊΠΎΠ³Π° Π΄Π° Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚Π΅ Π΄Π° спСститС, замСняйки Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ. НапримСр, Π·Π° Π½Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° индСкса Π½Π° N-Ρ‚ΠΎ Π²Ρ…ΠΎΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π² масива трябва Π΄Π° сС пишС:

1. (where element=vector)[N]Β Β 

Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° уТасно Π½Π΅Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ спорСд стандартитС Π½Π° C/Java (създава Π±ΡƒΠ»Π΅Π² Π²Π΅ΠΊΡ‚ΠΎΡ€, where Π²Ρ€ΡŠΡ‰Π° индСкситС Π½Π° истинскитС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² Π½Π΅Π³ΠΎ). Но Ρ‚Π°ΠΊΠ°Π²Π° запис ΠΏΡ€Π°Π²ΠΈ смисъла Π½Π° ΠΈΠ·Ρ€Π°Π·Π° ΠΏΠΎ-Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈ Π²ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вмСсто Π±Π°Π²Π½ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ вСкторния Π΅Π·ΠΈΠΊ ΠΈ останалитС Π΅ сравнима с Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ импСративния ΠΈ функционалния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ към ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, ΠΈ към Ρ‚ΠΎΠ²Π° трябва Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ‚Π΅.
Β 
Някои ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΡΡŠΡ‰ΠΎ са Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ‚ QSQL. Π€Π°ΠΊΡ‚ΡŠΡ‚ Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ само ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° истински SQL. Π’ дСйствитСлност, Ρ‚ΠΎΠ²Π° Π΅ просто ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° оптимизация Π½Π° запитванията. ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ трябва сам Π΄Π° пишС ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ запитвания, ΠΈ Ρ‚ΠΎ Π½Π° Q, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° Π½Π΅ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° направят. ΠžΡ‚ Π΄Ρ€ΡƒΠ³Π° страна, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ сам Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, вмСсто Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚Π΅ Π½Π° чСрния кутия-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€.
Β 
ΠšΠ°Ρ‚ΠΎ плюс ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° ΠΏΠΎ Q β€” Q For Mortals Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ Π½Π° уСбсайта Π½Π° компанията, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ ΡΡŠΠ±Ρ€Π°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ.
Β 
ΠžΡ‰Π΅ Π΅Π΄ΠΈΠ½ голям минус β€” Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π»ΠΈΡ†Π΅Π½Π·Π°. Π’ΠΎΠ²Π° са дСсСтки хиляди Π΄ΠΎΠ»Π°Ρ€ΠΈ годишно Π·Π° Π΅Π΄ΠΈΠ½ CPU. Π‘Π°ΠΌΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° си позволят Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ. Наскоро KX Π½Π°ΠΏΡ€Π°Π²ΠΈ Π»ΠΈΡ†Π΅Π½Π·Π° ΠΏΠΎ-гъвкав ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΏΠ»Π°Ρ‰Π°Ρ‚Π΅ само Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈΠ»ΠΈ Π΄Π° Π½Π°Π΅ΠΌΠ΅Ρ‚Π΅ KDB+ Π² ΠΎΠ±Π»Π°Ρ†ΠΈΡ‚Π΅ Π½Π° Google ΠΈ Amazon. KX ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΡΡŠΡ‰ΠΎ ΠΈ Π·Π° изтСглянС Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° вСрсия Π·Π° Π½Π΅ΠΎΠ±Π»Π°Π³Π°Π΅ΠΌΠΈ Ρ†Π΅Π»ΠΈ (32-Π±ΠΈΡ‚ΠΎΠ²Π° вСрсия ΠΈΠ»ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²Π° ΠΏΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅).
Β 

ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈ

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ доста спСциализирани Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ β€” ΠΊΠΎΠ»ΠΎΠ½Π½ΠΈ, in-memory, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ към ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° са спСциализирани Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ЯсСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ Clickhouse. Π’Π°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ сходСн с KDB+ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° диска ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° индСкси, някои заявки тя изпълнява ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ KDB+, ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ. Но Π΄ΠΎΡ€ΠΈ ΠΈ ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Clickhouse Π΅ ΠΏΠΎ-спСциализирана ΠΎΡ‚ KDB+ β€” ΡƒΠ΅Π± Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° срСщу ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ€Π΅Π΄ΠΈΡ†ΠΈ (Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ β€” Π·Π°Ρ€Π°Π΄ΠΈ Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 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')Β Β 

Π’Ρ€ΡŠΠ·ΠΊΠΈ

Π‘Π°ΠΉΡ‚ Π½Π° компанията β€” https://kx.com/
Π‘Π°ΠΉΡ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ β€” https://code.kx.com/v2/
Книга Q For Mortals (Π½Π° английском) β€” https://code.kx.com/q4m3/
Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π½Π° Ρ‚Π΅ΠΌΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ KDB+ / Q ΠΎΡ‚ слуТитСлитС Π½Π° kx β€” https://code.kx.com/v2/wp/

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

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