KDB+ dhatabhesi: kubva kumari kuenda kuFormula 1

KDB+, chigadzirwa chekambani KX inozivikanwa zvakanyanya mumadenderedzwa akatetepa, inokurumidza zvakanyanya, columnar dhatabhesi yakagadzirirwa kuchengetedza nguva dzakatevedzana uye analytical kuverenga kwakavakirwa pazviri. Pakutanga, yaive (uye iri) yakakurumbira muindasitiri yezvemari - ese epamusoro gumi emabhangi ekudyara uye akawanda anozivikanwa hedge mari, exchanges uye mamwe masangano anoishandisa. Munguva pfupi yapfuura, KX yakasarudza kuwedzera vatengi vayo uye ikozvino inopa mhinduro kune dzimwe nzvimbo uko kune huwandu hwakawanda hwe data, yakarongwa nenguva kana neimwe nzira - telecom, bioinformatics, kugadzira, nezvimwe. Vakavewo mubatsiri wechikwata cheAston Martin Red Bull Racing muFormula 10, kwavanobatsira kuunganidza nekugadzirisa data kubva kuma sensors emotokari uye kuongorora bvunzo dzemhepo. Muchikamu chino, ndinoda kukuudza kuti ndeapi maficha eKDB + anoita kuti iite zvakanyanya, nei makambani achida kushandisa mari yakawanda pairi, uye pakupedzisira, nei isiri dhatabhesi.
 
KDB+ dhatabhesi: kubva kumari kuenda kuFormula 1
 
Muchinyorwa chino ini ndichaedza kukuudza mune zvakajairika kuti KDB + chii, kugona uye nekugumira kwainayo, uye kuti mabhenefiti ayo ndeapi kumakambani anoda kugadzirisa huwandu hwakawanda hwedata. Ini handisi kuzopinda muruzivo rwekushandiswa kweKDB+ kana ruzivo rwemutauro wayo wekuronga weQ. Misoro miviri iyi yakatambanuka uye yakakodzera zvinyorwa zvakasiyana. Ruzivo rwakawanda pamisoro iyi inogona kuwanikwa pa code.kx.com, kusanganisira bhuku paQ - Q For Mortals (ona chinongedzo pazasi).

Mamwe mazwi

  • In-memory database. Dhatabhesi inochengeta data mu RAM kuti uwane nekukurumidza. Zvakanakira dhatabhesi yakadaro zvakajeka, asi izvo zvisingabatsiri mukana wekurasikirwa kwedata uye kudiwa kwekuve nekurangarira kwakawanda pane sevha.
  • Columnar database. Dhatabhesi uko data inochengetwa column by column pane kurekodha nerekodhi. Mukana mukuru weiyo dhatabhesi ndeyekuti data kubva kune imwe koramu inochengetwa pamwe chete pa diski uye mundangariro, iyo inonyanya kukurumidza kusvika kwairi. Hapana chikonzero chekutakura makoramu asina kushandiswa mumubvunzo. Chinhu chikuru chakashata ndechekuti zvakaoma kugadzirisa uye kudzima marekodhi.
  • Time series. Data ine date kana nguva column. Kazhinji, nguva yekuraira yakakosha kune data rakadaro, kuitira kuti iwe ugone kuona zviri nyore kuti ndeipi rekodhi inotangira kana inotevera yazvino, kana kushandisa mabasa ayo mhedzisiro inoenderana nekurongeka kwezvinyorwa. Classic databases yakavakirwa pamusimboti wakasiyana zvachose - inomiririra kuunganidzwa kwezvinyorwa seti, uko kurongeka kwemarekodhi, mumusimboti, haina kutsanangurwa.
  • Vector. Muchirevo cheKDB+, iyi rondedzero yezvinhu zvemhando yeatomu yakafanana, semuenzaniso, nhamba. Mune mamwe mazwi, hurongwa hwezvinhu. Arrays, kusiyana nemazita, anogona kuchengetwa akabatana uye kugadziriswa uchishandisa vector processor mirairo.

 

Historical Background

