KDB + database: los ntawm nyiaj txiag rau Formula 1

KDB+, tuam txhab khoom KX yog ib tug dav paub nyob rau hauv nqaim voj voog, ceev heev, columnar database tsim los rau khaws cia lub sij hawm series thiab analytical xam raws li lawv. Thaum pib, nws yog (thiab yog) nrov heev nyob rau hauv kev lag luam nyiaj txiag - nws yog siv los ntawm tag nrho cov saum toj kawg nkaus 10 peev lub tsev txhab nyiaj thiab ntau zoo-paub hedge funds, exchanges thiab lwm lub koom haum. Tsis ntev los no, KX tau txiav txim siab nthuav nws cov neeg siv khoom lag luam thiab tam sim no muab cov kev daws teeb meem hauv lwm qhov chaw uas muaj cov ntaub ntawv loj, teeb tsa los ntawm lub sijhawm lossis lwm yam - telecom, bioinformatics, kev tsim khoom, thiab lwm yam. Lawv kuj tau los ua ib tug khub ntawm Aston Martin Red Bull Racing pab neeg hauv Formula 1, qhov chaw uas lawv pab sau thiab ua cov ntaub ntawv los ntawm lub tsheb sensors thiab soj ntsuam cov kev ntsuas cua. Hauv tsab xov xwm no, kuv xav qhia koj tias cov yam ntxwv ntawm KDB + ua rau nws ua tau zoo heev, vim li cas cov tuam txhab txaus siab siv nyiaj ntau rau nws, thiab thaum kawg, vim li cas nws tsis yog cov ntaub ntawv tiag tiag.
 
KDB + database: los ntawm nyiaj txiag rau Formula 1
 
Hauv tsab xov xwm no kuv yuav sim qhia rau koj paub tias KDB + yog dab tsi, lub peev xwm thiab kev txwv nws muaj dab tsi, thiab nws cov txiaj ntsig zoo li cas rau cov tuam txhab uas xav ua cov ntaub ntawv loj. Kuv yuav tsis nkag mus rau hauv cov ntsiab lus ntawm kev siv KDB + lossis cov ntsiab lus ntawm nws cov lus Q programming. Ntau cov ntaub ntawv ntawm cov ncauj lus no tuaj yeem nrhiav tau ntawm code.kx.com, suav nrog phau ntawv Q - Q For Mortals (saib qhov txuas hauv qab).

Qee cov ntsiab lus

  • Hauv-nco database. Lub database uas khaws cov ntaub ntawv hauv RAM kom nkag tau sai dua. Qhov zoo ntawm cov ntaub ntawv zoo li no yog qhov tseeb, tab sis qhov tsis zoo yog qhov ua tau ntawm cov ntaub ntawv poob thiab yuav tsum muaj ntau lub cim xeeb ntawm lub server.
  • Kumnar database. Ib lub database uas cov ntaub ntawv khaws cia hauv kem es tsis sau los ntawm cov ntaub ntawv. Lub ntsiab kom zoo dua ntawm xws li ib tug database yog hais tias cov ntaub ntawv los ntawm ib kem yog khaws cia ua ke nyob rau hauv disk thiab nyob rau hauv lub cim xeeb, uas ho speeds mus rau nws. Tsis tas yuav thauj cov kab uas tsis siv rau hauv cov lus nug. Lub ntsiab tsis zoo yog tias nws nyuaj rau hloov kho thiab tshem tawm cov ntaub ntawv.
  • Sijhawm series. Cov ntaub ntawv nrog lub hnub lossis lub sijhawm. Feem ntau, kev txiav txim lub sij hawm tseem ceeb rau cov ntaub ntawv no, yog li koj tuaj yeem yooj yim txiav txim siab seb cov ntaub ntawv twg dhau los lossis ua raws li tam sim no, lossis siv cov haujlwm uas nws cov txiaj ntsig nyob ntawm qhov kev txiav txim ntawm cov ntaub ntawv. Classic databases yog tsim los ntawm ib txoj cai sib txawv kiag li - sawv cev rau ib qho kev sau ntawm cov ntaub ntawv raws li ib txheej, qhov kev txiav txim ntawm cov ntaub ntawv yog, hauv paus ntsiab lus, tsis tau txhais.
  • Vector. Hauv cov ntsiab lus ntawm KDB +, qhov no yog cov npe ntawm cov ntsiab lus ntawm tib hom atomic, piv txwv li, cov lej. Hauv lwm lo lus, ib qho array ntawm cov ntsiab lus. Cov arrays, tsis zoo li cov npe, tuaj yeem khaws cia thiab ua tiav siv cov lus qhia vector processor.

 

