KDB+ database: daga kudi zuwa Formula 1

KDB+, samfurin kamfani KX sananne ne a cikin kunkuntar da'irori, mai saurin gaske, ma'ajin bayanai na columnar da aka tsara don adana jerin lokaci da ƙididdigar ƙididdiga bisa su. Da farko, ya kasance (kuma yana da) shahara sosai a cikin masana'antar hada-hadar kuɗi - duk manyan bankunan saka hannun jari 10 da sanannun kuɗaɗen shinge, musayar da sauran ƙungiyoyi suna amfani da shi. Kwanan nan, KX ya yanke shawarar fadada tushen abokin ciniki kuma yanzu yana ba da mafita a wasu wurare inda akwai adadi mai yawa, wanda aka tsara ta lokaci ko akasin haka - telecom, bioinformatics, masana'antu, da dai sauransu. Sun kuma zama abokin tarayya na ƙungiyar Aston Martin Red Bull Racing a cikin Formula 1, inda suke taimakawa tattarawa da sarrafa bayanai daga na'urori masu auna mota da kuma nazarin gwajin ramin iska. A cikin wannan labarin, ina so in gaya muku abin da fasali na KDB + ya sa ya zama babban aiki, dalilin da yasa kamfanoni ke shirye su kashe kuɗi da yawa akan shi, kuma a ƙarshe, me yasa ba ainihin tushen bayanai bane.
 
KDB+ database: daga kudi zuwa Formula 1
 
A cikin wannan labarin zan yi ƙoƙarin gaya muku gabaɗaya abin da KDB + yake, menene iya aiki da iyakokinsa, da kuma menene fa'idodinsa ga kamfanoni waɗanda ke son aiwatar da manyan bayanai. Ba zan shiga cikin cikakkun bayanai game da aiwatar da KDB+ ko cikakkun bayanai game da yaren shirye-shiryensa na Q ba. Duk waɗannan batutuwa biyun suna da faɗi sosai kuma sun cancanci labarai daban-daban. Ana iya samun bayanai da yawa akan waɗannan batutuwa a code.kx.com, gami da littafi akan Q - Q Don Mutuwa (duba hanyar haɗin da ke ƙasa).

Wasu sharuddan

  • In-memory database. Database wanda ke adana bayanai a cikin RAM don shiga cikin sauri. Amfanin irin wannan bayanan a bayyane yake, amma rashin amfani shine yiwuwar asarar bayanai da kuma buƙatar samun ƙwaƙwalwar ajiya mai yawa akan uwar garke.
  • Rukunin bayanai. Database inda aka adana bayanai shafi ta shafi maimakon yin rikodi. Babban fa'idar irin wannan ma'adanar ita ce, ana adana bayanai daga ginshiƙi ɗaya tare a kan faifai da kuma cikin ma'adana, wanda ke hanzarta isa gare shi. Babu buƙatar loda ginshiƙai waɗanda ba a yi amfani da su a cikin tambayar ba. Babban hasara shi ne cewa yana da wahala a gyara da share bayanan.
  • Jerin lokaci. Bayanai tare da ginshiƙin kwanan wata ko lokaci. Yawanci, odar lokaci yana da mahimmanci ga irin waɗannan bayanan, ta yadda zaku iya tantance ko wane rikodi ya rigaya ko ya bi na yanzu, ko kuma amfani da ayyukan da sakamakonsu ya dogara da tsarin bayanan. An gina rumbun adana bayanai na gargajiya akan wata ka'ida ta mabambanta - wakiltar tarin bayanai a matsayin saiti, inda tsarin bayanan yake, bisa manufa, ba a bayyana shi ba.
  • Vector. A cikin mahallin KDB+, wannan jerin abubuwa ne na nau'in atomic iri ɗaya, misali, lambobi. A wasu kalmomi, tsararrun abubuwa. Tsare-tsare, ba kamar lissafi ba, ana iya adana su cikin ƙanƙanta da sarrafa su ta amfani da umarnin sarrafa kayan aikin vector.

 

Tarihin Tarihin

