
KDB+/Q: ടിക് ഡേറ്റാബേസുകളുടെ ഭാഷ
വാൾ സ്ട്രീറ്റ് ബില്യൺ കണക്കിന് മാർക്കറ്റ് ഡേറ്റ പോയിന്റുകൾ എങ്ങനെ സൂക്ഷിക്കുകയും ക്വറി ചെയ്യുകയും ചെയ്യുന്നു
ഒരു മിനിറ്റിൽ KDB+ ഉം Q ഉം
KDB+ ഒരു കോളം-അധിഷ്ഠിത ടൈം-സീരീസ് ഡേറ്റാബേസ് ആണ്; Q അതിന്റെ വെക്ടർ ലാംഗ്വേജ് ആണ്. Sell-side, buy-side ഫേമുകൾ ടിക്ക് സ്റ്റോറേജിനും, ജോയിനുകൾക്കും, റോളിംഗ് അനലിറ്റിക്സിനും ഇത് സ്വീകരിച്ചു — അവിടെ കോളം സ്കാൻ ചെയ്യുന്നത് row-by-row ലൂപ്പുകളെക്കാൾ മികച്ചതാണ്.
പെർഫോമൻസ് വരുന്നത് കോളമാർ ലേഔട്ടിൽ നിന്നും, മെമ്മറി മാപ്പിംഗിന്റെ ശക്തമായ ഉപയോഗത്തിൽ നിന്നും, ഹാർഡ്വെയറിനോട് അടുത്ത് നടപ്പിലാക്കിയ വെക്ടർ പ്രിമിറ്റീവുകളിൽ നിന്നുമാണ്. ഇത് ഒരു പൊതു OLTP പകരക്കാരനല്ല; append-heavy ടൈം സീരീസിനായി ട്യൂൺ ചെയ്തതാണ്.
Q അടിസ്ഥാനങ്ങൾ
Q ഒതുക്കമുള്ളതും വലത്-നിന്ന്-ഇടത്തേക്കുള്ളതുമാണ്. വെക്ടറുകൾ സ്വാഭാവികമാണ്; ലൂപ്പുകൾ ഉണ്ട്, പക്ഷേ hot path-കൾ അവയെ ഒഴിവാക്കുന്നു. ടിക്ക് ഡേറ്റ സംഭരിക്കുന്ന രീതിയുമായി പട്ടികകൾ പൊരുത്തപ്പെടുന്നു — അവ കോളങ്ങളുടെ ഡിക്ഷണറികളാണ്.
prices: 100.5 101.2 99.8
avg prices
deltas prices
വായിക്കാവുന്ന Q ചെറിയ ഫങ്ഷനുകളിൽ നിന്നും കമന്റുകളിൽ നിന്നും വരുന്നു — പങ്കിട്ട കോഡ്ബേസുകളിൽ ഒതുക്കം മാത്രം ഒരു ഗുണമല്ല.
Tickerplant, RDB, HDB
ഒരു സാധാരണ പാറ്റേൺ: ഒരു tickerplant ഫീഡുകൾ ഇൻജെസ്റ്റ് ചെയ്ത് സബ്സ്ക്രൈബർമാർക്ക് ഫാൻ ഔട്ട് ചെയ്യുന്നു; ഒരു റിയൽ-ടൈം ഡേറ്റാബേസ് നിലവിലെ സെഷൻ സൂക്ഷിക്കുന്നു; ഒരു ഹിസ്റ്റോറിക്കൽ ഡേറ്റാബേസ് ഡിസ്കിൽ പാർട്ടീഷൻ ചെയ്ത ചരിത്രം സംഭരിക്കുന്നു. End-of-day പ്രോസസ്സുകൾ RT-യെ HDB പാർട്ടീഷനുകളിലേക്ക് റോൾ ചെയ്യുന്നു.
select last price by sym from trades where time > .z.t - 00:05
ക്രിപ്റ്റോ ഒരിക്കലും അടയ്ക്കാത്തതിനാൽ, "സെഷൻ" അതിരുകൾ എക്സ്ചേഞ്ച് ബെല്ലുകൾ അല്ല, ഓപ്പറേഷണൽ തിരഞ്ഞെടുപ്പുകളാണ്.
എവിടെയാണ് ഇത് കാണപ്പെടുന്നത്
ഫേമുകൾ KDB+ ഉപയോഗിക്കുന്നത് സർവൈലൻസ് ഡാഷ്ബോർഡുകൾക്കും, ക്വോട്ട് അനലിറ്റിക്സിനും, റിസർച്ച് ഡേറ്റാസെറ്റുകൾക്കുമാണ്. പേരുകളും ഡിപ്ലോയ്മെന്റുകളും വ്യത്യാസപ്പെടുന്നു; ടിക്കുകൾക്കും ഓർഡറുകൾക്കും മേലുള്ള വേഗതയുള്ള slice-and-dice ആണ് പാറ്റേൺ.
ക്രിപ്റ്റോ വേദികൾ തുടർച്ചയായ ഡേറ്റ ഉണ്ടാക്കുന്നു — റിറ്റൻഷൻ, റീപ്ലേ, കംപ്ലയൻസ് export മുൻകൂട്ടി പ്ലാൻ ചെയ്യുക.
ലൈസൻസ് ചെലവും ബദലുകളും
കൊമേഴ്ഷ്യൽ ലൈസൻസിംഗും സ്പെഷ്യലൈസ്ഡ് ഹയറിംഗും യഥാർത്ഥ ചെലവുകളാണ്. ഓപ്പൺ ബദലുകൾ (ClickHouse, Timescale, QuestDB, Parquet-നു മേൽ DuckDB) വില-ക്കായി ecosystem fit കൈമാറുന്നു. നിങ്ങളുടെ ക്വറി മിക്സിൽ ബെഞ്ച്മാർക്ക് ചെയ്യുക, vendor സ്ലൈഡുകളിലല്ല.
ക്രിപ്റ്റോ ടിക്ക് സ്റ്റാക്കുകൾ
പല ടീമുകളും Kafka അല്ലെങ്കിൽ Redpanda-യെ കോളമാർ സ്റ്റോറേജും SQL എഞ്ചിനുകളും ചേർത്ത് ഉപയോഗിക്കുന്നു. KDB+-ൽ നിന്നുള്ള invariant ഇപ്പോഴും ബാധകമാണ്: സമയം അനുസരിച്ച് പാർട്ടീഷൻ ചെയ്യുക, സ്കീമകൾ കർശനമായി സൂക്ഷിക്കുക, exchange timestamp-ൽ നിന്ന് ക്വറി ഫലം വരെയുള്ള end-to-end lag അളക്കുക.
GaiaEx API ഉപഭോക്താക്കൾ server timestamp-കളും sequence identifier-കളും — തുറന്നിട്ടുണ്ടെങ്കിൽ — ലോഗ് ചെയ്യണം; ഊഹത്തെക്കാൾ correlation മെച്ചമാണ്.