KX yakavambwa muna 1993 naArthur Whitney, aimboshanda kuMorgan Stanley Bank pamutauro weA+, mutsivi weAPL - mutauro wepakutanga uye pane imwe nguva wakakurumbira munyika yezvemari. Zvechokwadi, muKX, Arthur akapfuurira mumweya mumwe uye akagadzira vector-inoshanda mutauro K, inotungamirirwa nemafungiro e-radical minimalism. Zvirongwa zveK zvinotaridzika senge kusanganiswa kwezviratidzo uye mavara akakosha, zvinoreva zviratidzo nemabasa zvinoenderana nezviri kuitika, uye oparesheni yega yega inotakura zvazvinoreva kupfuura zvazvinoita mumitauro yakajairwa yekuronga. Nekuda kweizvi, chirongwa cheK chinotora nzvimbo shoma-mitsetse mishoma inogona kutsiva mapeji ezvinyorwa mumutauro weverbose seJava-uye ndeyekunyanya-yakanyanya kuisirwa algorithm.
 
Basa muK rinoshandisa mazhinji eLL1 parser jenareta zvinoenderana negirama rakapihwa:

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 akabatanidza huzivi uhwu hwekushanda zvakanyanya nekufamba kwemuviri kudiki muKDB+, iyo yakaonekwa muna 2003 (ndinofunga kuti zvave pachena kuti vara K muzita rinobva kupi) uye haasi chimwe chinhu kunze kwemuturikiri wechikamu chechina cheK. mutauro. Imwe shanduro inoshandisika zvakanyanya yawedzerwa pamusoro peK K inonzi Q. Q yakawedzerawo rutsigiro rwemutauro chaiwo weSQL - QSQL, uye muturikiri - tsigiro yematafura semhando yedata rehurongwa, zvishandiso zvekushanda nematafura. mundangariro uye padisiki, nezvimwe.
 
Saka kubva pamaonero emushandisi, KDB+ ingori muturikiri wemutauro weQ ane tsigiro yematafura uye SQL-kunge LINQ-maitiro ekutaura kubva kuC#. Uyu ndiwo mutsauko wakanyanya kukosha pakati peKDB + nemamwe dhatabhesi uye mukana wayo mukuru wemakwikwi, ayo anowanzo furatirwa. Iyi haisi dhatabhesi + yakaremara mutauro wekubatsira, asi yakazara-yakazara ine simba chirongwa chemutauro + yakavakirwa-mukati tsigiro yemabasa e database. Musiyano uyu uchaita basa rakasimba mukunyora ese mabhenefiti eKDB+. Semuyenzaniso…
 

zera

Nezviyero zvazvino, KDB+ ingori microscopic muhukuru. Iri chaizvo imwe sub-megabyte faira rekuita uye imwe diki mameseji faira ine mamwe maitiro ehurongwa. Muzvokwadi - isingasviki megabyte imwe, uye nokuda kwepurogiramu iyi makambani anobhadhara makumi ezviuru zvemadhora pagore kune imwe processor pane server.

  • Saizi iyi inobvumira KDB+ kuti inzwe yakakura pane chero hardware - kubva kuPi microcomputer kuenda kumaseva ane terabytes yendangariro. Izvi hazvikanganise kushanda kwayo chero nzira; uyezve, Q inotanga ipapo, iyo inobvumira kuti ishandiswe, pakati pezvimwe zvinhu, semutauro wekunyora.
  • Pane iyi saizi, muturikiri weQ anokwana zvachose muprocessor cache, iyo inomhanyisa kuita chirongwa.
  • Neiyi saizi yefaira rinogoneka, iyo Q maitiro anotora nzvimbo isingaite mundangariro; unogona kumhanya mazana azvo. Uyezve, kana zvichidikanwa, Q inogona kushanda nemakumi kana mazana emagigabytes endangariro mukati mekuita kamwe chete.

Kusiyanisa

Q yakanaka kune dzakasiyana siyana dzekushandisa. Maitiro Q anogona kuita senhoroondo dhatabhesi uye kupa nekukurumidza kuwana kune terabytes yeruzivo. Semuenzaniso, isu tine akawanda enhoroondo dhatabhesi, mune imwe iyo isina kudzvanywa zuva re data rinotora anopfuura zana gigabytes. Nekudaro, pasi pezvirambidzo zvine musoro, kubvunza kune dhatabhesi kunopedzwa mumakumi kusvika kumazana emamilliseconds. Kazhinji, isu tine nguva yepasirese yekupedza zvikumbiro zvevashandisi - masekonzi makumi matatu - uye inoshanda kashoma.
 
