Keydka KDB+: laga bilaabo maaliyadda ilaa Formula 1

KDB+, wax soo saarka shirkadda KX waa xog-ururin si weyn loogu yaqaan goobo cidhiidhi ah, aad u dheereeya, xogta tiirar ee loogu talagalay kaydinta taxanaha wakhtiga iyo xisaabinta gorfaynta iyaga ku salaysan. Markii hore, waxay ahayd (oo waa) mid aad caan u ah warshadaha maaliyadeed - dhammaan bangiyada maalgashiga ee 10 ee ugu sarreeya iyo kuwo badan oo caan ah oo caan ah oo hedge, sarrifka iyo ururrada kale ayaa isticmaala. Dhawaan, KX waxay go'aansatay inay ballaariso saldhigga macaamiisheeda oo hadda ay bixiso xalal meelo kale oo ay jiraan tiro badan oo xog ah, oo ay abaabulaan waqti ama haddii kale - telecom, bioinformatics, wax soo saarka, iwm. Waxay sidoo kale noqdeen lammaane kooxda Aston Martin Red Bull Racing ee Formula 1, halkaas oo ay ka caawiyaan ururinta iyo socodsiinta xogta dareemayaasha baabuurta iyo falanqaynta tijaabooyinka tunnel-ka dabaysha. Maqaalkan, waxaan rabaa inaan kuu sheego sifooyinka KDB + ka dhigaya mid aad u wanaagsan, sababta shirkaduhu ay diyaar u yihiin inay lacag badan ku bixiyaan, iyo ugu dambeyntii, sababta aysan run ahaantii u ahayn database.
 
Keydka KDB+: laga bilaabo maaliyadda ilaa Formula 1
 
Maqaalkan waxaan isku dayi doonaa inaan kuu sheego guud ahaan waxa KDB + yahay, awoodaha iyo xaddidaadaha ay leedahay, iyo waxa faa'iido u leh shirkadaha doonaya inay farsameeyaan xog badan. Ma geli doono tafaasiisha hirgelinta KDB+ ama tafaasiisha luuqadeeda barnaamijka Q. Labadan mawduuc waa kuwo aad u ballaadhan oo mudan maqaallo gaar ah. Macluumaad badan oo ku saabsan mawduucyadan ayaa laga heli karaa code.kx.com, oo uu ku jiro buug ku saabsan Q - Q For Mortals (fiiri xiriirka hoose).

Erayada qaar

  • Xogta-xusuusta Keydka kaydiya xogta RAM si dhaqso loo galo. Faa'iidooyinka xogta noocan oo kale ah waa caddahay, laakiin faa'iido darrooyinka ayaa ah suurtagalnimada luminta xogta iyo baahida loo qabo in kayd badan oo xusuusta ah lagu hayo.
  • Xogta tilmaanta. Xog ururin halka xogta lagu kaydiyo tiirba tiir halkii lagu qori lahaa diiwaan. Faa'iidada ugu weyn ee xogtan oo kale ah waa in xogta hal tiir lagu kaydiyo diskka iyo xusuusta, taas oo si weyn u dedejisa helitaankeeda. Looma baahna in la raro tiirar aan loo isticmaalin weydiinta. Khasaaraha ugu weyni waa in ay adagtahay in wax laga beddelo oo la tirtiro diiwaannada.
  • Taxanaha wakhtiga. Xog leh tiir taariikheed ama wakhti Caadi ahaan, waqti goynta ayaa muhiim u ah xogtan oo kale, si aad si fudud u go'aamin karto diiwaanka ka horreeya ama raacaya kan hadda jira, ama aad ku dabaqdo hawlo natiijooyinkoodu ku xidhan yihiin siday u kala horreeyaan diiwaannada. Xogta qadiimiga ah waxaa lagu dhisay mabda'a gabi ahaanba ka duwan - oo ka dhigan ururinta diiwaanada sida go'an, halkaasoo nidaamka diiwaanadu yahay, mabda'a, aan la qeexin.
  • Vector. Marka la eego macnaha guud ee KDB+, tani waa liiska curiyeyaasha isla nooca atomiga ah, tusaale ahaan, tirooyinka. Si kale haddii loo dhigo, curiyayaasha kala duwan. Arraysyada, oo ka duwan liisaska, ayaa loo kaydin karaa si kooban waxaana loo habayn karaa iyadoo la isticmaalayo habraaca farsamaynta vector.

 

