KDB+ nchekwa data: site na ego ruo Formula 1

KDB+, ngwaahịa ụlọ ọrụ KX bụ nke a ma ama na okirikiri dị warara, dị oke ngwa ngwa, nchekwa data columnar emebere maka ịchekwa usoro oge yana ngụkọ nyocha dabere na ha. Na mbụ, ọ bụ (ma bụrụ) na-ewu ewu na ụlọ ọrụ ego - a na-eji ya niile n'elu 10 ụlọ akụ itinye ego na ọtụtụ ndị a ma ama oke ego, mgbanwe na òtù ndị ọzọ. N'oge na-adịbeghị anya, KX kpebiri ịgbasa ndị ahịa ya ma ugbu a na-enye ihe ngwọta na mpaghara ndị ọzọ ebe enwere nnukwu data, nke a na-ahazi site na oge ma ọ bụ ihe ọzọ - telecom, bioinformatics, nrụpụta, wdg. Ha ghọkwara onye mmekọ nke otu Aston Martin Red Bull Racing na Formula 1, ebe ha na-enyere aka ịnakọta na hazie data sitere na ihe mmetụta ụgbọ ala na nyochaa ule ọwara ikuku. N'isiokwu a, achọrọ m ịgwa gị ihe njirimara nke KDB + na-eme ka ọ na-arụ ọrụ nke ọma, ihe kpatara ụlọ ọrụ ji dị njikere imefu nnukwu ego na ya, na n'ikpeazụ, ihe kpatara na ọ bụghị n'ezie nchekwa data.
 
KDB+ nchekwa data: site na ego ruo Formula 1
 