Q inogona kungove iri mu-memory dhatabhesi. Itsva data inowedzerwa kumatafura e-memory nekukurumidza zvekuti zvikumbiro zvemushandisi ndizvo zvinodzikisira. Dhata mumatafura inochengetwa mumakoramu, zvinoreva kuti chero mashandiro ari pakoramu achashandisa processor cache yakazara. Pamusoro peizvi, KX yakaedza kuita mabasa ese ekutanga senge arithmetic kuburikidza nevector rairo ye processor, kuwedzera kumhanya kwavo. Q inogona zvakare kuita mabasa asina kujairika kune dhatabhesi - semuenzaniso, gadzira kutenderera data uye kuverenga mu "chaiyo nguva" (nekunonoka kubva pamakumi emamilliseconds kusvika kumasekonzi akati wandei zvichienderana nebasa) mabasa akasiyana-siyana ekuunganidza emidziyo yemari kwenguva dzakasiyana. nguva kana kuvaka modhi yepesvedzero yekutengeserana kwakaringana kumusika uye kuita profiling yayo nguva pfupi yapera. Mumabasa akadai, kazhinji nguva huru yekunonoka haisi Q, asi kukosha kwekufananidza data kubva kwakasiyana masosi. Kumhanya kwepamusoro kunowanikwa nekuda kwekuti data uye mabasa anoagadzirisa ari mune imwe nzira, uye kugadzirisa kunoderedzwa kusvika pakuita akati wandei QSQL mataurirwo uye majoini, ayo asina kududzirwa, asi anoitwa nebhanari kodhi.
 
Chekupedzisira, unogona kunyora chero masevhisi maitiro muQ. Semuenzaniso, Gateway maitiro anogovera otomatiki zvikumbiro zvevashandisi kune anodiwa dhatabhesi uye maseva. Mugadziri ane rusununguko rwakakwana rwekuita chero algorithm yekuenzanisa, kuisa pamberi, kushivirira kukanganisa, kodzero yekuwana, quotas uye chero chinhu chipi zvacho chinoshuvira moyo wake. Dambudziko guru apa nderekuti iwe uchafanirwa kuita zvese izvi iwe pachako.
 
Semuenzaniso, ini ndichanyora kuti ndeapi marudzi emaitiro atinawo. Ese anoshingairira kushandiswa uye anoshanda pamwechete, achibatanidza akawanda emadhatabheti akasiyana kuita rimwe, kugadzirisa data kubva kune akawanda masosi uye kushumira mazana evashandisi uye maapplication.

  • Zvibatanidza (feedhandler) kune zvinyorwa zve data. Aya maitiro anowanzo shandisa maraibhurari ekunze anoiswa muQ. Iyo C interface muQ iri nyore kwazvo uye inokutendera kuti ugadzire zviri nyore masevhisi emumiriri kune chero C/C++ raibhurari. Q inokurumidza kubata, semuenzaniso, kugadzirisa mafashama eFIX mameseji kubva kuEuropean stock exchanges panguva imwe chete.
  • Data distributors (tickerplant), iyo inoshanda sechinhu chepakati chinongedzo pakati pezvibatanidza nevatengi. Panguva imwecheteyo, ivo vanonyora inouya data kune yakakosha bhinari logi, ichipa kusimba kune vatengi kurwisa kurasikirwa kwekubatanidza kana kutangazve.
  • In-memory database (rdb). Aya dhatabhesi anopa kukurumidza kukwanisika kuwana kune mbishi, nyowani data nekuichengeta mundangariro. Kazhinji, vanounganidza data mumatafura mukati mezuva uye voamisazve husiku.
  • Ramba dhatabhesi (pdb). Aya dhatabhesi anovimbisa kuti data ranhasi rinochengetwa munhoroondo dhatabhesi. Sezvo mutemo, kusiyana nerdb, ivo havachengete data mundangariro, asi shandisa yakakosha cache pa diski masikati uye kukopa iyo data pakati peusiku kune yenhoroondo dhatabhesi.
  • Nhoroondo dhatabhesi (hdb). Aya dhatabhesi anopa mukana kune data remazuva apfuura, mwedzi nemakore. Saizi yavo (mumazuva) inongogumira chete nehukuru hwema hard drive. Dhata inogona kuwanikwa chero kupi, kunyanya pamadhisiki akasiyana kuti ikurumidze kuwana. Zvinogoneka kudzvanya data uchishandisa akati wandei algorithms kusarudza kubva. Chimiro chedhatabhesi chakanyatso kunyorwa uye chiri nyore, iyo data inochengetwa koramu nekoramu mumafaira akajairwa, saka anogona kugadziriswa, kusanganisira nenzira yekushandisa system.
  • Databases ine ruzivo rwakaunganidzwa. Ivo vanochengeta akasiyana aggregations, kazhinji aine, akaunganidzwa nemazita echiridzwa uye nguva yenguva. In-memory dhatabhesi inovandudza mamiriro avo neshoko rega rega rinouya, uye nhoroondo dhatabhesi inochengeta pre-yakaverengerwa data kuti ikurumidze kuwana kune nhoroondo data.
  • Pakupedzisira gateway processkushandira maapplication uye vashandisi. Q inokutendera iwe kuti ushandise zvizere asynchronous kugadzirisa kwemameseji anouya, kuaparadzira padhatabhesi, kutarisa kodzero dzekuwana, nezvimwe. Ziva kuti mameseji haana kuganhurirwa uye kazhinji kazhinji haasi mataurirwo eSQL, sezvazviri mune mamwe dhatabhesi. Kazhinji, kutaura kweSQL kunovigwa mune yakakosha basa uye inovakwa zvichienderana nematanho akakumbirwa nemushandisi - nguva inoshandurwa, inosefa, data inogadziriswa (semuenzaniso, mutengo wemasheya wakaenzana kana migove yakabhadharwa), nezvimwe.