Keeb kwm keeb kwm

KX tau tsim muaj nyob rau xyoo 1993 los ntawm Arthur Whitney, uas yav dhau los ua haujlwm ntawm Morgan Stanley Bank ntawm A + hom lus, tus ua tiav rau APL - ib qho tseem ceeb heev thiab ib lub sijhawm nrov hom lus hauv ntiaj teb nyiaj txiag. Tau kawg, hauv KX, Arthur txuas ntxiv hauv tib lub siab thiab tsim cov lus vector-functional K, coj los ntawm cov tswv yim ntawm radical minimalism. K cov kev pab cuam zoo li jumble ntawm cov cim cim thiab cov cim tshwj xeeb, lub ntsiab lus ntawm cov cim thiab kev ua haujlwm nyob ntawm cov ntsiab lus, thiab txhua qhov kev ua haujlwm muaj ntau lub ntsiab lus ntau dua li nws ua hauv cov lus pom zoo. Vim li no, K qhov kev pab cuam yuav siv qhov chaw tsawg heev - ob peb kab tuaj yeem hloov cov nplooj ntawv ntawm cov ntawv hauv cov lus hais zoo li Java - thiab yog qhov kev siv ntau ntawm cov algorithm.
 
Ib qho haujlwm hauv K uas siv feem ntau ntawm LL1 parser generator raws li cov qauv sau ntawv:

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),"]";""]]}  

 Arthur embodied no lub tswv yim ntawm kev ua tau zoo heev nrog qhov tsawg kawg ntawm lub cev txav hauv KDB +, uas tau tshwm sim hauv 2003 (Kuv xav tias tam sim no paub meej tias tsab ntawv K nyob rau hauv lub npe los ntawm) thiab tsis muaj dab tsi ntau tshaj li tus neeg txhais lus ntawm plaub version ntawm K. Ib hom lus siv ntau dua tau ntxiv rau saum K K hu ua Q. Q kuj ntxiv kev txhawb nqa rau cov lus tshwj xeeb ntawm SQL - QSQL, thiab tus neeg txhais lus - kev txhawb nqa cov ntxhuav raws li cov ntaub ntawv hom, cov cuab yeej ua haujlwm nrog cov ntxhuav. hauv nco thiab hauv disk, thiab lwm yam.
 
Yog li los ntawm tus neeg siv qhov kev xav, KDB + tsuas yog tus txhais lus Q nrog kev txhawb nqa rau cov ntxhuav thiab SQL-zoo li LINQ-style kab lus los ntawm C#. Qhov no yog qhov sib txawv tseem ceeb tshaj plaws ntawm KDB + thiab lwm cov databases thiab nws qhov kev sib tw tseem ceeb, uas feem ntau tsis saib xyuas. Qhov no tsis yog cov ntaub ntawv + cov lus pab cuam tsis taus, tab sis muaj cov lus muaj txiaj ntsig zoo tshaj plaws + kev txhawb nqa rau cov haujlwm database. Qhov kev sib txawv no yuav ua lub luag haujlwm txiav txim siab sau tag nrho cov txiaj ntsig ntawm KDB +. Piv txwv li…
 

loj