Taariikhda Taariikhda

KX waxaa la aasaasay 1993-kii Arthur Whitney, oo hore uga soo shaqeeyay Morgan Stanley Bank luqadda A+, ku guulaysta APL - luqad asal ah oo hal mar caan ka ah adduunka maaliyadeed. Dabcan, gudaha KX, Arthur wuxuu ku sii waday isla ruuxa oo abuuray luqadda vector-functional K, oo uu hagayo fikradaha minimalism-ka xagjirka ah. Barnaamijyada K waxay u egyihiin xarakayn iyo jilayaal gaar ah, macnaha calamadaha iyo shaqadoodu waxay ku xidhan tahay macnaha guud, hawlgal kastaa wuxuu xambaarsan yahay macne aad uga badan marka loo eego luuqadaha barnaamijyada caadiga ah. Taas awgeed, barnaamijka K waxa uu qaadanayaa boos yar-qad yar ayaa bedeli kara bogag qoraal ah oo ku qoran luuqad hadal ah sida Java-waana mid aad u xoog badan oo hirgelinta algorithm-ka ah.
 
Shaqo ku jirta K oo fulisa inta badan koronto-dhaliye LL1 sida ku cad naxwaha la bixiyay:

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 wuxuu soo bandhigay falsafadan waxtarka badan ee ugu yar ee dhaqdhaqaaqa jirka ee KDB +, kaas oo soo muuqday 2003 (waxaan u maleynayaa inay hadda caddahay halka xarafka K ee magaca uu ka yimid) mana aha wax ka badan turjubaan nuqulka afaraad ee K Luuqad ka badan isticmaale-saaxiibtinimo ayaa lagu daray dusha sare ee K K oo loo yaqaan Q.Q waxa kale oo lagu daray taageerada lahjad gaar ah oo SQL - QSQL, iyo turjubaanka - taageerada miisaska sida xogta nidaamka, qalabka lagu shaqeeyo miisaska xusuusta iyo diskka, iwm.
 
Markaa marka laga eego dhinaca isticmaalaha, KDB+ si fudud waa tarjumaan luqadda Q ah oo taageero u ah miisaska iyo tibaaxaha qaabka LINQ ee SQL u eg ee C #. Tani waa farqiga ugu muhiimsan ee u dhexeeya KDB + iyo xog ururinta kale iyo faa'iidada ugu weyn ee tartanka, taas oo inta badan la iska indhatiro. Kani maaha xog-ururin + luuqad kaalmeed oo naafada ah, laakiin waa luuqad barnaamijeed awood buuxda leh + taageero lagu dhisay hawlaha kaydka Kala soocidaani waxay door muhiim ah ka ciyaari doontaa liiska dhammaan faa'iidooyinka KDB+. Tusaale ahaan…
 

size

Heerarka casriga ah, KDB+ waa si fudud cabbir ahaan. Xaqiiqdii waa hal fayl-hoosaad megabyte ah oo la fulin karo iyo hal fayl yar oo qoraal ah oo leh qaar ka mid ah hawlaha nidaamka. Xaqiiqda - in ka yar hal megabyte, iyo barnaamijkan shirkaduhu waxay bixiyaan tobanaan kun oo doolar sannadkii hal processor oo server ah.

  • Cabbirkani wuxuu u oggolaanayaa KDB+ inuu ku fiicnaado qalab kasta - laga bilaabo microcomputer-ka Pi ilaa adeegayaasha terabyte ee xusuusta leh. Tani sinaba uma saameynayso shaqada, sidoo kale, Q si degdeg ah ayuu u bilaabmaa, kaas oo u oggolaanaya in loo isticmaalo, waxyaabo kale, sida luqad qoraal ah.
  • Xajmigan, turjubaanka Q wuxuu ku haboon yahay gebi ahaanba kaydiyaha processor-ka, kaas oo dedejiya fulinta barnaamijka.
  • Cabbirkan faylka la fulin karo, habka Q wuxuu qaadanayaa meel aan dayac lahayn oo xusuusta ah; waxaad ku wadi kartaa boqolaal iyaga ka mid ah. Waxaa intaa dheer, haddii loo baahdo, Q waxay ku shaqayn kartaa tobanaan ama boqollaal gigabytes oo xusuusta ah hal nidaam.