Yakajairika dhizaini yeimwe data mhando:

KDB+ dhatabhesi: kubva kumari kuenda kuFormula 1

Speed

Kunyangwe Q uri mutauro wakadudzirwa, zvakare iri mutauro wevector. Izvi zvinoreva kuti akawanda akavakirwa-mukati mabasa, kunyanya arithmetic, anotora nharo dzechero fomu - manhamba, mavheji, matrices, rondedzero - uye mugadziri anotarisirwa kuita chirongwa semaitiro akatevedzana. Mumutauro wakadaro, kana iwe ukawedzera mavheji maviri emirioni zvinhu, hazvichina basa kuti mutauro wacho unodudzirwa; iyo yekuwedzera ichaitwa neiyo super-optimized binary basa. Sezvo mugove weshumba wenguva muzvirongwa zveQ uchishandiswa pakushanda nematafura anoshandisa aya ekutanga vectorized mabasa, zvinobuda zvine huremu hwekushanda, zvinotibvumira kugadzirisa huwandu hukuru hwe data kunyangwe mukuita kumwe chete. Izvi zvakafanana nemaraibhurari emasvomhu muPython - kunyangwe Python pachayo iri mutauro unononoka, ine akawanda akanakisa maraibhurari senge numpy anobvumidza iwe kugadzirisa nhamba data nekumhanya kwemutauro wakaunganidzwa (nenzira, numpy iri padyo neQ. )
 
Pamusoro pezvo, KX yakatora nzira yekungwarira pakugadzira matafura uye nekugadzirisa basa navo. Chekutanga, marudzi akati wandei emaindex anotsigirwa, ayo anotsigirwa neakavakirwa-mukati mabasa uye anogona kushandiswa kwete chete kumatafura makoramu, asiwo kune chero mavheji - kurongedza, kuronga, kusarudzika hunhu uye akakosha mapoka enhoroondo dhatabhesi. Iyo index inoshandiswa zviri nyore uye inogadziridzwa otomatiki kana uchiwedzera zvinhu kune column/vector. Ma indexes anogona kunyatso shandiswa kune tafura makoramu mundangariro uye pa diski. Paunenge uchiita mubvunzo weQSQL, indexes inoshandiswa otomatiki kana zvichibvira. Chechipiri, kushanda nedata renhoroondo kunoitwa kuburikidza nemuchina wekuratidza OS mafaera (mepu yendangariro). Matafura mahombe haambotakurwa mundangariro; pachinzvimbo, makoramu anodiwa anoiswa mepu zvakananga mundangariro uye chikamu ichocho chete ndicho chakanyatso kutakurwa (mandekisi anobatsirawo pano) anodiwa. Hazvina mutsauko kune mugadziri kuti data iri mundangariro here kana kuti kwete; iyo mashini yekushanda ne mmap yakanyatsovanzwa pakadzika peQ.
 