Los ntawm cov qauv niaj hnub no, KDB + tsuas yog qhov loj me me xwb. Nws yog ib qho sub-megabyte executable cov ntaub ntawv thiab ib cov ntawv me me nrog qee qhov kev ua haujlwm. Nyob rau hauv kev muaj tiag - tsawg tshaj li ib megabyte, thiab rau qhov kev pab cuam tuam txhab uas muag them kaum tawm txhiab daus las ib xyoo rau ib tug processor ntawm lub server.

  • Qhov loj me no tso cai rau KDB + zoo siab rau txhua yam khoom siv - los ntawm Pi microcomputer rau servers nrog terabytes ntawm lub cim xeeb. Qhov no tsis cuam tshuam rau kev ua haujlwm hauv ib txoj kev; Ntxiv mus, Q pib tam sim ntawd, uas tso cai rau nws siv, ntawm lwm yam, ua lus sau.
  • Ntawm qhov loj me no, tus txhais lus Q haum tag nrho rau hauv lub processor cache, uas ua rau kom ua tiav cov haujlwm.
  • Nrog rau qhov loj ntawm cov ntaub ntawv executable, cov txheej txheem Q siv qhov chaw tsis txaus ntseeg hauv lub cim xeeb; koj tuaj yeem khiav ntau pua ntawm lawv. Ntxiv mus, yog tias tsim nyog, Q tuaj yeem ua haujlwm nrog kaum lossis ntau pua gigabytes ntawm lub cim xeeb hauv ib txheej txheem.

Versatility

Q yog qhov zoo rau ntau yam kev siv. Cov txheej txheem Q tuaj yeem ua raws li cov ntaub ntawv keeb kwm yav dhau los thiab muab cov ntaub ntawv ceev ceev rau terabytes. Piv txwv li, peb muaj ntau ntau cov ntaub ntawv keeb kwm, nyob rau hauv qee qhov ntawm ib hnub uas tsis muaj cov ntaub ntawv siv ntau tshaj 100 gigabytes. Txawm li cas los xij, raws li kev txwv tsim nyog, cov lus nug rau cov ntaub ntawv yuav ua tiav hauv kaum mus rau pua pua milliseconds. Feem ntau, peb muaj lub sijhawm thoob ntiaj teb rau cov neeg siv thov - 30 vib nas this - thiab nws ua haujlwm tsawg heev.
 
Q tuaj yeem yooj yim ua cov ntaub ntawv hauv nco. Cov ntaub ntawv tshiab tau ntxiv rau hauv-nco cov lus sai sai uas cov neeg siv thov yog qhov txwv. Cov ntaub ntawv hauv cov ntxhuav yog khaws cia hauv txhua kab, uas txhais tau tias txhua qhov haujlwm ntawm ib kem yuav siv lub processor cache ntawm lub peev xwm. Ntxiv rau qhov no, KX tau sim ua txhua yam haujlwm yooj yim xws li kev suav lej los ntawm vector cov lus qhia ntawm lub processor, ua kom lawv ceev. Q tseem tuaj yeem ua cov haujlwm uas tsis zoo rau cov ntaub ntawv - piv txwv li, cov ntaub ntawv streaming thiab suav hauv "lub sijhawm tiag tiag" (nrog ncua sijhawm ntawm kaum tawm milliseconds mus rau ob peb vib nas this nyob ntawm txoj haujlwm) ntau yam kev sib sau ua haujlwm rau cov cuab yeej nyiaj txiag rau lub sijhawm sib txawv intervals los yog tsim ib tug qauv ntawm kev cuam tshuam ntawm zoo meej muas rau lub lag luam thiab nqa tawm nws profileing yuav luag tam sim ntawd tom qab nws tiav. Hauv cov haujlwm zoo li no, feem ntau lub sijhawm ncua sijhawm tseem ceeb tsis yog Q, tab sis yuav tsum tau synchronize cov ntaub ntawv los ntawm ntau qhov chaw. Kev kub ceev yog ua tiav vim qhov tseeb tias cov ntaub ntawv thiab cov haujlwm ua haujlwm lawv nyob rau hauv ib txoj kev, thiab kev ua haujlwm raug txo kom ua tiav ntau QSQL kab lus thiab koom nrog, uas tsis tau txhais, tab sis raug tua los ntawm binary code.
 