N'isiokwu a, m ga-agbalị ịgwa gị n'ozuzu ihe KDB + bụ, ihe ike na njedebe o nwere, na uru ya bụ maka ụlọ ọrụ ndị chọrọ ịhazi data buru ibu. Agaghị m abanye na nkọwapụta nke mmejuputa KDB+ ma ọ bụ nkọwa nke asụsụ mmemme Q ya. Isiokwu abụọ a sara mbara ma kwesịkwa ka akụkọ dị iche iche. Enwere ike ịchọta ọtụtụ ozi gbasara isiokwu ndị a na code.kx.com, gụnyere akwụkwọ na Q - Q For Mortals (lee njikọ dị n'okpuru).

Okwu ụfọdụ

  • Ebe nchekwa data. Ebe nchekwa data na-echekwa data na RAM maka ịnweta ngwa ngwa. Uru nke nchekwa data dị otú ahụ doro anya, ma ihe ndị na-adịghị mma bụ ohere nke nkwụsị data na mkpa ọ dị inwe ọtụtụ ebe nchekwa na ihe nkesa.
  • nchekwa data kọlụm. Ebe nchekwa data ebe echekwara data site na kọlụm kama ịdekọ site na ndekọ. Isi uru dị na nchekwa data dị otú ahụ bụ na a na-echekwa data sitere na otu kọlụm ọnụ na diski yana na ebe nchekwa, nke na-eme ka ịnweta ya ngwa ngwa ngwa ngwa. Ọ dịghị mkpa ịkwanye ogidi ndị anaghị eji na ajụjụ a. Isi mwepu bụ na ọ siri ike ịgbanwe na ihichapụ ndekọ.
  • Usoro oge. Data nwere kọlụm ụbọchị ma ọ bụ oge. A, ịtụ oge dị mkpa maka ndị dị otú ahụ data, nke mere na ị nwere ike mfe ikpebi nke ndekọ tupu ma ọ bụ na-eso nke dị ugbu a, ma ọ bụ tinye ọrụ nke nsonaazụ ya dabere n'usoro nke ndekọ. A na-ewu ọdụ data oge ochie na ụkpụrụ dị iche iche kpamkpam - na-anọchite anya nchịkọta ndekọ dịka nhazi, ebe usoro nke ndekọ ahụ bụ, na ụkpụrụ, akọwaghị ya.
  • Vector. N'ihe gbasara KDB+, nke a bụ ndepụta nke ihe dị n'otu ụdị atomic, dịka ọmụmaatụ, ọnụọgụgụ. N'ikwu ya n'ụzọ ọzọ, ọtụtụ ihe. Enwere ike ịchekwa usoro nhazi, n'adịghị ka ndetu, nke ọma ma hazie ya site na iji ntuziaka nhazi vector.

 

Akụkọ ihe mere eme

KX tọrọ ntọala na 1993 site n'aka Arthur Whitney, onye rụburu ọrụ na Morgan Stanley Bank na asụsụ A+, onye ga-anọchi APL - asụsụ mbụ na otu oge a ma ama na ụwa ego. N'ezie, na KX, Arthur gara n'ihu n'otu mmụọ ahụ wee mepụta asụsụ vector-functional K, nke echiche nke radical minimalism na-eduzi. Mmemme K na-adị ka ihe nrịbama nke akara edemede na mkpụrụedemede pụrụ iche, ihe ịrịba ama na ọrụ na-adabere n'ihe a na-ekwu, na ọrụ ọ bụla na-ebu ihe ọ pụtara karịa ka ọ na-eme na asụsụ mmemme. N'ihi nke a, mmemme K na-eweghara ohere pere mpe - ahịrị ole na ole nwere ike dochie ibe ederede n'asụsụ verbose dị ka Java - ma bụrụ nnukwu mmejuputa algọridim.
 
Ọrụ dị na K nke na-arụ ọtụtụ n'ime LL1 parser generator dị ka ụtọ asụsụ enyere:

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 jikọtara nkà ihe ọmụma a nke oke arụmọrụ yana opekempe mmegharị ahụ na KDB +, nke pụtara na 2003 (echere m na o doro anya ugbu a ebe mkpụrụedemede K n'aha si bịa) na ọ bụghị ihe ọzọ karịa onye ntụgharị nke ụdị nke anọ nke K. Asụsụ agbakwunyere ụdị enyi na enyi karịa n'elu K K a na-akpọ Q. Q gbakwunyekwara nkwado maka otu olumba SQL - QSQL, na ntụgharị - nkwado maka tebụl dịka ụdị data sistemụ, ngwaọrụ maka ịrụ ọrụ na tebụl. na ebe nchekwa na diski, wdg.
 
Yabụ site n'echiche onye ọrụ, KDB+ bụ naanị onye ntụgharị asụsụ Q nwere nkwado maka tebụl yana okwu ụdị LINQ dị ka SQL sitere na C #. Nke a bụ ọdịiche kachasị mkpa n'etiti KDB + na ọdụ data ndị ọzọ yana uru asọmpi ya bụ isi, nke a na-elegharakarị anya. Nke a abụghị nchekwa data + asụsụ inyeaka nwere nkwarụ, kama ọ bụ asụsụ mmemme siri ike zuru oke + nkwado arụnyere maka ọrụ nchekwa data. Ọdịiche a ga-arụ ọrụ dị mkpa n'ịdepụta uru niile nke KDB+. Ọmụmaatụ…
 

size

Site n'ụkpụrụ ọgbara ọhụrụ, KDB+ bụ naanị obere obere nha. Ọ bụ n'ụzọ nkịtị otu sub-megabyte executable faịlụ na otu obere ederede faịlụ nwere ụfọdụ usoro ọrụ. N'ezie - ihe na-erughị otu megabyte, na maka mmemme mmemme a, ụlọ ọrụ na-akwụ iri puku kwuru iri puku dollar kwa afọ maka otu processor na ihe nkesa.

  • Ogo a na-enye KDB+ aka inwe mmetụta dị ukwuu na ngwaike ọ bụla - site na microcomputer Pi ruo na sava nwere terabytes nke ebe nchekwa. Nke a anaghị emetụta ọrụ ahụ n'ụzọ ọ bụla; Ọzọkwa, Q na-amalite ozugbo, nke na-enye ohere iji ya, tinyere ihe ndị ọzọ, dị ka asụsụ edemede.
  • Na nha a, onye ntụgharị Q na-adaba kpamkpam n'ime cache processor, nke na-eme ka mmezu mmemme dị ngwa.
  • Site na nha faịlụ a na-arụ ọrụ, usoro Q na-eweghara oghere na-enweghị atụ na ebe nchekwa; ị nwere ike ịgba ọtụtụ narị n'ime ha. Ọzọkwa, ọ bụrụ na ọ dị mkpa, Q nwere ike ịrụ ọrụ na iri ma ọ bụ narị gigabytes nke ebe nchekwa n'ime otu usoro.

Ịdị arọ

Q dị mma maka ngwa dị iche iche. Usoro Q nwere ike rụọ ọrụ dị ka nchekwa data akụkọ ihe mere eme ma nye ohere ịnweta ozi terabyte ngwa ngwa. Dịka ọmụmaatụ, anyị nwere ọtụtụ ọdụ data akụkọ ihe mere eme, na ụfọdụ n'ime ha otu ụbọchị data na-enweghị mgbagwoju anya na-ewe ihe karịrị 100 gigabytes. Agbanyeghị, n'okpuru mmachi ezi uche dị na ya, a ga-emecha ajụjụ maka nchekwa data n'ime iri ruo narị milliseconds. N'ozuzu, anyị nwere oge zuru ụwa ọnụ maka arịrịọ onye ọrụ - 30 sekọnd - na ọ na-arụ ọrụ nke ukwuu.
 
Q nwere ike dị mfe ịbụ nchekwa data ebe nchekwa. A na-agbakwunye data ọhụrụ na tebụl ebe nchekwa ngwa ngwa nke na arịrịọ onye ọrụ bụ ihe na-egbochi ya. A na-echekwa data dị na tebụl na kọlụm, nke pụtara na ọrụ ọ bụla na kọlụm ga-eji cache processor na ikike zuru oke. Na mgbakwunye na nke a, KX gbalịrị imejuputa ọrụ niile dị mkpa dị ka mgbakọ na mwepụ site na ntụziaka vector nke processor, na-eme ka ọsọ ha dịkwuo elu. Q nwekwara ike ịrụ ọrụ ndị na-adịghị ahụ maka ọdụ data - dịka ọmụmaatụ, hazie data gụgharia ma gbakọọ na "ezigbo oge" (na-egbu oge site na iri puku kwuru iri milliseconds ruo ọtụtụ sekọnd dabere na ọrụ ahụ) ọrụ nchịkọta dị iche iche maka ngwa ego maka oge dị iche iche. etiti oge ma ọ bụ wuo ihe atụ nke mmetụta nke azụmahịa zuru oke na ahịa ma mee profaịlụ ya ihe fọrọ nke nta ka ọ bụrụ ozugbo emechara ya. N'ime ọrụ ndị dị otú ahụ, ọtụtụ mgbe isi oge igbu oge abụghị Q, mana ọ dị mkpa ịmekọrịta data sitere na isi mmalite dị iche iche. A na-enweta ọsọ ọsọ dị elu n'ihi na data na ọrụ ndị na-edozi ha dị n'otu usoro, na nhazi na-ebelata iji mee ọtụtụ okwu QSQL na njikọ, nke a na-akọwaghị, ma na-egbu ya site na koodu ọnụọgụ abụọ.
 
N'ikpeazụ, ị nwere ike dee usoro ọrụ ọ bụla na Q. Dịka ọmụmaatụ, usoro ọnụ ụzọ ámá nke na-ekesa arịrịọ onye ọrụ na-akpaghị aka na ọdụ data na sava dị mkpa. Onye mmemme nwere nnwere onwe zuru oke iji mejuputa algọridim ọ bụla maka itule, ibute ụzọ, nnabata mmejọ, ikike ịnweta, oke na ihe ọ bụla ọzọ obi ya chọrọ. Isi nsogbu ebe a bụ na ị ga-emejuputa ihe a niile n'onwe gị.
 
Dịka ọmụmaatụ, m ga-edepụta ụdị usoro anyị nwere. A na-eji ha niile na-arụsi ọrụ ike ma na-arụkọ ọrụ ọnụ, na-ejikọta ọtụtụ ọdụ data dị iche iche n'ime otu, nhazi data sitere na ọtụtụ isi mmalite na ijere ọtụtụ narị ndị ọrụ na ngwa ozi.

  • Njikọ (onye na-enye nri) na isi mmalite data. Usoro ndị a na-ejikarị ọba akwụkwọ ndị dị n'èzí na-ebuba n'ime Q. C interface dị na Q dị mfe ma na-enye gị ohere ịmepụta ọrụ proxy maka ọbá akwụkwọ C/C++ ọ bụla. Q dị ngwa ngwa ijikwa, dịka ọmụmaatụ, nhazi iju mmiri nke FIX ozi sitere na mgbanwe ngwaahịa ngwaahịa Europe niile n'otu oge.
  • Ndị na-ekesa data (tickerplant), nke na-eje ozi dị ka njikọ etiti n'etiti njikọ na ndị na-azụ ahịa. N'otu oge ahụ, ha na-ede data na-abata na ndekọ ọnụọgụ abụọ pụrụ iche, na-enye ike maka ndị na-azụ ahịa megide mfu njikọ ma ọ bụ malitegharịa.
  • Ebe nchekwa data (rdb). Ebe nchekwa data ndị a na-enye ohere kachasị ngwa ngwa ịnweta data raw, dị ọhụrụ site na ịchekwa ya na ebe nchekwa. A, ha na-akpakọba data na tebụl n'ehihie ma tọgharịa ha n'abalị.
  • Ebe nchekwa data na-adịgide adịgide (pdb). Ebe nchekwa data ndị a na-ahụ na echekwara data maka taa na nchekwa data akụkọ ihe mere eme. Dị ka a na-achị, n'adịghị ka rdb, ha anaghị echekwa data na ebe nchekwa, ma jiri cache pụrụ iche na diski n'ehihie ma detuo data n'etiti abalị na nchekwa data akụkọ ihe mere eme.
  • Ebe nchekwa data akụkọ ihe mere eme (hdb). Ebe nchekwa data ndị a na-enye ohere ịnweta data ụbọchị, ọnwa na afọ gara aga. Ogo ha (na ụbọchị) na-ejedebe naanị site na nha draịva siri ike. Enwere ike ịchọta data ebe ọ bụla, karịsịa na diski dị iche iche iji mee ka ịnweta ngwa ngwa. Ọ ga-ekwe omume ịpịkọta data site na iji ọtụtụ algọridim ịhọrọ site na. A na-edepụta usoro nchekwa data nke ọma ma dị mfe, a na-echekwa data ahụ na kọlụm na kọlụm na faịlụ mgbe niile, ya mere enwere ike ịhazi ha, gụnyere site na sistemụ arụmọrụ.
  • Ebe nchekwa data nwere ozi agbakọtara. Ha na-echekwa mkpokọta dị iche iche, na-ejikarị aha akụrụngwa na oge nkeji. Ebe nchekwa data dị n'ime ebe nchekwa na-eji ozi ọ bụla na-abata na-emelite steeti ha, yana nchekwa data akụkọ ihe mere eme na-echekwa data agbakọrọ agbakọ iji mee ka ịnweta data akụkọ ihe mere eme ngwa ngwa.
  • N’ikpeazụ usoro ọnụ ụzọ ámángwa ọrụ na ndị ọrụ. Q na-enye gị ohere imejuputa nhazi asynchronous kpamkpam nke ozi mbata, kesaa ha n'ofe ọdụ data, ịlele ikike ịnweta, wdg. Rịba ama na ozi enweghị oke na ọtụtụ mgbe abụghị okwu SQL, dịka ọ dị na ọdụ data ndị ọzọ. Ọtụtụ mgbe, a na-ezobe okwu SQL na ọrụ pụrụ iche ma wuo ya dabere na paramita nke onye ọrụ rịọrọ - a na-agbanwe oge, nzacha, data na-ahazi (dịka ọmụmaatụ, a na-ahazi ọnụahịa ngwaahịa ma ọ bụrụ na akwụ ụgwọ nkesa), wdg.

Ihe owuwu a na-ahụkarị maka otu ụdị data:

KDB+ nchekwa data: site na ego ruo Formula 1

Ngwa ọsọ

Ọ bụ ezie na Q bụ asụsụ atụgharịrị, ọ bụkwa asụsụ vector. Nke a pụtara na ọtụtụ ọrụ arụnyere n'ime ya, ọkachasị ndị nke mgbakọ na mwepụ, na-ewere arụmụka n'ụdị ọ bụla - ọnụọgụ, vectors, matrices, ndepụta - na a na-atụ anya na onye mmemme ga-emejuputa mmemme ahụ dị ka ọrụ nhazi. N'asụsụ dị otú ahụ, ọ bụrụ na ị gbakwunye vector abụọ nke otu nde ọcha, ọ dịghịzi mkpa na a na-atụgharị asụsụ ahụ; mgbakwunye a ga-arụ ọrụ ọnụọgụ abụọ kachasị mma. Ebe ọ bụ na akụkụ ọdụm nke oge na mmemme Q na-eji arụ ọrụ na tebụl na-eji ọrụ ndị a bụ isi vectorized, mmepụta bụ ezigbo ọsọ na-arụ ọrụ, na-enye anyị ohere ịhazi nnukwu data ọbụna n'otu usoro. Nke a yiri ọba akwụkwọ mgbakọ na mwepụ na Python - ọ bụ ezie na Python n'onwe ya bụ asụsụ na-adịghị ngwa ngwa, o nwere ọtụtụ ọba akwụkwọ mara mma dị ka numpy na-enye gị ohere ịhazi data ọnụọgụ na ọsọ nke asụsụ achịkọtara (n'agbanyeghị, numpy dị nso na Q. ).
 
Tụkwasị na nke ahụ, KX ji nlezianya mee ụzọ maka ịmepụta tebụl na ịkwalite ọrụ na ha. Nke mbụ, a na-akwado ọtụtụ ụdị index, nke a na-akwado site na ọrụ arụnyere ma nwee ike tinye ya ọ bụghị naanị na ogidi tebụl, kamakwa na vector ọ bụla - nchịkọta, nhazi, àgwà pụrụ iche na nchịkọta pụrụ iche maka nchekwa data akụkọ ihe mere eme. A na-etinye index ahụ n'ụzọ dị mfe ma na-edozi ya ozugbo mgbe ị na-agbakwunye ihe na kọlụm/vector. Enwere ike itinye ndenye aha nke ọma na kọlụm tebụl ma na ebe nchekwa ma na diski. Mgbe ị na-eme ajụjụ QSQL, a na-eji ndeksi na-akpaghị aka ma ọ bụrụ na ọ ga-ekwe omume. Nke abuo, a na-arụ ọrụ na data akụkọ ihe mere eme site na usoro maka igosipụta faịlụ OS (maapụ ebe nchekwa). Ọ dịghị mgbe a na-ebunye tebụl buru ibu na ebe nchekwa; kama nke ahụ, a na-edepụta ogidi ndị dị mkpa ozugbo na ebe nchekwa ma ọ bụ naanị akụkụ nke ha ka a na-etinye n'ezie (index index na-enyekwa aka ebe a) dị mkpa. Ọ nweghị ihe dị iche na onye mmemme ma data ahụ dị na ebe nchekwa ma ọ bụ na ọ bụghị; A na-ezobe usoro maka ịrụ ọrụ na mmap kpamkpam n'ime omimi Q.
 
KDB+ abụghị nchekwa data mmekọrịta; tebụl nwere ike ịnwe data aka ike, ebe usoro ahịrị dị na tebụl anaghị agbanwe mgbe agbakwunyere ihe ọhụrụ na enwere ike iji ya mee ihe mgbe ị na-ede ajụjụ. Njirimara a dị mkpa ngwa ngwa maka ịrụ ọrụ na usoro oge (data sitere na mgbanwe, telemetry, ndekọ ihe omume), n'ihi na ọ bụrụ na a na-ahazi data ahụ site na oge, mgbe ahụ onye ọrụ adịghị mkpa iji aghụghọ SQL ọ bụla chọta nke mbụ ma ọ bụ ikpeazụ ahịrị ma ọ bụ N. ahịrị na tebụl, chọpụta nke na-esote ahịrị Nth, wdg. A na-eme ka njikọ tebụl dị mfe ọbụna n'ihu, dịka ọmụmaatụ, ịchọta njedebe ikpeazụ maka azụmahịa 16000 VOD.L (Vodafone) na tebụl nke ihe dị ka nde 500 na-ewe ihe dị ka sekọnd na diski na iri milliseconds na ebe nchekwa.
 
Ihe atụ nke oge ijikọ - a na-edepụta tebụl nrịbama na ebe nchekwa, n'ihi ya, ọ dịghị mkpa ịkọwapụta VOD.L na ebe, ntinye aka na kọlụm sym na eziokwu ahụ bụ na a na-ahazi data site na oge. Ihe fọrọ nke nta ka ọ bụrụ njikọ niile na Q bụ ọrụ oge niile, ọ bụghị akụkụ nke okwu ahọpụtara:

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

N'ikpeazụ, ọ dị mma ịmara na ndị injinia na KX, malite na Arthur Whitney n'onwe ya, na-enwe mmasị n'ezie na ịrụ ọrụ nke ọma ma na-agbasi mbọ ike iji nweta ihe kachasị mma na njirimara ọkọlọtọ Q ma na-ebuli usoro eji eme ihe.
 

Nsonaazụ

KDB+ bụ ihe a ma ama n'etiti azụmaahịa bụ isi n'ihi ike ya dị iche iche - ọ na-arụ ọrụ nke ọma yana nchekwa data nchekwa, dị ka nchekwa data maka ịchekwa terabytes nke data akụkọ ihe mere eme, yana dịka ikpo okwu maka nyocha data. N'ihi n'eziokwu na nhazi data na-eme ozugbo na nchekwa data, a na-enweta oke ọsọ nke ọrụ na nchekwa akụ. Asụsụ mmemme zuru oke jikọtara ya na ọrụ nchekwa data na-enye gị ohere imejuputa usoro niile dị mkpa n'otu ikpo okwu - site na ịnweta data ruo nhazi arịrịọ onye ọrụ.
 

Maka ozi ọzọ,

-adịghị emezi emezi

Ọdịmma dị ukwuu nke KDB+/Q bụ ọnụ ụzọ ntinye dị elu. Asụsụ ahụ nwere syntax dị ịtụnanya, ụfọdụ ọrụ na-ebubigara ya ókè (uru, dịka ọmụmaatụ, nwere ihe dịka ikpe 11). Nke kachasị mkpa, ọ chọrọ ụzọ dị iche iche maka ide mmemme. N'asụsụ vector, ị ga-echerịrị echiche n'usoro mgbanwe n'usoro, mejuputa loops niile site na ụdị dị iche iche nke maapụ/belata ọrụ (nke a na-akpọ adverbs na Q), ma ghara ịgbalị ịchekwa ego site na iji nke atọ dochie vector arụmọrụ. Dịka ọmụmaatụ, ka ịchọta ndepụta Nth nke ihe mmewere na nhazi, ị ga-ede:

1. (where element=vector)[N]  

ọ bụ ezie na nke a yiri ka ọ naghị arụ ọrụ nke ọma site n'ụkpụrụ C/Java (= na-emepụta vector boolean, ebe na-eweghachite ezi indexes nke ihe ndị dị na ya). Mana nkọwapụta a na-eme ka nkọwa okwu ahụ pụta ìhè ma ị na-eji arụmọrụ vector ngwa ngwa kama iji ngwa ngwa atomiki. Ọdịiche echiche dị n'etiti asụsụ vector na ndị ọzọ bụ ihe atụnyere ọdịiche dị n'etiti ụzọ dị mkpa na nke arụrụ ọrụ maka mmemme, yana ịkwesịrị ịdị njikere maka nke a.
 
Ụfọdụ ndị ọrụ enweghịkwa obi ụtọ na QSQL. Isi ihe bụ na ọ dị ka ezigbo SQL. N'ezie, ọ bụ naanị ntụgharị okwu nke SQL nke anaghị akwado njikarịcha ajụjụ. Onye ọrụ ga-ederịrị ajụjụ kachasị mma n'onwe ya, yana na Q, nke ọtụtụ ndị adịghị njikere maka ya. N'aka nke ọzọ, n'ezie, ị nwere ike dee ajụjụ kachasị mma n'onwe gị, kama ịdabere na njikarịcha igbe ojii.
 
Dịka mgbakwunye, akwụkwọ dị na Q-Q For Mortals dị n'efu na webụsaịtị ụlọ ọrụ, e nwekwara ọtụtụ ihe ndị ọzọ bara uru anakọtara n'ebe ahụ.
 
Nnukwu ọghọm ọzọ bụ ọnụ ahịa ikike. Nke ahụ bụ iri puku kwuru iri puku dollar kwa afọ kwa CPU. Naanị nnukwu ụlọ ọrụ nwere ike ịkwụ ụgwọ dị otú ahụ. N'oge na-adịbeghị anya, KX emewo ka amụma ikikere ya gbanwee ma na-enye ohere ịkwụ ụgwọ naanị maka oge eji ma ọ bụ gbazite KDB+ n'ime igwe ojii Google na Amazon. KX na-enyekwa maka nbudata ụdị n'efu maka ebumnuche na-abụghị nke azụmahịa (ụdị 32-bit ma ọ bụ 64-bit na-arịọ).
 

Ndị asọmpi

Enwere ọdụ data ole na ole pụrụ iche wuru na ụkpụrụ ndị yiri ya - columnar, in-memory, lekwasịrị anya na nnukwu data. Nsogbu bụ na ndị a bụ ọdụ data pụrụ iche. Ihe atụ pụtara ìhè bụ Clickhouse. Ebe nchekwa data a nwere ụkpụrụ yiri nke ahụ na KDB+ maka ịchekwa data na diski na ịmepụta ndeksi; ọ na-eme ụfọdụ ajụjụ ngwa ngwa karịa KDB+, n'agbanyeghị na ọ bụghị nke ukwuu. Ma ọbụna dị ka nchekwa data, Clickhouse bụ ọkachamara karịa KDB + - nchịkọta weebụ vs usoro oge aka ike (iche a dị ezigbo mkpa - n'ihi ya, dịka ọmụmaatụ, na Clickhouse ọ gaghị ekwe omume iji nhazi ndekọ). Mana, nke kachasị mkpa, Clickhouse enweghị ikike nke KDB +, asụsụ nke ga-enye ohere nhazi data ozugbo na nchekwa data, kama ibunye ya na mbụ n'ime ngwa dị iche, wulite okwu SQL na-ezighi ezi, itinye ọrụ aka ike na ajụjụ, imepụta usoro. emetụtaghị mmezu nke ọrụ nchekwa data akụkọ ihe mere eme. Ya mere, ọ na-esiri ike iji KDB + tụnyere ọdụ data ndị ọzọ; ha nwere ike ịka mma n'ọnọdụ ụfọdụ ma ọ bụ dị nnọọ mma ma a bịa n'ihe gbasara ọrụ nchekwa data oge ochie, mana amaghị m nke ọzọ dị irè ma dị irè maka nhazi data nwa oge.
 