KDB+ haisi dhatabhesi rehukama; matafura anogona kuve nedata, nepo kurongeka kwemitsara mutafura hakuchinji kana zvinhu zvitsva zvawedzerwa uye zvinogona uye zvinofanirwa kushandiswa pakunyora mibvunzo. Ichi chiitiko chinodiwa nekukurumidza pakushanda nenguva dzakateedzana (data kubva mukutsinhana, telemetry, matanda ezviitiko), nekuti kana iyo data yakarongedzwa nenguva, saka mushandisi haafanire kushandisa chero SQL tricks kuwana yekutanga kana yekupedzisira mutsara kana N. mitsara patafura, tarisa kuti ndeupi mutsara unotevera mutsetse weNth, nezvimwe. Kujoinwa kwematafura kunorerutswa zvakatopfuura, semuenzaniso, kuwana iyo yekupedzisira quote ye16000 VOD.L (Vodafone) transactions mutafura ye500 miriyoni zvinhu zvinotora sekondi padisiki uye makumi emamilliseconds mundangariro.
 
Muenzaniso wejoinha yenguva - tafura yekotesheni inoiswa mundangariro, saka hapana chikonzero chekutsanangura VOD.L umo, indekisi iri pa sym column uye chokwadi chekuti data rakarongwa nenguva rinoshandiswa zvisina kujeka. Anenge ese anojoinha muQ mabasa enguva dzose, kwete chikamu chesarudzo yekutaura:

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

Chekupedzisira, zvakakosha kuti ticherechedze kuti mainjiniya eKX, kutanga naArthur Whitney pachake, vanonyanya kufungisisa nezvekushanda uye vanoenda kureba kuti vawane zvakanyanya kubva mumhando dzeQ uye kukwidziridza maitiro akajairika ekushandisa.
 

Mugumisiro

KDB+ inofarirwa pakati pemabhizinesi zvakanyanya nekuda kwekuita kwayo kwakasiyana-siyana - inoshanda zvakaenzana semu-mundangariro dhatabhesi, sedhatabhesi yekuchengetedza materabytes enhoroondo data, uye sepuratifomu yekuongorora data. Nekuda kwekuti kugadziridzwa kwedata kunoitika zvakananga mudhatabhesi, kumhanya kwakanyanya kwebasa uye kuchengetedza zviwanikwa kunowanikwa. Iyo yakazara-yakazara programming mutauro yakabatanidzwa nedatabase mabasa inobvumidza iwe kuti uite iyo yese stack yemaitiro anodiwa papuratifomu imwe - kubva pakugamuchira data kusvika kugadzirisa zvikumbiro zvemushandisi.
 

Kuti uwane mamwe mashoko,

kutadza

Kukanganisa kwakakosha kweKDB+/Q ndiyo yepamusoro yekupinda chikumbaridzo. Mutauro une syntax isinganzwisisike, mamwe mabasa akaremerwa zvakanyanya (kukosha, semuenzaniso, kune gumi nerimwe rekushandisa kesi). Chinonyanya kukosha, inoda nzira yakasiyana zvikuru yekunyora mapurogiramu. Mumutauro wevekita, iwe unofanirwa kugara uchifunga maererano neshanduko dzakarongwa, shandisa zvishwe zvese kuburikidza nekusiyana kwakasiyana kwemepu/kudzikisa mabasa (ayo anonzi adverbs muQ), uye usamboedza kuchengetedza mari nekutsiva mavhitavhita nemaatomu. Semuenzaniso, kuti uwane indekisi yeNth kuitika kwechinhu muhurongwa, iwe unofanirwa kunyora:

1. (where element=vector)[N]  

kunyangwe izvi zvichiita sezvisinga shande neC/Java zviyero (= inogadzira boolean vector, uko inodzosa indekisi yechokwadi yezvinhu zviri mairi). Asi chirevo ichi chinoita kuti chirevo chechirevo chinyatsojeka uye iwe unoshandisa kukurumidza vector mashandiro pane anononoka atomu. Musiyano wepfungwa pakati pemutauro wevector nevamwe unofananidzwa nemusiyano uripo pakati pekukosha uye mashandiro emaitiro ekuronga, uye iwe unofanirwa kuve wakagadzirira izvi.
 
Vamwe vashandisi havasi kufarawo neQSQL. Pfungwa ndeyekuti inongotaridzika seSQL chaiyo. Muchokwadi, ingori muturikiri weSQL-senge mataurirwo asingatsigire query optimization. Mushandisi anofanira kunyora akakwana mibvunzo iye, uye muQ, izvo vazhinji vasina kugadzirira. Kune rimwe divi, hongu, iwe unogona kugara uchinyora iyo yakanyanya kubvunza iwe pachako, pane kuvimba neblack-box optimizer.
 