Thaum kawg, koj tuaj yeem sau cov txheej txheem kev pabcuam hauv Q. Piv txwv li, Gateway cov txheej txheem uas cia li faib cov neeg siv thov rau cov ntaub ntawv tsim nyog thiab cov servers. Tus programmer muaj kev ywj pheej ua tiav los siv cov txheej txheem rau kev sib npaug, qhov tseem ceeb, kev ua txhaum cai, nkag mus rau cov cai, quotas thiab txhua yam uas nws lub siab xav tau. Qhov teeb meem tseem ceeb ntawm no yog tias koj yuav tau ua txhua yam no koj tus kheej.
 
Ua piv txwv, kuv yuav sau cov txheej txheem dab tsi uas peb muaj. Tag nrho cov ntawm lawv tau nquag siv thiab ua haujlwm ua ke, sib txuas ntau ntau cov ntaub ntawv sib txawv rau hauv ib qho, ua cov ntaub ntawv los ntawm ntau qhov chaw thiab pab ntau pua tus neeg siv thiab cov ntawv thov.

  • Connectors (feedhandler) rau cov ntaub ntawv qhov chaw. Cov txheej txheem no feem ntau siv cov tsev qiv ntawv sab nraud uas tau thauj mus rau Q. C interface hauv Q yog qhov yooj yim heev thiab tso cai rau koj los tsim cov haujlwm proxy tau yooj yim rau txhua lub tsev qiv ntawv C / C ++. Q yog ceev txaus los daws, piv txwv li, ua dej nyab ntawm FIX cov lus los ntawm tag nrho cov European Tshuag pauv ib txhij.
  • Cov ntaub ntawv distributors (tickerplant), uas yog ib qho kev sib txuas nruab nrab ntawm cov connectors thiab cov neeg siv khoom. Nyob rau tib lub sijhawm, lawv sau cov ntaub ntawv nkag mus rau qhov tshwj xeeb binary cav, muab kev ruaj khov rau cov neeg siv khoom tiv thaiv kev sib txuas lossis rov pib dua.
  • Hauv nco database (rdb). Cov databases no muab qhov ceev tshaj plaws nkag mus rau cov ntaub ntawv nyoos, tshiab los ntawm kev khaws cia hauv lub cim xeeb. Feem ntau, lawv khaws cov ntaub ntawv hauv cov ntxhuav thaum nruab hnub thiab rov pib dua thaum hmo ntuj.
  • Persist database (pdb). Cov databases no xyuas kom meej tias cov ntaub ntawv niaj hnub no tau muab khaws cia rau hauv cov ntaub ntawv keeb kwm. Raws li txoj cai, tsis zoo li rdb, lawv tsis khaws cov ntaub ntawv hauv lub cim xeeb, tab sis siv lub cache tshwj xeeb ntawm disk thaum nruab hnub thiab luam cov ntaub ntawv thaum ib tag hmo mus rau cov ntaub ntawv keeb kwm.
  • Keeb kwm databases (hdb). Cov ntaub ntawv no muab kev nkag mus rau cov ntaub ntawv rau hnub dhau los, hli thiab xyoo. Lawv qhov loj me (hauv hnub) tsuas yog txwv los ntawm qhov loj ntawm lub hard drive. Cov ntaub ntawv tuaj yeem nyob txhua qhov chaw, tshwj xeeb ntawm cov disks sib txawv kom nrawm nkag mus. Nws muaj peev xwm compress cov ntaub ntawv siv ob peb algorithms xaiv los ntawm. Cov qauv ntawm cov ntaub ntawv khaws cia zoo thiab yooj yim, cov ntaub ntawv khaws cia hauv kem hauv cov ntaub ntawv tsis tu ncua, yog li lawv tuaj yeem ua tiav, suav nrog los ntawm kev khiav haujlwm.
  • Databases nrog cov ntaub ntawv sib sau ua ke. Lawv khaws ntau yam sib sau ua ke, feem ntau nrog, pab pawg los ntawm cov cuab yeej npe thiab lub sijhawm luv. Hauv-nco databases hloov kho lawv lub xeev nrog txhua cov lus tuaj, thiab cov ntaub ntawv keeb kwm khaws cia cov ntaub ntawv ua ntej xam kom nrawm nkag mus rau cov ntaub ntawv keeb kwm.
  • Thaum kawg cov txheej txheem rooj vagkev pabcuam cov ntawv thov thiab cov neeg siv. Q tso cai rau koj los ua kom tiav kev ua tiav asynchronous ntawm cov lus xa tuaj, faib lawv hla cov ntaub ntawv, tshawb xyuas cov cai nkag, thiab lwm yam. Nco ntsoov tias cov lus tsis txwv thiab feem ntau tsis yog SQL kab lus, zoo li cov ntaub ntawv hauv lwm cov ntaub ntawv. Feem ntau, SQL qhia tau muab zais rau hauv qhov tshwj xeeb muaj nuj nqi thiab yog tsim los ntawm cov tsis tau thov los ntawm tus neeg siv - lub sij hawm hloov dua siab tshiab, lim, cov ntaub ntawv yog normalized (piv txwv li, tus nqi Tshuag yog sib npaug yog tias cov nyiaj faib tau them), thiab lwm yam.