Ngwakọta Python

Iji mee ka KDB+ dịkwuo mfe iji maka ndị na-amaghị teknụzụ, KX kere ọba akwụkwọ iji jikọta Python nke ọma n'ime otu usoro. Ị nwere ike ịkpọ ọrụ Python ọ bụla site na Q, ma ọ bụ ọzọ - kpọọ ọrụ Q ọ bụla sitere na Python (karịsịa, okwu QSQL). Ọbá akwụkwọ na-atụgharị, ma ọ bụrụ na ọ dị mkpa (ọ bụghị mgbe niile maka ịrụ ọrụ nke ọma), data sitere na usoro nke otu asụsụ gaa n'ụdị nke ọzọ. N'ihi ya, Q na Python na-ebi na ụdị symbiosis dị nso nke na oke n'etiti ha na-agbaji. N'ihi ya, onye mmemme, n'otu aka ahụ, nwere ohere zuru oke na ọtụtụ ọba akwụkwọ Python bara uru, n'aka nke ọzọ, ọ na-enweta ngwa ngwa ngwa maka ịrụ ọrụ na nnukwu data etinyere na Python, nke bara uru karịsịa maka ndị na-etinye aka na mmụta igwe. ma ọ bụ ihe nlereanya.
 
Na-arụ ọrụ na Q na 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')  

zoro

Saịtị nke ụlọ ọrụ ahụ - https://kx.com/
Weebụsaịtị maka ndị mmepe - https://code.kx.com/v2/
Akwụkwọ Q For Mortals (na Bekee) - https://code.kx.com/q4m3/
Akụkọ gbasara ngwa KDB+/Q sitere n'aka ndị ọrụ kx - https://code.kx.com/v2/wp/

isi: www.habr.com

Tinye a comment