Sekuwedzera, bhuku riri paQ - Q For Mortals rinowanikwa mahara pa webhusaiti yekambani, kunewo zvimwe zvakawanda zvinobatsira zvakaunganidzwa ipapo.
 
Chimwe chakaipa chikuru imari yerezinesi. Ndiwo makumi ezviuru zvemadhora pagore paCPU. Makambani makuru chete ndiwo anokwanisa kubhadhara mari dzakadaro. Munguva pfupi yapfuura, KX yakaita kuti mutemo wayo werezinesi uwedzere kushanduka uye inopa mukana wekubhadhara chete nguva yekushandiswa kana kurenda KDB+ muGoogle neAmazon makore. KX inopawo kurodha vhezheni yemahara yezvisiri zvekutengesa (32 bit version kana 64 bit pakukumbira).
 

Competitors

Kune akati wandei akasarudzika dhatabhesi akavakirwa pamisimboti yakafanana - columnar, mu-memory, yakatarisana nehuwandu hukuru hwe data. Dambudziko nderekuti aya madatabase ehunyanzvi. Muenzaniso unoshamisa ndeye Clickhouse. Iyi dhatabhesi ine musimboti wakada kufanana neKDB+ wekuchengeta data pane diski uye kuvaka index; inoita mimwe mibvunzo nekukurumidza kupfuura KDB+, kunyangwe zvisina kunyanya. Asi kunyangwe sedhatabhesi, Clickhouse inonyanya hunyanzvi kupfuura KDB + - web analytics vs arbitrary time series (musiyano uyu wakakosha - nekuda kwayo, semuenzaniso, muClickhouse hazvigoneke kushandisa kurongeka kwemarekodhi). Asi, zvinonyanya kukosha, Clickhouse haina kuita kwakasiyana-siyana kweKDB +, mutauro waizobvumira kugadzirisa data zvakananga mudhatabhesi, pane kuti itange kuiisa mune yakaparadzana application, kuvaka inopokana mataurirwo eSQL, kushandisa zvisizvo mabasa mumubvunzo, kugadzira maitiro. zvisingaenderane nekuitwa kwemabasa enhoroondo yedatabase . Naizvozvo, zvakaoma kuenzanisa KDB+ nemamwe dhatabhesi; vanogona kunge vari nani mune mamwe mamiriro ekushandisa kana zvirinani kana zvasvika kune ekirasi database mabasa, asi ini handizive chimwe chinoshanda zvakaenzana uye chinogoneka chishandiso chekugadzirisa data renguva pfupi.
 

Python kubatanidzwa

Kuita kuti KDB+ ive nyore kushandisa kune vanhu vasina kujaira tekinoroji, KX yakagadzira maraibhurari kuti abatanidze zvakasimba nePython mukati mekuita kamwe chete. Unogona kufonera chero basa rePython kubva kuQ, kana zvinopesana - fonera chero Q basa kubva kuPython (kunyanya, QSQL mataurirwo). Maraibhurari anoshandura, kana zvichidikanwa (kwete nguva dzose nekuda kwekuita zvakanaka), data kubva kumhando yemutauro mumwe kuenda kune imwe nzira. Nekuda kweizvozvo, Q nePython vanogara mune yepedyo symbiosis zvekuti miganhu iri pakati pavo haina kujeka. Nekuda kweizvozvo, mugadziri wepurogiramu, kune rumwe rutivi, ane mukana wakazara kune akawanda anobatsira Python raibhurari, kune rumwe rutivi, anogamuchira chigadziko chekushanda nedata hombe rakasanganiswa muPython, iro rinonyanya kubatsira kune avo vanobatanidzwa mukudzidza kwemichina. kana kuenzanisira.
 
Kushanda neQ muPython:

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')  

nezvakanyorwa

Nzvimbo yekambani - https://kx.com/
Webhusaiti yevagadziri - https://code.kx.com/v2/
Book Q For Mortals (muChirungu) - https://code.kx.com/q4m3/
Zvinyorwa paKDB+/Q zvikumbiro kubva kuvashandi ve kx - https://code.kx.com/v2/wp/

Source: www.habr.com

Voeg