Hom architecture rau ib hom ntaub ntawv:

KDB + database: los ntawm nyiaj txiag rau Formula 1

Ceev

Txawm hais tias Q yog ib hom lus txhais, nws kuj yog lus vector. Qhov no txhais tau hais tias ntau lub zog ua haujlwm, tshwj xeeb tshaj yog cov lej lej, siv cov lus sib cav ntawm txhua daim ntawv - tus lej, vectors, matrices, cov npe - thiab tus programmer yuav tsum siv qhov program ua haujlwm array. Hauv cov lus zoo li no, yog tias koj ntxiv ob lub vectors ntawm ib lab lub ntsiab lus, nws tsis muaj teeb meem uas cov lus txhais tau lawm; qhov ntxiv yuav ua los ntawm super-optimized binary muaj nuj nqi. Txij li thaum tsov ntxhuav feem ntawm lub sij hawm nyob rau hauv Q cov kev pab cuam yog siv rau kev khiav hauj lwm nrog cov ntxhuav uas siv cov vectorized yooj yim zog, cov zis yog ib tug dlej khiav hauj lwm ceev, cia peb ua ib tug loj npaum li cas ntawm cov ntaub ntawv txawm nyob rau hauv ib tug txheej txheem. Qhov no zoo ib yam li cov tsev qiv ntawv lej hauv Python - txawm tias Python nws tus kheej yog hom lus qeeb heev, nws muaj ntau lub tsev qiv ntawv zoo xws li numpy uas tso cai rau koj ua cov ntaub ntawv tus lej ntawm qhov ceev ntawm cov lus sau (los ntawm txoj kev, numpy yog ideologically ze rau Q. ).
 