An kafa KX a cikin 1993 ta Arthur Whitney, wanda a baya ya yi aiki a Bankin Morgan Stanley akan yaren A+, magajin APL - ainihin asali kuma a wani lokaci sanannen harshe a cikin duniyar kuɗi. Tabbas, a cikin KX, Arthur ya ci gaba a cikin ruhu ɗaya kuma ya haifar da harshe mai aiki na vector K, wanda ra'ayoyin ra'ayoyin minimalism ke jagoranta. K shirye-shiryen suna kama da guntun rubutu da haruffa na musamman, ma'anar alamomi da ayyuka sun dogara da mahallin, kuma kowane aiki yana ɗaukar ma'ana fiye da yadda yake da shi a cikin harsunan shirye-shirye na al'ada. Saboda wannan, shirin K yana ɗaukar ƙaramin sarari - ƴan layukan na iya maye gurbin shafukan rubutu a cikin yaren fi'ili kamar Java - kuma babban aiwatar da algorithm ne.
 
Aiki a cikin K wanda ke aiwatar da yawancin janareta na LL1 bisa ga nahawu da aka bayar:

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 ya ƙunshi wannan falsafar ingantaccen inganci tare da ƙaramin motsi na jiki a cikin KDB +, wanda ya bayyana a cikin 2003 (Ina tsammanin yanzu ya bayyana a sarari inda harafin K a cikin sunan ya fito) kuma ba komai bane face mai fassara na sigar huɗu na K. Harshe.An ƙara ƙarin sigar abokantaka mai amfani a saman K K mai suna Q.Q kuma an ƙara goyan bayan takamaiman yare na SQL - QSQL, da mai fassara - tallafi don tebur azaman nau'in bayanan tsarin, kayan aikin aiki tare da tebur. a ƙwaƙwalwar ajiya da kan faifai, da sauransu.
 
Don haka daga hangen mai amfani, KDB+ shine kawai mai fassarar harshe Q tare da goyan bayan tebur da maganganun SQL-kamar LINQ daga C#. Wannan shine mafi mahimmancin bambanci tsakanin KDB+ da sauran bayanan bayanai da kuma babban fa'idarsa ta gasa, wanda galibi ana mantawa da shi. Wannan ba ma'ajin bayanai bane + naƙasassun harshe na taimako, amma cikakken yaren shirye-shirye mai ƙarfi + ginanniyar tallafi don ayyukan bayanai. Wannan bambanci zai taka muhimmiyar rawa wajen jera duk fa'idodin KDB+. Misali…
 

size

Ta hanyar ma'auni na zamani, KDB+ shine kawai ƙananan ƙananan girman girman. A zahiri babban fayil ne na ƙananan megabyte guda ɗaya da ƙaramin fayil ɗin rubutu guda ɗaya tare da wasu ayyukan tsarin. A gaskiya - kasa da megabyte ɗaya, kuma ga wannan shirin kamfanoni suna biyan dubun dubatar daloli a shekara don mai sarrafawa ɗaya akan uwar garke.

  • Wannan girman yana ba KDB+ damar jin daɗi akan kowane kayan masarufi - daga microcomputer na Pi zuwa sabobin tare da terabytes na ƙwaƙwalwar ajiya. Wannan baya shafar aikin ta kowace hanya; haka kuma, Q yana farawa nan take, wanda ke ba da damar amfani da shi, a tsakanin sauran abubuwa, azaman yaren rubutu.
  • A wannan girman, mai fassarar Q ya dace gabaɗaya a cikin cache ɗin sarrafawa, wanda ke hanzarta aiwatar da shirin.
  • Tare da wannan girman fayil ɗin da za a iya aiwatarwa, tsarin Q yana ɗaukar sarari mara kyau a ƙwaƙwalwar ajiya; zaku iya gudanar da ɗaruruwan su. Bugu da ƙari, idan ya cancanta, Q na iya aiki tare da dubun ko ɗaruruwan gigabytes na ƙwaƙwalwar ajiya a cikin tsari guda.

Versatility

Q yana da kyau don aikace-aikace da yawa. Tsarin Q na iya aiki azaman bayanan tarihi kuma yana ba da dama ga bayanan terabyte cikin sauri. Misali, muna da tarin bayanai na tarihi, wanda a wasu daga cikinsu, rana daya da ba a takura ba, tana daukar sama da gigabytes 100. Koyaya, ƙarƙashin ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai, za a kammala tambayar ma'ajin bayanai a cikin dubun zuwa ɗaruruwan millise seconds. Gabaɗaya, muna da lokacin gama duniya don buƙatun mai amfani - 30 seconds - kuma yana aiki da wuya.
 