Kala duwanaansho

Q aad bay ugu fiican tahay codsiyo kala duwan. Habka Q wuxuu u dhaqmi karaa sidii xog ururin taariikhi ah wuxuuna si degdeg ah u heli karaa terabyte-yada macluumaadka. Tusaale ahaan, waxaan haynaa daraasiin kayd taariikheed ah, kuwaas oo qaarkood hal maalin oo xog ah oo aan la soo koobin qaadanaysa in ka badan 100 gigabytes. Si kastaba ha ahaatee, marka la eego xaddidaadyo macquul ah, weydiinta xogta macluumaadka waxaa lagu dhameyn doonaa tobanaan ilaa boqolaal millise seconds. Guud ahaan, waxaanu haysanaa wakhti caalami ah oo codsiyada isticmaalaha - 30 ilbiriqsi - waxayna u shaqeysaa si dhif ah.
 
Q waxa ay sidoo kale si fudud u noqon kartaa kaydka kaydka xusuusta. Xog cusub ayaa lagu daraa miisaska xusuusta gudaha si dhakhso leh oo codsiyada isticmaalaha ay yihiin qodobka xaddidaya. Xogta ku jirta shaxanka waxa lagu kaydiyaa tiirar, taas oo macnaheedu yahay in hawlgal kasta oo tiir laga sameeyo uu isticmaali doono kaydiyaha processor-ka oo dhan. Intaa waxaa dheer, KX waxay isku dayday inay fuliso dhammaan hawlaha aasaasiga ah sida xisaabinta iyada oo loo marayo tilmaamaha vector ee processor-ka, taasoo kordhinaysa xawaarahooda. Q waxa kale oo uu qaban karaa hawlo aan caadi u ahayn xog-ururinta - tusaale ahaan, socodsiinta xogta baahinta iyo xisaabinta "waqtiga dhabta ah" (iyada oo dib u dhac ku yimi tobanaan ilbiriqsi ilaa dhowr ilbiriqsi iyadoo ku xidhan hawsha) dura ama dhis nooc ka mid ah saamaynta wax kala iibsiga saxda ah ee suuqa iyo fulinta ay profile ku dhawaad ​​isla markiiba ka dib markii ay dhamaystirto. Hawlaha noocan oo kale ah, inta badan dib u dhaca wakhtiga ugu weyn maaha Q, laakiin baahida loo qabo in xogta laga helo ilo kala duwan la mideeyo. Xawaaraha sare waxaa lagu gaaraa iyadoo ay ugu wacan tahay in xogta iyo hawlaha ka baaraandegaya ay ku jiraan hal hab, farsamayntu waxa ay hoos u dhigtaa fulinta dhawr tibaaxood oo QSQL ah oo ku biira, kuwaas oo aan la fasirin, laakiin lagu fuliyo code binary.
 
Ugu dambeyntii, waxaad ku qori kartaa habraac kasta oo adeeg Q. Tusaale ahaan, habka Gateway si toos ah ugu qaybiya codsiyada isticmaalaha kaydadka lagama maarmaanka ah iyo adeegayaasha. Barnaamij-sameeyaha waxa uu leeyahay xorriyad buuxda oo uu ku hirgeliyo algorithm kaste ee isu-dheellitirka, kala-horaynta, u-dulqaadashada khaladka, xuquuqaha gelitaanka, kootada iyo asal ahaan wax kasta oo qalbigiisu doonayo. Dhibaatada ugu weyn ee halkan ku jirta ayaa ah inaad waxaas oo dhan aad adigu iskaa u fuliso.
 