Tsis tas li ntawd, KX tau siv txoj hauv kev zoo rau kev tsim cov rooj thiab ua kom zoo rau kev ua haujlwm nrog lawv. Ua ntej, ob peb hom kev ntsuas tau txais kev txhawb nqa, uas tau txais kev txhawb nqa los ntawm cov haujlwm ua haujlwm thiab tuaj yeem siv tsis yog rau cov kab lus xwb, tab sis kuj rau txhua qhov vectors - pab pawg, txheeb xyuas, tus cwj pwm tshwj xeeb thiab pab pawg tshwj xeeb rau cov ntaub ntawv keeb kwm. Qhov ntsuas tau siv yooj yim thiab raug hloov kho thaum ntxiv cov ntsiab lus rau kab / vector. Indexs tuaj yeem sib npaug zoo siv rau cov kab lus hauv lub cim xeeb thiab hauv disk. Thaum ua tiav cov lus nug QSQL, indexes siv tau yog tias ua tau. Qhov thib ob, ua haujlwm nrog cov ntaub ntawv keeb kwm yog ua tiav los ntawm cov txheej txheem rau kev nthuav tawm OS cov ntaub ntawv (nco daim ntawv qhia). Cov ntxhuav loj tsis tau thauj mus rau hauv lub cim xeeb; hloov pauv, cov kab tsim nyog tau kos ncaj qha rau hauv lub cim xeeb thiab tsuas yog ib feem ntawm lawv tau thauj khoom tiag tiag (indexes kuj pab ntawm no) uas xav tau. Nws ua rau tsis muaj qhov sib txawv rau tus programmer seb cov ntaub ntawv puas nyob hauv nco lossis tsis; lub tshuab ua haujlwm nrog mmap tau muab zais tag nrho hauv qhov tob ntawm Q.
 
KDB + tsis yog cov ntaub ntawv sib raug zoo; cov ntxhuav tuaj yeem muaj cov ntaub ntawv tsis txaus ntseeg, thaum qhov kev txiav txim ntawm kab hauv lub rooj tsis hloov thaum cov ntsiab lus tshiab ntxiv thiab tuaj yeem siv tau thaum sau cov lus nug. Cov yam ntxwv no yog qhov xav tau sai sai rau kev ua hauj lwm nrog lub sij hawm series (cov ntaub ntawv los ntawm kev sib pauv, telemetry, kev tshwm sim cav), vim hais tias yog cov ntaub ntawv raug txheeb raws sij hawm, ces tus neeg siv tsis tas yuav siv tej SQL tricks mus nrhiav thawj los yog xeem kab los yog N. kab hauv lub rooj, txiav txim siab seb kab twg ua raws Nth kab, thiab lwm yam. Cov rooj sib txuas tau yooj yim dua ntxiv, piv txwv li, nrhiav cov lus tshaj tawm kawg rau 16000 VOD.L (Vodafone) kev lag luam hauv ib lub rooj ntawm 500 lab lub ntsiab lus yuav siv sijhawm li ob ntawm disk thiab kaum milliseconds hauv nco.
 
Ib qho piv txwv ntawm ib lub sij hawm koom - cov lus tsocai yog mapped rau lub cim xeeb, yog li tsis tas yuav tsum tau qhia VOD.L nyob rau hauv qhov twg, qhov Performance index ntawm sym kem thiab qhov tseeb hais tias cov ntaub ntawv yog txheeb los ntawm lub sij hawm implicitly siv. Yuav luag tag nrho cov koom nrog hauv Q yog cov haujlwm tsis tu ncua, tsis yog ib feem ntawm cov lus xaiv:

1. aj[`sym`time;select from trade where date=2019.03.26, sym=`VOD.L;select from quote where date=2019.03.26]  

Thaum kawg, nws tsim nyog sau cia tias cov kws ua haujlwm ntawm KX, pib nrog Arthur Whitney nws tus kheej, tau xav txog qhov ua tau zoo thiab mus rau qhov ntev kom tau txais txiaj ntsig zoo tshaj plaws ntawm Q tus qauv nta thiab txhim kho cov qauv siv ntau tshaj plaws.
 

Qhov no

KDB + yog nrov ntawm cov lag luam feem ntau vim nws qhov tshwj xeeb versatility - nws ua hauj lwm sib npaug zoo li cov ntaub ntawv hauv nco, ua cov ntaub ntawv khaws cia terabytes ntawm cov ntaub ntawv keeb kwm, thiab ua lub platform rau cov ntaub ntawv txheeb xyuas. Vim qhov tseeb tias kev ua cov ntaub ntawv tshwm sim ncaj qha hauv cov ntaub ntawv, kev ua haujlwm siab ceev thiab cov peev txheej txuag tau tiav. Ib hom lus programming tag nrho ua ke nrog cov haujlwm database tso cai rau koj los siv tag nrho pawg ntawm cov txheej txheem tsim nyog ntawm ib lub platform - los ntawm kev txais cov ntaub ntawv mus rau kev ua cov neeg siv thov.
 

Yog xav paub ntxiv,

Disadvantages

Qhov tsis zoo tseem ceeb ntawm KDB + / Q yog qhov pib nkag siab. Cov lus muaj cov lus qhia txawv txawv, qee qhov kev ua haujlwm hnyav dhau (tus nqi, piv txwv li, muaj txog 11 tus neeg siv). Qhov tseem ceeb tshaj plaws, nws yuav tsum muaj txoj hauv kev sib txawv ntawm kev sau ntawv. Hauv cov lus vector, koj yuav tsum nco ntsoov xav txog kev hloov pauv array, siv txhua lub voj voog los ntawm ntau qhov sib txawv ntawm daim ntawv qhia / txo cov haujlwm (uas yog hu ua adverbs hauv Q), thiab tsis txhob sim txuag nyiaj los ntawm kev hloov vector ua haujlwm nrog atomic sawv daws yuav. Piv txwv li, txhawm rau nrhiav qhov ntsuas ntawm Nth tshwm sim ntawm ib qho khoom hauv ib qho array, koj yuav tsum sau:

1. (where element=vector)[N]  

Txawm hais tias qhov no zoo li tsis muaj txiaj ntsig zoo los ntawm C / Java cov qauv (= tsim cov boolean vector, qhov twg rov qab qhov tseeb indexes ntawm cov ntsiab lus hauv nws). Tab sis qhov kev sau no ua rau lub ntsiab lus ntawm cov lus qhia meej dua thiab koj siv cov vector khiav ceev es tsis txhob qeeb atomic ones. Lub tswv yim sib txawv ntawm cov lus vector thiab lwm tus yog piv rau qhov sib txawv ntawm qhov tseem ceeb thiab kev ua haujlwm zoo rau kev ua haujlwm, thiab koj yuav tsum tau npaj rau qhov no.
 
Qee cov neeg siv kuj tsis txaus siab rau QSQL. Lub ntsiab lus yog tias nws tsuas zoo li SQL tiag. Hauv kev muaj tiag, nws tsuas yog tus txhais lus ntawm SQL-zoo li kab lus uas tsis txhawb cov lus nug optimization. Tus neeg siv yuav tsum sau cov lus nug zoo rau nws tus kheej, thiab hauv Q, uas ntau yam tsis tau npaj rau. Ntawm qhov tod tes, tau kawg, koj tuaj yeem sau cov lus nug zoo rau koj tus kheej, tsis yog cia siab rau lub thawv dub-kho kom zoo.
 
Raws li qhov ntxiv, phau ntawv ntawm Q - Q Rau Mortals muaj pub dawb ntawm tuam txhab website, kuj tseem muaj ntau lwm yam khoom siv tau khaws cia rau ntawd.
 
Lwm qhov tsis zoo yog tus nqi ntawm daim ntawv tso cai. Qhov ntawd yog kaum txhiab daus las ib xyoos ib zaug CPU. Tsuas yog cov tuam txhab loj tuaj yeem them taus cov nqi no. Tsis ntev los no, KX tau ua nws txoj cai tso cai hloov pauv tau yooj yim dua thiab muab lub sijhawm los them rau lub sijhawm siv lossis xauj KDB+ hauv Google thiab Amazon huab. KX kuj muaj rau download dawb version rau cov hom phiaj tsis yog lag luam (32-ntsis version lossis 64-ntsis ntawm kev thov).
 

Cov neeg sib tw

Muaj ob peb qhov tshwj xeeb databases tsim los ntawm cov ntsiab cai zoo sib xws - columnar, hauv-nco, tsom rau cov ntaub ntawv loj heev. Qhov teeb meem yog tias cov no yog cov ntaub ntawv tshwj xeeb. Ib qho piv txwv zoo yog Clickhouse. Cov ntaub ntawv no muaj lub hauv paus ntsiab lus zoo sib xws rau KDB + rau khaws cov ntaub ntawv ntawm disk thiab tsim qhov ntsuas; nws ua qee cov lus nug sai dua KDB +, txawm tias tsis loj heev. Tab sis txawm tias yog ib lub database, Clickhouse yog tshwj xeeb tshaj li KDB + - web analytics vs arbitrary time series (qhov txawv no tseem ceeb heev - vim hais tias ntawm nws, piv txwv li, nyob rau hauv Clickhouse nws tsis muaj peev xwm siv cov kev txiav txim ntawm cov ntaub ntawv). Tab sis, qhov tseem ceeb tshaj plaws, Clickhouse tsis muaj ntau yam ntawm KDB +, ib hom lus uas yuav tso cai rau kev ua cov ntaub ntawv ncaj qha hauv cov ntaub ntawv, tsis yog thauj nws ua ntej rau hauv ib daim ntawv thov cais, tsim cov SQL cov lus hais tsis raug, siv cov haujlwm tsis txaus ntseeg hauv cov lus nug, tsim cov txheej txheem. tsis cuam tshuam rau kev ua tiav ntawm keeb kwm database functions . Yog li ntawd, nws yog ib qho nyuaj rau kev sib piv KDB + nrog rau lwm cov databases; lawv tej zaum yuav zoo dua nyob rau hauv tej yam kev siv los yog yooj yim zoo dua thaum nws los txog rau classic database paub tab, tab sis kuv tsis paub txog lwm yam sib npaug zos thiab ntau yam cuab yeej rau kev ua cov ntaub ntawv ib ntus.
 

Python kev koom ua ke

Txhawm rau ua kom KDB + yooj yim siv rau cov neeg tsis paub txog cov thev naus laus zis, KX tsim cov tsev qiv ntawv los koom ua ke nruj nrog Python hauv ib txheej txheem. Koj tuaj yeem hu rau ib qho kev ua haujlwm Python los ntawm Q, lossis rov ua dua - hu rau Q muaj nuj nqi los ntawm Python (tshwj xeeb, QSQL kab lus). Cov tsev qiv ntawv hloov dua siab tshiab, yog tias tsim nyog (tsis yog txhua lub sijhawm rau kev ua haujlwm), cov ntaub ntawv los ntawm hom lus ntawm ib hom lus mus rau lwm hom. Yog li ntawd, Q thiab Python nyob rau hauv xws li kev sib raug zoo uas cov ciam teb ntawm lawv yog qhov muag plooj. Raws li qhov tshwm sim, tus programmer, ntawm ib sab, muaj kev nkag mus rau ntau lub tsev qiv ntawv muaj txiaj ntsig Python, ntawm qhov tod tes, nws tau txais lub hauv paus nrawm rau kev ua haujlwm nrog cov ntaub ntawv loj sib xyaw rau hauv Python, uas yog qhov tshwj xeeb tshaj yog rau cov neeg koom nrog hauv kev kawm tshuab. los yog ua qauv.
 
Ua haujlwm nrog Q hauv 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')  

ua tim khawv

Qhov chaw ntawm lub tuam txhab - https://kx.com/
Website rau developers - https://code.kx.com/v2/
Phau Ntawv Q For Mortals (ua lus Askiv) - https://code.kx.com/q4m3/
Cov lus ntawm KDB +/Q daim ntawv thov los ntawm kx cov neeg ua haujlwm - https://code.kx.com/v2/wp/

Tau qhov twg los: www.hab.com

Ntxiv ib saib