Q zai iya zama sauƙin zama bayanan ƙwaƙwalwar ajiya. Ana ƙara sabbin bayanai zuwa tebur na ƙwaƙwalwar ajiya da sauri ta yadda buƙatun mai amfani su ne maƙasudin iyakance. Ana adana bayanai a cikin allunan a cikin ginshiƙai, wanda ke nufin duk wani aiki akan ginshiƙi zai yi amfani da cache ɗin mai sarrafawa a cikakken iko. Baya ga wannan, KX ya yi ƙoƙarin aiwatar da duk wani aiki na yau da kullun kamar lissafi ta hanyar umarnin mai sarrafawa, yana haɓaka saurin su. Q kuma yana iya yin ayyukan da ba na al'ada ba don bayanan bayanai - alal misali, aiwatar da bayanan yawo da ƙididdigewa a cikin "ainihin lokaci" (tare da jinkiri daga dubun mil seconds zuwa daƙiƙa da yawa dangane da aikin) ayyuka daban-daban don kayan aikin kuɗi na lokaci daban-daban. tazara ko gina samfurin tasiri na cikakkiyar ma'amala zuwa kasuwa da aiwatar da bayanan sa kusan nan da nan bayan kammala ta. A irin waɗannan ayyuka, galibi babban jinkirin lokaci ba Q bane, amma buƙatar daidaita bayanai daga tushe daban-daban. Ana samun babban gudu saboda gaskiyar cewa bayanai da ayyukan da ke sarrafa su suna cikin tsari guda ɗaya, kuma ana rage sarrafa su zuwa aiwatar da wasu kalmomin QSQL da haɗawa, waɗanda ba a fassara su ba, amma ana aiwatar da su ta hanyar binary code.
 
A ƙarshe, zaku iya rubuta kowane tsarin sabis a cikin Q. Misali, Ayyukan Gateway wanda ke rarraba buƙatun mai amfani ta atomatik zuwa mahimman bayanai da sabar. Mai tsara shirye-shirye yana da cikakkiyar 'yanci don aiwatar da kowane algorithm don daidaitawa, fifiko, haƙurin kuskure, haƙƙin samun dama, ƙididdiga da ainihin duk wani abu da zuciyarsa ke so. Babban matsala a nan shi ne cewa za ku aiwatar da wannan duka da kanku.
 
A matsayin misali, zan lissafa nau'ikan hanyoyin da muke da su. Dukansu ana amfani da su sosai kuma suna aiki tare, suna haɗa dumbin bayanai daban-daban zuwa ɗaya, sarrafa bayanai daga maɓuɓɓuka da yawa da kuma hidimar ɗaruruwan masu amfani da aikace-aikace.

  • Masu haɗawa (mai ba da abinci) zuwa tushen bayanai. Waɗannan matakan yawanci suna amfani da ɗakunan karatu na waje waɗanda aka ɗora su cikin Q. C interface a Q abu ne mai sauƙi kuma yana ba ku damar ƙirƙirar ayyukan wakili cikin sauƙi ga kowane ɗakin karatu na C/C++. Q yana da sauri don ɗauka, misali, sarrafa ambaliya na FIX saƙonni daga duk musayar hannun jari na Turai lokaci guda.
  • Masu rarraba bayanai (tickerplant), wanda ke aiki azaman tsaka-tsaki tsakanin masu haɗawa da masu amfani. A lokaci guda, suna rubuta bayanan mai shigowa zuwa log ɗin binary na musamman, yana ba da ƙarfi ga masu amfani akan asarar haɗin gwiwa ko sake farawa.
  • In-memory database (rdb). Waɗannan ma'ajin bayanai suna ba da damar mafi sauri zuwa ga danye, sabobin bayanai ta hanyar adana su cikin ƙwaƙwalwar ajiya. Yawanci, suna tara bayanai a cikin tebura yayin rana kuma suna sake saita su da dare.
  • Dagewar bayanai (pdb). Waɗannan ma'ajin bayanai suna tabbatar da cewa an adana bayanan yau a cikin ma'ajin bayanai na tarihi. A matsayinka na mai mulki, ba kamar rdb ba, ba sa adana bayanai a cikin ƙwaƙwalwar ajiya, amma suna amfani da cache na musamman akan faifai a lokacin rana da kwafi bayanan da tsakar dare zuwa bayanan tarihi.
  • Bayanan tarihi (hdb). Waɗannan ma'ajin bayanai suna ba da damar samun bayanai na kwanakin baya, watanni da shekaru. Girman su (a cikin kwanaki) yana iyakance ne kawai ta girman girman rumbun kwamfutarka. Ana iya samun bayanai a ko'ina, musamman akan faifai daban-daban don hanzarta shiga. Yana yiwuwa a damfara bayanai ta amfani da algorithms da yawa don zaɓar daga. Tsarin tsarin bayanan yana da kyau kuma yana da sauƙi, ana adana bayanan shafi ta shafi a cikin fayiloli na yau da kullum, don haka ana iya sarrafa su, ciki har da ta hanyar tsarin aiki.
  • Databases tare da tara bayanai. Suna adana tari daban-daban, yawanci tare da, an haɗa su ta sunan kayan aiki da tazarar lokaci. Rukunin bayanan da ke cikin ƙwaƙwalwar ajiya suna sabunta jiharsu tare da kowane saƙo mai shigowa, kuma ma'ajin bayanai na tarihi suna adana bayanan da aka riga aka ƙirga don hanzarta samun bayanan tarihi.
  • A ƙarshe hanyoyin ƙofaaikace-aikacen sabis da masu amfani. Q yana ba ku damar aiwatar da sarrafa saƙon masu shigowa gaba ɗaya asynchronous, rarraba su cikin ma'ajin bayanai, duba haƙƙin shiga, da sauransu. Lura cewa saƙonni ba su da iyaka kuma galibi ba maganganun SQL ba ne, kamar yadda yake a cikin sauran bayanan bayanai. Mafi sau da yawa, SQL magana yana ɓoye a cikin wani aiki na musamman kuma an gina shi bisa ga sigogin da mai amfani ya buƙaci - an canza lokaci, tacewa, an daidaita bayanai (misali, farashin hannun jari yana daidaita idan an biya rabo), da dai sauransu.