Tusaale ahaan, waxaan tixi doonaa noocyada hababka aan haysano. Dhammaantood si firfircoon ayaa loo isticmaalaa oo way wada shaqeeyaan, iyagoo isku daraya daraasiin xog-ururin ah oo kala duwan oo mid ah, ka baaraandegidda xogta ilo badan iyo u adeega boqolaal isticmaalayaasha iyo codsiyada.

  • Xidhiidhiyayaasha (feedhandler) ilaha xogta. Nidaamyadani waxay caadi ahaan adeegsadaan maktabado dibadda ah oo lagu shubay Q. Interface-ka C ee Q waa mid aad u fudud wuxuuna kuu ogolaanayaa inaad si fudud u abuurto shaqooyinka wakiil ka ah maktabad kasta oo C/C++ ah. Q si degdeg ah ugu filan in uu wax ka qabto, tusaale ahaan, habaynta daadka FIX fariimaha ka imanaya sariflayaasha Yurub oo dhan isku mar.
  • Qaybiyeyaasha xogta (tickerplant), kaas oo u adeega sidii isku xirka dhexe ee u dhexeeya xirayaasha iyo macaamiisha. Isla mar ahaantaana, waxay u qoraan xogta soo socota log-ga gaarka ah ee binary, siinta adkeysi macaamiisha ka dhanka ah luminta xiriirka ama dib u bilaabashada.
  • In-memory database (rdb). Xog-ururintani waxa ay bixisa sida ugu dhaqsaha badan ee suurtogalka ah ee suurtogalka ah ee lagu heli karo xog cayriin ah, oo cusub iyada oo lagu kaydinayo xusuusta. Caadi ahaan, waxay ku ururiyaan xogta miisaska maalintii oo dib u dejiyaan habeenkii.
  • Xogta joogtada ah (pdb). Xog-ururintani waxay xaqiijiyaan in xogta maanta lagu kaydiyo kaydka xogta taariikhiga ah. Sida caadiga ah, si ka duwan rdb, ma kaydiyaan xogta xusuusta, laakiin waxay isticmaalaan kayd gaar ah oo disk ah inta lagu jiro maalinta oo nuqul ka samee xogta saqda dhexe ilaa kaydka taariikhiga ah.
  • Xogta taariikhiga ah (hdb). Xog-ururintani waxay siisaa helitaanka xogta maalmihii hore, bilaha iyo sannadaha. Xajmigoodu (maalmo gudaheed) waxa ku xaddidan oo keliya cabbirka darawallada adag. Xogtu waxay ku jiri kartaa meel kasta, gaar ahaan saxanadaha kala duwan si loo dedejiyo gelitaanka. Waa suurtagal in la isku cadaadiyo xogta iyadoo la adeegsanayo dhowr algorithms si aad u kala doorato. Qaab dhismeedka kaydinta xogta si fiican ayaa loo diiwaangeliyay waana sahlan tahay, xogta waxaa lagu kaydiyaa tiir by tiir ee faylalka caadiga ah, si loo habeeyo, oo ay ku jiraan habka hawlgalka.
  • Databases leh macluumaad la isku daray. Waxay kaydiyaan isku-darka kala duwan, sida caadiga ah, oo lagu kooxeeyo magaca qalabka iyo muddada u dhaxaysa. Kaydka xusuusta gudaha ku jiraa waxa ay ku cusboonaysiiyaan gobolkooda fariin kasta oo soo socota, iyo kaydka xogta taariikhiga ahi waxa ay kaydiyaan xog hore loo xisaabiyay si loo dedejiyo helitaanka xogta taariikhiga ah.
  • Ugu dambeyntii hababka albaabkaadeega codsiyada iyo isticmaalayaasha. Q waxa ay ku ogolanaysaa in aad fuliso habayn dhamaystiran fariimaha soo socda, qaybinta xogta macluumaadka, hubinta xuquuqaha gelitaanka, iwm. Ogsoonow in farriimaha aysan xaddidnayn oo inta badan aysan ahayn tibaaxaha SQL, sida kiiska kaydinta kale. Inta badan, muujinta SQL waxay ku qarsoon tahay hawl gaar ah waxaana lagu dhisay iyada oo ku saleysan cabbirada uu codsaday isticmaaluhu - waqtiga waa la beddelaa, la sifeeyaa, xogta waa la caadiyeeyaa (tusaale ahaan, qiimaha saamiyada waa la siman yahay haddii saami qaybsiga la bixiyo), iwm.

Qaab dhismeedka caadiga ah ee hal nooc oo xog ah:

Keydka KDB+: laga bilaabo maaliyadda ilaa Formula 1

Xawaaraha