Tsarin gine-gine na yau da kullun don nau'in bayanai guda ɗaya:

KDB+ database: daga kudi zuwa Formula 1

Speed

Ko da yake Q harshe ne da aka fassara, shi ma harshen vector ne. Wannan yana nufin yawancin ayyukan da aka gina a ciki, musamman na lissafi, suna ɗaukar gardama ta kowace hanya - lambobi, vectors, matrices, lists - kuma ana sa ran mai shirye-shiryen aiwatar da shirin a matsayin ayyukan tsararru. A cikin irin wannan harshe, idan kun ƙara nau'i biyu na abubuwa miliyan ɗaya, ba shi da mahimmanci cewa an fassara harshen; ƙarin za a yi ta hanyar ingantaccen aikin binary. Tunda kaso na zaki na lokaci a cikin shirye-shiryen Q ana kashewa akan aiki tare da teburi waɗanda ke amfani da waɗannan mahimman ayyuka na vectorized, fitarwa shine ingantaccen saurin aiki, yana ba mu damar aiwatar da adadi mai yawa na bayanai ko da a cikin tsari ɗaya. Wannan yayi kama da dakunan karatu na ilmin lissafi a Python - duk da cewa Python shi kansa harshe ne a hankali, yana da kyawawan ɗakunan karatu da yawa kamar numpy waɗanda ke ba ku damar sarrafa bayanan lambobi cikin saurin harshe da aka haɗa (a hanya, numpy yana kusa da Q a akida. ).
 
Bugu da ƙari, KX ya ɗauki hankali sosai don tsara tebur da inganta aiki tare da su. Da fari dai, ana tallafawa nau'ikan fihirisa da yawa, waɗanda ke goyan bayan ayyukan ginannun kuma ana iya amfani da su ba kawai a kan ginshiƙan tebur ba, har ma ga kowane nau'in ɓarna - haɗawa, rarrabuwa, sifa na musamman da ƙungiyoyi na musamman don bayanan bayanan tarihi. Ana amfani da fihirisar a sauƙaƙe kuma ana daidaita ta ta atomatik lokacin ƙara abubuwa zuwa shafi/vector. Hakanan za'a iya amfani da fihirisa daidai gwargwado a kan ginshiƙan tebur duka a cikin ƙwaƙwalwar ajiya da akan faifai. Lokacin aiwatar da tambayar QSQL, ana amfani da fihirisa ta atomatik idan zai yiwu. Na biyu, ana yin aiki tare da bayanan tarihi ta hanyar hanyar nuna fayilolin OS (taswirar ƙwaƙwalwar ajiya). Ba a taɓa ɗora manyan teburi cikin ƙwaƙwalwar ajiya ba, maimakon haka, ginshiƙan da ake buƙata suna taswira kai tsaye zuwa ƙwaƙwalwar ajiya kuma kawai ɓangarensu ana ɗora su (ƙiƙai kuma suna taimakawa anan) waɗanda ake buƙata. Babu bambanci ga mai shirye-shiryen ko bayanan suna cikin ƙwaƙwalwar ajiya ko a'a; tsarin aiki tare da mmap yana ɓoye gaba ɗaya a cikin zurfin Q.
 
KDB+ ba bayanan alaƙa ba ne; Tables na iya ƙunsar bayanan sabani, yayin da tsarin layuka a cikin tebur ba ya canzawa lokacin da aka ƙara sabbin abubuwa kuma ana iya kuma yakamata a yi amfani da su yayin rubuta tambayoyi. Ana buƙatar wannan fasalin cikin gaggawa don yin aiki tare da jerin lokaci (bayanai daga musayar, telemetry, rajistan ayyukan taron), saboda idan an tsara bayanan ta lokaci, to mai amfani baya buƙatar yin amfani da dabarun SQL don nemo layin farko ko na ƙarshe ko N. layuka a cikin tebur, ƙayyade wane layi ya bi layin Nth, da sauransu. Ana sauƙaƙa haɗin haɗin tebur har ma da ƙari, misali, gano ƙimar ƙarshe don 16000 VOD.L (Vodafone) ma'amala a cikin tebur mai abubuwa miliyan 500 yana ɗaukar kusan daƙiƙa guda akan faifai da dubun milliseconds a ƙwaƙwalwar ajiya.
 
Misalin haɗin lokaci - an tsara tebur ɗin ƙididdigewa zuwa ƙwaƙwalwar ajiya, don haka babu buƙatar saka VOD.L a inda, fihirisar kan alamar alama da gaskiyar cewa an jera bayanan ta lokaci ana amfani da su a fakaice. Kusan duk masu shiga cikin Q ayyuka ne na yau da kullun, ba ɓangare na zaɓin magana ba:

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

A ƙarshe, yana da kyau a lura cewa injiniyoyi a KX, waɗanda suka fara da Arthur Whitney da kansa, da gaske sun damu da iya aiki kuma suna yin tsayin daka don samun mafi kyawun fasalin fasalin Q da haɓaka mafi yawan tsarin amfani.
 

Sakamakon

KDB+ ya shahara tsakanin kasuwanci da farko saboda keɓancewar sa na musamman - yana aiki daidai da ma'aunin bayanan ƙwaƙwalwar ajiya, azaman bayanan adana terabyte na bayanan tarihi, kuma azaman dandamali don nazarin bayanai. Saboda gaskiyar cewa sarrafa bayanai yana faruwa kai tsaye a cikin ma'ajin bayanai, ana samun babban saurin aiki da tanadin albarkatu. Cikakken yaren shirye-shirye da aka haɗa tare da ayyukan bayanan bayanai yana ba ku damar aiwatar da duk matakan da suka dace akan dandamali ɗaya - daga karɓar bayanai zuwa sarrafa buƙatun mai amfani.
 

Don ƙarin bayani,

shortcomings

Babban hasara na KDB+/Q shine babban ƙofar shiga. Harshen yana da bakon rubutu, wasu ayyuka suna da nauyi sosai (daraja, alal misali, yana da kusan lokuta 11 na amfani). Mafi mahimmanci, yana buƙatar wata hanya ta daban don rubuta shirye-shirye. A cikin yaren vector, dole ne a koyaushe ku yi tunani game da sauye-sauyen tsararru, aiwatar da duk madaukai ta hanyar bambance-bambancen taswira da yawa/rage ayyuka (waɗanda ake kira adverbs a cikin Q), kuma kada ku taɓa ƙoƙarin adana kuɗi ta hanyar maye gurbin ayyukan vector da na atomatik. Misali, don nemo fihirisar Nth faruwar wani abu a cikin tsararru, ya kamata ka rubuta:

1. (where element=vector)[N]  

ko da yake wannan yana ganin ba shi da inganci ta ma'auni na C/Java (= yana haifar da vector na boolean, inda ya dawo da ainihin fihirisar abubuwan da ke cikinsa). Amma wannan bayanin yana ƙara bayyana ma'anar kalmar kuma kuna amfani da ayyukan vector masu sauri maimakon masu saurin atomic. Bambancin ra'ayi tsakanin harshen vector da sauransu yana kama da bambanci tsakanin hanyoyin da suka dace da aiki don tsara shirye-shirye, kuma kuna buƙatar yin shiri don wannan.
 