Inkasta oo Q uu yahay luqad la turjumay, sidoo kale waa luqadda vector. Tani waxay ka dhigan tahay in hawlo badan oo la dhisay, gaar ahaan kuwa xisaabaadka, ay qaataan doodo nooc kasta ah - tirooyinka, vectors, matrices, lists - iyo barnaamij-sameeyaha ayaa laga filayaa inuu barnaamijka u hirgeliyo hawlo habayn ah. Luqaddan oo kale, haddii aad ku darto laba qaybood oo hal milyan ah, waxba maaha in luqadda la tarjumo; ku-darka waxa fulin doona shaqo-binaari ah oo heersare ah. Maaddaama qaybta libaax ee wakhtiga barnaamijyada Q ay ku qaataan hawlgallada miisaska isticmaala hawlahan aasaasiga ah ee vectorized, wax-soo-saarku waa xawaare hawleed oo aad u hufan, taas oo noo ogolaanaysa inaan ka baaraandegno qadar aad u badan oo xog ah xitaa hal hab. Tani waxay la mid tahay maktabadaha xisaabta ee Python - inkasta oo Python lafteedu tahay luqad aad u gaabis ah, waxay leedahay maktabado badan oo aad u fiican sida nambarada kuwaas oo kuu oggolaanaya inaad ku socodsiiso xogta nambarada xawaaraha luqadda la soo ururiyey (sida, numpy waxay ku dhowdahay fikrad ahaan Q). ).
 
Intaa waxaa dheer, KX waxay qaadatay hab aad u taxaddar leh si ay u naqshadeeyaan miisaska iyo hagaajinta shaqada iyaga. Marka hore, dhowr nooc oo indexes ah ayaa la taageerayaa, kuwaas oo ay taageerayaan hawlaha la dhisay oo lagu dabaqi karo ma aha oo kaliya tiirarka miiska, laakiin sidoo kale vector kasta - kooxaynta, kala-soocidda, sifada gaarka ah iyo kooxaynta gaarka ah ee kaydinta taariikhiga ah. Tusmada si fudud ayaa loo dabaqayaa oo si toos ah ayaa loo hagaajiyaa marka lagu daro curiyeyaasha tiirka/vector. Tusmooyinka si isku mid ah ayaa si guul leh loogu dabaqi karaa tiirarka miiska labadaba xusuusta iyo saxankaba. Marka la fulinayo weydiinta QSQL, tusmooyinka si toos ah ayaa loo isticmaalaa haddii ay suurtagal tahay. Marka labaad, shaqada xogta taariikhiga ah waxaa lagu sameeyaa habka lagu soo bandhigayo faylasha OS (khariidad xusuusta). Miisaska waaweyn waligood laguma raro xusuusta; Taa baddalkeeda, tiirarka lagama maarmaanka ah ayaa si toos ah loogu dhejiyay xusuusta oo kaliya qayb iyaga ka mid ah ayaa dhab ahaantii lagu shubay (tusmooyinku waxay sidoo kale halkan ku caawinayaan) kuwaas oo loo baahan yahay. Wax farqi ah uma samaynayso barnaamijka in xogtu ku jirto xusuusta iyo in kale; habka loogu shaqaynayo mmap waxa uu si buuxda ugu qarsoon yahay gunta Q.
 
KDB+ ma aha xog-ururin xidhiidhsan; miisaska waxa ku jiri kara xog aan sabab lahayn, halka habka safafka shaxda aanu isbeddelin marka curiye cusub lagu daro oo waa in la isticmaalo marka la qorayo su'aalaha. Habkan ayaa si degdeg ah loogu baahan yahay si uu ula shaqeeyo taxanaha wakhtiga (xogta isweydaarsiga, telemetry, diiwaanka dhacdooyinka), sababtoo ah haddii xogta lagu kala saaro waqti, markaa isticmaaluhu uma baahna inuu isticmaalo wax khiyaano SQL ah si uu u helo safka koowaad ama ugu dambeeya ama N safafka shaxda, go'aami xariiqa raacaya xariiqda Nth, iwm. Isku-darka miiska ayaa la fududeeyay xitaa, tusaale ahaan, helida oraahda ugu dambeysa ee 16000 VOD.L (Vodafone) macaamil ganacsi ee miis ka kooban 500 milyan oo walxood waxay qaadataa qiyaastii hal ilbidhiqsi diskka iyo tobanaan millise seconds xusuusta.
 
Tusaalaha ku biirista wakhtiga - miiska xigashada waxaa lagu sawiray xusuusta, markaa looma baahna in lagu qeexo VOD.L meesha, tusmada tiirarka summadda iyo xaqiiqda ah in xogta lagu kala soocaa wakhtiga si aan toos ahayn loo isticmaalo. Ku dhawaad ​​​​dhammaan ku biirista Q waa hawlo joogto ah, oo aan qayb ka ahayn tibaaxaha la xusho:

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

Ugu dambeyntii, waxaa xusid mudan in injineerada KX, oo ka bilaabaya Arthur Whitney laftiisa, ay runtii aad ugu mashquulsan yihiin hufnaanta oo ay u maraan dadaal dheeri ah si ay uga faa'iideystaan ​​astaamaha caadiga ah ee Q oo ay u wanaajiyaan qaababka isticmaalka ugu badan.
 

Natiijada

KDB+ waxay caan ku tahay ganacsiyada ugu horrayn sababtuna waa kala duwanaanshaheeda gaarka ah - waxay si isku mid ah ugu adeegtaa kaydka kaydinta xusuusta, sida kaydka kaydinta terabyte ee xogta taariikhiga ah, iyo madal lagu falanqeeyo xogta. Sababtoo ah xaqiiqda ah in habaynta xogta ay si toos ah ugu dhacdo kaydka, xawaaraha sare ee shaqada iyo kaydinta kheyraadka ayaa lagu gaaraa. Luqadda barnaamijka oo dhammaystiran oo lagu dhex daray hawlaha kaydka xogta ayaa kuu oggolaanaysa inaad ku dhaqangeliso dhammaan raxannada geeddi-socodyada lagama maarmaanka ah ee hal madal - laga bilaabo helitaanka xogta ilaa habaynta codsiyada isticmaalaha.
 

Wixii macluumaad dheeraad ah,

Dhibaatooyin

Khasaaraha weyn ee KDB+/Q waa heerka gelitaanka sare. Luqadda waxay leedahay eray-bixin la yaab leh, hawlaha qaarkood si aad ah ayaa loo rartay (qiimaha, tusaale ahaan, waxay leedahay ilaa 11 kiis oo la isticmaalo). Tan ugu muhiimsan, waxay u baahan tahay hab aad u kala duwan oo loogu talagalay barnaamijyada qorista. Luqadda vector-ka, waa inaad had iyo jeer ka fikirtaa qaab-is-beddelka habaysan, oo aad ku dhaqangeliso dhammaan wareegyada adigoo isticmaalaya noocyo kala duwan oo khariidad ah/yaraynta hawlaha (kuwaas oo loo yaqaan adverbs in Q), oo waligaa ha isku dayin inaad lacag kaydsato adigoo ku beddelaya hawlaha vector-ka kuwa atomiiga ah. Tusaale ahaan, si aad u heshid tusaha dhacdada Nth ee curiyaha shaxda, waa inaad qortaa:

1. (where element=vector)[N]  

in kasta oo ay tani u muuqato mid aan waxtar lahayn marka loo eego halbeegyada C/Java Laakiin tilmaantan ayaa ka dhigaysa macnaha odhaahda mid aad u cad oo waxaad isticmaashaa hawlgallada vector-ka degdega ah halkii aad ka isticmaali lahayd kuwa atomiga gaabis ah. Farqiga fikradeed ee u dhexeeya luqadda vector-ka iyo kuwa kale waxay la mid tahay farqiga u dhexeeya hababka lama huraanka ah iyo kuwa shaqeynaya ee barnaamijka, waxaadna u baahan tahay inaad tan u diyaargarowdo.
 
Isticmaalayaasha qaarkood ayaa sidoo kale aan ku faraxsanayn QSQL. Xaqiiqdu waxay tahay in ay u egtahay kaliya SQL dhabta ah. Xaqiiqda, waa kaliya turjumaan tibaaxaha SQL u eg oo aan taageersanayn wanaajinta weydiinta. Isticmaaluhu waa inuu ku qoraa su'aalaha ugu fiican laftiisa, iyo Q, kuwaas oo qaar badani aanay diyaar u ahayn. Dhanka kale, dabcan, waxaad had iyo jeer qori kartaa su'aalaha ugu fiican naftaada, halkii aad ku tiirsanaan lahayd hagaajinta sanduuqa madow.
 
Intaa waxaa dheer, buug ku saabsan Q-Q For Mortals ayaa laga heli karaa bilaash website-ka shirkadda, waxa kale oo jira waxyaabo kale oo badan oo faa'iido leh oo halkaas lagu ururiyey.
 