Wasu masu amfani kuma ba su ji daɗin QSQL ba. Ma'anar ita ce kawai yana kama da ainihin SQL. A zahiri, mai fassara ne kawai na maganganun SQL waɗanda baya goyan bayan haɓakar tambaya. Dole ne mai amfani ya rubuta mafi kyawun tambayoyin da kansa, kuma a cikin Q, waɗanda da yawa ba su shirya ba. A gefe guda, ba shakka, koyaushe zaka iya rubuta mafi kyawun tambaya da kanka, maimakon dogaro da na'urar inganta akwatin baka.
 
Bugu da kari, akwai littafi akan Q-Q Ga Mutuwa kyauta a kamfanin yanar gizon, akwai kuma sauran abubuwa masu amfani da yawa da aka tattara a wurin.
 
Wani babban hasara shine farashin lasisin. Wannan dubun duban daloli ne a kowace shekara a kowace CPU. Manyan kamfanoni ne kawai za su iya biyan irin waɗannan kuɗaɗen. Kwanan nan, KX ya sanya manufofin ba da izini ya zama mafi sassauƙa kuma yana ba da damar biya kawai don lokacin amfani ko hayar KDB+ a cikin gajimare na Google da Amazon. KX kuma yana bayarwa don saukewa sigar kyauta don dalilai ba na kasuwanci ba (32-bit version ko 64-bit akan buƙata).
 

Masu gasa

Akwai ƴan ƙayyadaddun bayanai na musamman da aka gina akan ƙa'idodi iri ɗaya - columnar, in-memory, wanda aka mayar da hankali kan ɗimbin bayanai. Matsalar ita ce waɗannan bayanai ne na musamman. Misali mai ban mamaki shine Clickhouse. Wannan ma'adanin yana da ka'ida mai kama da KDB+ don adana bayanai akan faifai da gina ƙididdiga; yana yin wasu tambayoyi da sauri fiye da KDB+, kodayake ba mahimmanci ba. Amma ko da a matsayin database, Clickhouse ya fi na musamman fiye da KDB + - web analytics vs sabani lokaci jerin (wannan bambanci yana da matukar muhimmanci - saboda shi, misali, a Clickhouse ba zai yiwu a yi amfani da oda na records). Amma, mafi mahimmanci, Clickhouse ba shi da versatility na KDB+, harshen da zai ba da damar sarrafa bayanai kai tsaye a cikin database, maimakon loda shi da farko a cikin wani daban-daban aikace-aikace, gina sabani SQL maganganu, amfani da sabani ayyuka a cikin tambaya, samar da matakai. ba ya da alaƙa da aiwatar da ayyukan bayanan tarihi. Don haka, yana da wahala a kwatanta KDB+ tare da sauran bayanan bayanai; suna iya zama mafi kyau a wasu lokuta masu amfani ko kuma mafi kyawu idan aka zo ga ayyukan adana bayanai na yau da kullun, amma ban san wani kayan aiki daidai da inganci kuma mai dacewa don sarrafa bayanan wucin gadi ba.
 

Haɗin Python

Don sauƙaƙe amfani da KDB+ ga mutanen da ba su san fasahar ba, KX ya ƙirƙiri dakunan karatu don haɗawa tare da Python a cikin tsari guda ɗaya. Kuna iya kiran kowane aikin Python daga Q, ko akasin haka - kiran kowane aikin Q daga Python (musamman, maganganun QSQL). Laburaren suna canza, idan ya cancanta (ba koyaushe don dacewa ba), bayanai daga tsarin harshe ɗaya zuwa tsarin wani. Sakamakon haka, Q da Python suna rayuwa a cikin kusancin symbiosis ta yadda iyakokin da ke tsakanin su ba su da kyau. A sakamakon haka, mai shirye-shiryen, a gefe guda, yana da cikakken damar yin amfani da ɗakunan karatu na Python masu amfani da yawa, a daya bangaren kuma, yana samun babban tushe don aiki tare da manyan bayanai da aka haɗa a cikin Python, wanda ke da amfani musamman ga masu hannu a ciki. koyon inji ko yin tallan kayan kawa.
 
Yin aiki tare da Q a cikin 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')  

nassoshi

Shafin kamfanin - https://kx.com/
Yanar Gizo don masu haɓakawa - https://code.kx.com/v2/
Littafin Q Don Mutuwa (a Turanci) - https://code.kx.com/q4m3/
Labarai kan aikace-aikacen KDB+/Q daga ma'aikatan kx - https://code.kx.com/v2/wp/

source: www.habr.com

Add a comment