Khasaaro kale oo weyn ayaa ah qiimaha shatiga. Taasi waa tobanaan kun oo doolar sanadkii CPU kasta. Shirkadaha waaweyn oo kaliya ayaa bixin kara kharashyadaas. Dhowaan, KX waxay ka dhigtay siyaasadeeda shatiga mid dabacsan waxayna siisaa fursada ay ku bixiso kaliya wakhtiga isticmaalka ama kiraynta KDB+ ee Google iyo Amazon daruuraha. KX sidoo kale waxay bixisaa soo dejin nooca bilaashka ah ee ujeeddooyin aan ganacsi ahayn (32-bit version ama 64-bit marka la codsado).
 

Tababarayaasha

Waxaa jira xog ururin gaar ah oo dhowr ah oo lagu dhisay mabaadi'da la midka ah - columnar, in-memory, oo diiradda saaraya tiro aad u badan oo xog ah. Dhibaatadu waxay tahay in kuwani yihiin xog ururin gaar ah. Tusaale cajiib ah waa Clickhouse. Xog-ururintani waxay leedahay mabda' aad ugu dhow KDB+ ee kaydinta xogta diskka iyo dhisida tusaha; waxay u qabataa qaar ka mid ah weydiimaha si ka dhakhso badan KDB+, in kasta oo aan si weyn u dhicin. Laakiin xitaa sida database ah, Clickhouse waa ka takhasus badan yahay KDB + - web analytics vs taxane waqti aan sabab lahayn (farqiga tani aad bay muhiim u tahay - sababtoo ah, tusaale ahaan, gudaha Clickhouse suurtagal maaha in la isticmaalo dalbashada diiwaannada). Laakiin, tan ugu muhiimsan, Clickhouse ma laha wax-ku-oolnimada KDB +, luqad u oggolaanaysa in si toos ah xogta loogu sameeyo kaydka, halkii marka hore lagu shubi lahaa codsi gooni ah, dhisida tibaaxaha SQL ee aan sharciga ahayn, ku dabaqida hawlaha aan sabab lahayn ee weydiinta, abuurista habab aan xidhiidh la lahayn fulinta hawlaha kaydka taariikheed . Sidaa darteed, way adagtahay in la isbarbar dhigo KDB+ iyo xog ururin kale; waxaa laga yaabaa inay ku fiicnaadaan kiisaska isticmaalka qaarkood ama si fudud ayey uga sii fiicnaan karaan marka ay timaaddo hawlaha kaydinta caadiga ah, laakiin ma aqaan qalab kale oo si siman wax ku ool ah oo wax ku ool ah oo loogu talagalay socodsiinta xogta ku meel gaarka ah.
 

Isku dhafka Python

Si loo fududeeyo KDB+ dadka aan aqoon tignoolajiyada, KX waxay abuurtay maktabado si ay si adag ula falgalaan Python hal geeddi-socod. Waxaad ka wici kartaa shaqo kasta oo Python ka ah Q, ama lidkeeda - ka wac hawl kasta oo ka socda Python (gaar ahaan, tibaaxaha QSQL). Maktabadaha waxay u beddelaan, haddii loo baahdo (maaha had iyo jeer waxtarka darted), xogta qaabka luqadda oo u beddelo qaab kale. Natiijadu waxay tahay, Q iyo Python waxay ku nool yihiin isu-dheellitirnaan dhow taasoo keentay in xudduudaha u dhexeeya ay mugdi noqdaan. Natiijo ahaan, barnaamij-sameeyaha, dhanka kale, wuxuu si buuxda u heli karaa maktabado badan oo Python ah oo faa'iido leh, dhanka kale, wuxuu helayaa saldhig degdeg ah oo uu ku shaqeeyo xog weyn oo lagu dhex daray Python, taas oo si gaar ah faa'iido u leh kuwa ku lug leh barashada mashiinka ama qaabaynta.
 
La shaqaynta Q ee 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')  

tixraacyada

Goobta shirkadu - https://kx.com/
Mareegta horumariyeyaasha - https://code.kx.com/v2/
Buug Q For Mortals (Ingiriisi) - https://code.kx.com/q4m3/
Maqaallada ku saabsan codsiyada KDB+/Q ee shaqaalaha kx - https://code.kx.com/v2/wp/

Source: www.habr.com

Add a comment