Angon-drakitra KDB+: manomboka amin'ny vola mankany amin'ny Formula 1

KDB+, vokatra orinasa KX dia fanta-daza amin'ny faribolana tery, faran'izay haingana, angona tsanganana natao hitahirizana andiam-potoana sy kajy analytique mifototra amin'izy ireo. Tamin'ny voalohany dia nalaza be teo amin'ny indostrian'ny fitantanam-bola izy io - ny banky fampiasam-bola 10 ambony rehetra sy ny vola hedge, ny fifanakalozana ary ny fikambanana hafa malaza dia mampiasa azy io. Vao haingana, nanapa-kevitra ny hanitatra ny mpanjifany i KX ary manolotra vahaolana any amin'ny faritra hafa misy angon-drakitra be dia be, voalamina amin'ny fotoana na hafa - telecom, bioinformatics, manufacturing, sns. Lasa mpiara-miombon'antoka amin'ny ekipan'ny Aston Martin Red Bull Racing ao amin'ny Formula 1 ihany koa izy ireo, izay manampy amin'ny fanangonana sy fanodinana angon-drakitra avy amin'ny sensor fiara ary manadihady ny fitsapana ny tonelina rivotra. Ato amin'ity lahatsoratra ity, te-hilaza aminao aho hoe inona ny endri-javatra ao amin'ny KDB + mahatonga azy io ho tena mahomby, nahoana ny orinasa no vonona ny handany vola be amin'izany, ary farany, maninona no tsy tena angon-drakitra.
 
Angon-drakitra KDB+: manomboka amin'ny vola mankany amin'ny Formula 1
 
Amin'ity lahatsoratra ity dia hiezaka ny hilaza aminao amin'ny ankapobeny aho hoe inona ny KDB+, inona ny fahaiza-manaony sy ny fetra ananany, ary inona no tombony azony ho an'ireo orinasa te-hikarakara angon-drakitra betsaka. Tsy hiditra amin'ny antsipirihan'ny fampiharana ny KDB+ aho na ny antsipirihan'ny fiteny fandaharana Q. Ireo lohahevitra roa ireo dia tena midadasika ary mendrika lahatsoratra misaraka. Betsaka ny fampahalalana momba ireo lohahevitra ireo hita ao amin'ny code.kx.com, anisan'izany ny boky momba ny Q - Q For Mortals (jereo ny rohy eto ambany).

Terms sasany

  • angon-drakitra ao anaty fitadidiana. Angon-drakitra mitahiry angona ao amin'ny RAM mba hidirana haingana kokoa. Ny tombony amin'ny angon-drakitra toy izany dia mazava, fa ny tsy fahampiana dia ny mety hisian'ny fahaverezan'ny data sy ny filΓ na fitadidiana be dia be amin'ny server.
  • Database tsanganana. Angon-drakitra misy angona voatahiry tsanganana isaky ny tsanganana fa tsy firaketana an-tsoratra. Ny tombony lehibe amin'ny angon-drakitra toy izany dia ny fitahirizana angon-drakitra avy amin'ny tsanganana iray ao anaty kapila sy ao anaty fitadidiana, izay manafaingana ny fidirana amin'izany. Tsy ilaina ny mampiditra tsanganana tsy ampiasaina amin'ny fangatahana. Ny tena fatiantoka dia ny sarotra ny manova sy mamafa rakitra.
  • Andian-potoana. Data misy tsanganana daty na ora. Amin'ny ankapobeny, zava-dehibe ho an'ny angon-drakitra toy izany ny filaharan'ny fotoana, mba hahafahanao mamaritra mora foana hoe iza no firaketana mialoha na manaraka ny ankehitriny, na hampihatra asa izay miankina amin'ny filaharan'ny firaketana ny valiny. Ny angon-drakitra mahazatra dia miorina amin'ny fitsipika hafa tanteraka - maneho ny fitambaran'ny firaketana an-tsoratra, izay tsy voafaritra ny filaharan'ny firaketana.
  • Vector. Ao amin'ny tontolon'ny KDB+, ity dia lisitry ny singa mitovy karazana atomika, ohatra, isa. Raha lazaina amin'ny teny hafa, andiana singa. Ny arrays, tsy toy ny lisitra, dia azo tehirizina sy karakaraina amin'ny alΓ lan'ny torolalana amin'ny processeur vector.

 

Historical Background

KX dia naorin'i Arthur Whitney tamin'ny taona 1993, izay niasa tao amin'ny Morgan Stanley Bank teo aloha tamin'ny fiteny A+, ny mpandimby ny APL - fiteny tena tany am-boalohany ary tamin'ny fotoana nalaza teo amin'ny tontolon'ny vola. Mazava ho azy, tao amin'ny KX, i Arthur dia nanohy tamin'ny fanahy iray ihany ary namorona ny fiteny vector-functional K, tarihin'ny hevitra momba ny minimalism radical. Ny fandaharana K dia toa fitambaran'ny mari-piatoana sy tarehin-tsoratra manokana, ny dikan'ny famantarana sy ny fiasa dia miankina amin'ny teny manodidina, ary ny fandidiana tsirairay dia mitondra dikany bebe kokoa noho ny amin'ny fiteny fandaharana mahazatra. Noho izany, ny programa K dia maka toerana kely indrindra β€” andalana vitsivitsy dia afaka manolo ny pejin'ny lahatsoratra amin'ny fiteny verbose toa an'i Java β€” ary fampiharana tena mifantoka amin'ny algorithm.
 
Asa ao amin'ny K izay mampihatra ny ankamaroan'ny LL1 parser generator araka ny fitsipi-pitenenana nomena:

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 dia nampiditra io filΓ΄zΓ΄fian'ny fahombiazana faran'izay henjana io miaraka amin'ny fihetsiketseham-batana faran'izay kely indrindra ao amin'ny KDB+, izay niseho tamin'ny 2003 (heveriko fa mazava izao hoe avy aiza ny litera K amin'ny anarana) ary tsy inona fa mpandika teny amin'ny dikan-teny fahefatra amin'ny K. Ny dikan-teny mora kokoa ho an'ny mpampiasa dia nampiana teo an-tampon'ny K K antsoina hoe Q. Q koa dia nanampy fanohanana ny fitenim-paritra manokana an'ny SQL - QSQL, ary ny mpandika teny - fanohanana ny latabatra ho karazana angona rafitra, fitaovana ho an'ny fiasana amin'ny latabatra. amin'ny fitadidiana sy amin'ny kapila, sns.
 
Noho izany, amin'ny fomba fijerin'ny mpampiasa, ny KDB+ dia mpandika teny Q tsotra miaraka amin'ny fanohanana ny latabatra sy ny fomba fiteny LINQ mitovy amin'ny SQL avy amin'ny C#. Io no fahasamihafana lehibe indrindra eo amin'ny KDB+ sy ny angon-drakitra hafa ary ny tombony lehibe indrindra amin'ny fifaninanana, izay matetika atao tsinontsinona. Tsy angon-drakitra + tenim-pampiampy kilemaina ity, fa fiteny fandaharana mahery vaika + fanohanana naorina ho an'ny fiasan'ny database. Ity fanavahana ity dia hanana anjara toerana lehibe amin'ny fitanisana ny tombontsoa rehetra ananan'ny KDB+. Ohatra…
 

habe

Araka ny fenitra maoderina, ny KDB+ dia bitika kely fotsiny. Izy io dia rakitra azo tanterahana sub-megabyte ara-bakiteny ary rakitra lahatsoratra kely miaraka amin'ny fiasan'ny rafitra sasany. Raha ny marina - latsaky ny iray megabyte, ary ho an'ity programa ity dia mandoa dolara an'aliny isan-taona ny orinasa ho an'ny processeur iray ao amin'ny server.

  • Io habe io dia ahafahan'ny KDB+ mahatsapa tsara amin'ny fitaovana rehetra - manomboka amin'ny microcomputer Pi ka hatramin'ny mpizara manana fitadidiana terabytes. Tsy misy fiantraikany amin'ny fampandehanana izany na amin'ny fomba ahoana na amin'ny fomba rehetra; ankoatr'izay, manomboka avy hatrany ny Q, izay mamela azy hampiasaina, ankoatra ny zavatra hafa, ho fiteny fanoratana.
  • Amin'io habeny io, ny mpandika teny Q dia mifanaraka tanteraka amin'ny cache processeur, izay manafaingana ny fanatanterahana ny programa.
  • Miaraka amin'io haben'ny rakitra azo tanterahana io, ny fizotran'ny Q dia maka toerana tsinontsinona ao anaty fitadidiana; azonao atao ny mihazakazaka an-jatony. Ankoatra izany, raha ilaina, Q dia afaka miasa amin'ny am-polony na an-jatony gigabytes fahatsiarovana ao anatin'ny dingana iray.

javatra iray

Q dia tsara ho an'ny fampiharana isan-karazany. Ny process Q dia afaka miasa toy ny angon-drakitra ara-tantara ary manome fidirana haingana amin'ny terabytes vaovao. Ohatra, manana angon-drakitra ara-tantara am-polony isika, ary ny sasany amin'izy ireo dia mitaky mihoatra ny 100 gigabytes ny andro iray tsy voafehy. Na izany aza, ao anatin'ny fameperana ara-drariny, ny fangatahana ny angon-drakitra dia ho vita ao anatin'ny folo ka hatramin'ny an-jatony milliseconds. Amin'ny ankapobeny, manana fe-potoana manerantany ho an'ny fangatahan'ny mpampiasa isika - 30 segondra - ary tena mahalana izy io.
 
Ny Q dia mety ho angon-drakitra ao anaty fitadidiana mora foana. Ny angona vaovao dia ampiana amin'ny latabatra ao anaty fitadidiana haingana dia haingana ka ny fangatahan'ny mpampiasa no mametra. Ny angon-drakitra ao anaty tabilao dia voatahiry ao anaty tsanganana, izay midika fa ny asa rehetra amin'ny tsanganana dia hampiasa ny cache processeur amin'ny fahafaha-manao feno. Ho fanampin'izany, KX dia nanandrana nampihatra ny asa fototra rehetra toy ny arithmetika amin'ny alΓ lan'ny torolΓ lana vector amin'ny processeur, izay mampitombo ny hafainganam-pandehany. Q dia afaka manao asa tsy mahazatra amin'ny angon-drakitra - ohatra, manodina ny angon-drakitra mivantana ary manao kajy amin'ny "fotoana tena izy" (miaraka amin'ny fahatarana avy amin'ny milisegondra am-polony ka hatramin'ny segondra maromaro miankina amin'ny asa) fiasa fanangonana isan-karazany ho an'ny fitaovana ara-bola mandritra ny fotoana samihafa. elanelam-potoana na manangana modely amin'ny fiantraikan'ny fifampiraharahana tonga lafatra amin'ny tsena ary manatanteraka ny mombamomba azy saika avy hatrany aorian'ny fahavitan'izany. Amin'ny asa toy izany, matetika ny fanemorana ny fotoana lehibe dia tsy Q, fa ny filΓ na synchronize angona avy amin'ny loharano samihafa. Ny hafainganam-pandeha avo dia tratra noho ny zava-misy fa ny angon-drakitra sy ny asa izay mampandeha azy ireo dia ao anatin'ny dingana iray, ary ny fanodinana dia nihena ho amin'ny fanatanterahana ny QSQL fanehoan-kevitra sy ny fiaraha-miasa, izay tsy adika, fa tanterahana amin'ny alalan'ny code binary.
 
Farany, azonao atao ny manoratra ny fizotran'ny serivisy rehetra ao amin'ny Q. Ohatra, ny fizotran'ny Gateway izay mizara ho azy ny fangatahan'ny mpampiasa amin'ny angon-drakitra ilaina sy ny lohamilina. Ny programmer dia manana fahalalahana tanteraka amin'ny fampiharana izay algorithm rehetra momba ny fifandanjana, ny laharam-pahamehana, ny fandeferana amin'ny fahadisoana, ny zo fidirana, ny fetra ary ny zavatra hafa rehetra irin'ny fony. Ny olana lehibe eto dia tsy maintsy manatanteraka izany rehetra izany ianao.
 
Ho ohatra, hotanisaiko izay karazana dingana ananantsika. Mazoto miasa sy miara-miasa avokoa izy rehetra, manambatra angon-drakitra am-polony isan-karazany ho iray, fanodinana angon-drakitra avy amin'ny loharano maro ary manompo mpampiasa sy fampiharana an-jatony.

  • Connectors (feedhandler) amin'ny loharanom-baovao. Ireo dingana ireo dia matetika mampiasa tranomboky ivelany izay ampidirina ao amin'ny Q. Ny interface C amin'ny Q dia tena tsotra ary mamela anao hamorona asa proxy ho an'ny tranomboky C/C++. Haingana ny Q mba hikarakarana, ohatra, ny fanodinana hafatra FIX avy amin'ny fifanakalozam-bola Eoropeana rehetra miaraka.
  • Mpizara data (tickerplant), izay miasa ho toy ny mpanelanelana ny connectors sy ny mpanjifa. Mandritra izany fotoana izany, manoratra angon-drakitra ho avy amin'ny log binary manokana izy ireo, manome tanjaka ho an'ny mpanjifa manoloana ny fahaverezan'ny fifandraisana na ny famerenana indray.
  • angon-drakitra ao anaty fitadidiana (rdb). Ireo tahirin-kevitra ireo dia manome ny fidirana haingana indrindra amin'ny angona manta sy vaovao amin'ny alΓ lan'ny fitehirizana azy ao anaty fitadidiana. Amin'ny ankapobeny, manangona angona ao anaty tabilao mandritra ny andro izy ireo ary mamerina azy ireo amin'ny alina.
  • Maharitra angon-drakitra (pdb). Ireo tahirin-kevitra ireo dia miantoka fa ny angona anio dia voatahiry ao anaty angon-drakitra ara-tantara. Amin'ny maha-fitsipika azy, tsy toy ny rdb, dia tsy mitahiry angona ao amin'ny fitadidiana, fa mampiasa cache manokana amin'ny kapila mandritra ny andro ary mandika ny angon-drakitra amin'ny mamatonalina amin'ny angon-drakitra ara-tantara.
  • Angon-drakitra ara-tantara (hdb). Ireo tahiry ireo dia manome fidirana amin'ny angona ho an'ny andro, volana ary taona teo aloha. Ny haben'izy ireo (amin'ny andro) dia voafetra ihany amin'ny haben'ny kapila mafy. Ny angona dia azo hita na aiza na aiza, indrindra amin'ny kapila samihafa mba hanafainganana ny fidirana. Azo atao ny manindry angon-drakitra amin'ny alΓ lan'ny algorithm maromaro azo isafidianana. Ny firafitry ny angon-drakitra dia voarakitra tsara sy tsotra, ny angon-drakitra dia voatahiry amin'ny tsanganana amin'ny tsanganana amin'ny rakitra mahazatra, mba hahafahan'izy ireo karakaraina, anisan'izany ny rafitra miasa.
  • Databases misy fampahalalana mitambatra. Mitahiry fitambarana isan-karazany izy ireo, matetika miaraka amin'ny, mivondrona amin'ny anaran'ny fitaovana sy ny elanelan'ny fotoana. Ny angon-drakitra ao anaty fitadidiana dia manavao ny toerany amin'ny hafatra miditra tsirairay, ary ny angon-drakitra ara-tantara dia mitahiry angon-drakitra voalamina mialoha mba hanafainganana ny fidirana amin'ny angona ara-tantara.
  • Farany, fizotry ny vavahadyserivisy fampiharana sy mpampiasa. Ny Q dia mamela anao hampihatra ny fanodinana asynchronous tanteraka amin'ny hafatra miditra, mizara azy ireo amin'ny angon-drakitra, manamarina ny zo fidirana, sns. Mariho fa tsy voafetra ny hafatra ary matetika dia tsy fitenenana SQL, toy ny amin'ny angon-drakitra hafa. Matetika, ny fitenenana SQL dia miafina amin'ny asa manokana ary miorina amin'ny masontsivana nangatahin'ny mpampiasa - ny fotoana dia niova fo, voasivana, ny angon-drakitra dia normalize (ohatra, ny vidin'ny tahiry dia mitovy raha toa ka voaloa ny dividends), sns.

Architecture mahazatra ho an'ny karazana data iray:

Angon-drakitra KDB+: manomboka amin'ny vola mankany amin'ny Formula 1

hafainganam-pandeha

Na dia fiteny voadika aza ny Q, dia fiteny vector ihany koa izy io. Midika izany fa maro ny asa naorina, indrindra fa ny arithmetika, no maka hevitra amin'ny endrika rehetra - isa, vectors, matrices, lisitra - ary ny programmer dia andrasana hampihatra ny programa ho toy ny asa array. Amin'ny fiteny toy izany, raha manampy vectors roa amin'ny singa iray tapitrisa ianao, dia tsy maninona intsony ny fandikana ny fiteny; ny fanampiana dia hatao amin'ny alΓ lan'ny fiasa binary super-optimized. Koa satria ny anjara liona amin'ny fotoana ao amin'ny fandaharana Q dia lany amin'ny asa miaraka amin'ny latabatra izay mampiasa ireo asa vectorised fototra ireo, ny vokatra dia hafainganam-pandehan'ny asa tena mendrika, mamela antsika hikarakara angon-drakitra be dia be na dia ao anatin'ny dingana iray aza. Mitovitovy amin'ny tranomboky matematika amin'ny Python izany - na dia fiteny miadana be aza ny Python, dia manana trano famakiam-boky tena tsara maro toy ny numpy izay ahafahanao manodina angon-drakitra amin'ny hafainganam-pandehan'ny fiteny voaangona (amin'ny fomba, ny numpy dia akaiky ny Q ).
 
Ho fanampin'izay, nandray fomba fiasa tena nitandrina ny KX tamin'ny famolavolana latabatra sy fanatsarana ny asa miaraka amin'izy ireo. Voalohany, misy karazana fanondroana maromaro tohanana, izay tohanan'ny fiasa naorina ary azo ampiharina tsy amin'ny tsanganana latabatra ihany, fa amin'ny vectors rehetra - fanangonana, fanasokajiana, toetra mampiavaka ary vondrona manokana ho an'ny angon-drakitra ara-tantara. Ny fanondroana dia ampiharina tsotra ary amboarina ho azy rehefa manampy singa amin'ny tsanganana/vector. Ny fanondroana dia azo ampiharina tsara amin'ny tsanganana latabatra na amin'ny fitadidiana na amin'ny kapila. Rehefa manatanteraka fangatahana QSQL dia ampiasaina ho azy ny fanondroana raha azo atao. Faharoa, ny asa miaraka amin'ny angona ara-tantara dia atao amin'ny alΓ lan'ny mekanika hanehoana ny rakitra OS (sarintany fitadidiana). Ny latabatra lehibe dia tsy ampidirina ao anaty fitadidiana na oviana na oviana; fa kosa, ny tsanganana ilaina dia apetaka mivantana ao anaty fitadidiana ary ny ampahany amin'izy ireo ihany no tena entina (manampy eto ihany koa ny index) izay ilaina. Tsy misy fahasamihafana amin'ny mpandrindra na ao anaty fitadidiana na tsia ny angon-drakitra; miafina tanteraka ao amin'ny halalin'ny Q ny mekanika miasa amin'ny mmap.
 
KDB+ dia tsy angon-drakitra mifandraika; Ny tabilao dia mety ahitana angona tsy misy dikany, fa ny filaharan'ny andalana ao amin'ny latabatra dia tsy miova rehefa ampiana singa vaovao ary azo ampiasaina ary tokony ampiasaina rehefa manoratra fanontaniana. Ity endri-javatra ity dia ilaina maika amin'ny fiasana amin'ny andiany fotoana (angona avy amin'ny fifanakalozana, telemetry, diarin'ny hetsika), satria raha alahatra araka ny fotoana ny angon-drakitra, dia tsy mila mampiasa tricks SQL ny mpampiasa hahitana ny laharana voalohany na farany na N. andalana ao amin'ny latabatra , mamaritra izay andalana manaraka ny Nth andalana, sns. Ny fikambanan'ny latabatra dia nohamafisina kokoa, ohatra, ny fitadiavana ny teny farany ho an'ny 16000 VOD.L (Vodafone) amin'ny latabatra misy singa 500 tapitrisa dia mila segondra iray eo amin'ny kapila ary am-polony milliseconds amin'ny fitadidiana.
 
Ohatra iray amin'ny fiaraha-mientana - ny latabatra quote dia voasokajy ho fitadidiana, noho izany dia tsy ilaina ny mamaritra ny VOD.L amin'ny toerana misy azy, ny fanondroana eo amin'ny tsanganana sym sy ny zava-misy fa ny angon-drakitra voalamina amin'ny fotoana dia ampiasaina an-kolaka. Saika ny fitambarana rehetra ao amin'ny Q dia fiasa mahazatra, fa tsy ampahany amin'ny fitenenana voafantina:

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

Farany, tsara ny manamarika fa ireo injeniera ao amin'ny KX, manomboka amin'i Arthur Whitney tenany, dia tena variana amin'ny fahaiza-manao ary manao ezaka be mba hahazoana ny ankamaroan'ny endri-javatra mahazatra an'ny Q ary manatsara ny fomba fampiasana mahazatra indrindra.
 

Ny vokany

Ny KDB+ dia malaza amin'ny orinasa noho ny fahaiza-manaony miavaka indrindra - izy io dia miasa tsara toy ny angon-drakitra ao anaty fitadidiana, toy ny angon-drakitra fitehirizana terabytes amin'ny angon-drakitra ara-tantara, ary toy ny sehatra famakafakana angon-drakitra. Noho ny zava-misy fa ny fanodinana angon-drakitra dia mitranga mivantana ao anaty angon-drakitra, ny hafainganam-pandehan'ny asa sy ny fitahirizana loharanon-karena dia tratra. Ny fiteny fandaharana feno mitambatra miaraka amin'ny fiasan'ny angon-drakitra dia ahafahanao manatanteraka ny fitambaran'ny dingana ilaina amin'ny sehatra iray - manomboka amin'ny fandraisana data ka hatramin'ny fanodinana ny fangatahan'ny mpampiasa.
 

Fampahalalana fanampiny

fahadisoana

Ny fatiantoka lehibe amin'ny KDB+/Q dia ny fidirana ambony. Ny fiteny dia manana fehezanteny hafahafa, ny fiasa sasany dia be loatra (ny sanda, ohatra, dia misy tranga 11 eo ho eo). Ny tena zava-dehibe dia mitaky fomba fijery hafa tanteraka amin'ny fanoratana fandaharana. Amin'ny fiteny vetaveta, tsy maintsy mieritreritra foana momba ny fiovan'ny array ianao, ampiharo ny tadivavarana rehetra amin'ny alΓ lan'ny karazany maromaro amin'ny sarintany / fampihenana ny asa (izay antsoina hoe adverbs amin'ny Q), ary aza manandrana mitahiry vola amin'ny fanoloana ny fiasan'ny vector amin'ny atomika. Ohatra, raha te hahita ny index of the Nth fisehoan'ny singa iray ao anaty array dia tokony hanoratra ianao:

1. (where element=vector)[N]  

Na dia toa tsy mahomby amin'ny fenitra C/Java aza izany (= mamorona vector boolean, izay mamerina ny tena fanondroana ny singa ao anatiny). Saingy ity fanamarihana ity dia mahatonga ny dikan'ny teny ho mazava kokoa ary mampiasa hetsika vector haingana ianao fa tsy atomika miadana. Ny fahasamihafan'ny foto-kevitra eo amin'ny fiteny vector sy ny hafa dia azo ampitahaina amin'ny fahasamihafan'ny fomba fiasa tsy maintsy atao amin'ny fandaharana, ary mila miomana amin'izany ianao.
 
Ny mpampiasa sasany dia tsy faly amin'ny QSQL. Ny teboka dia toa ny tena SQL ihany. Raha ny zava-misy dia mpandika teny mitovy amin'ny SQL ihany izy io izay tsy manohana ny fanatsarana ny fangatahana. Ny mpampiasa dia tsy maintsy manoratra fanontaniana tsara indrindra amin'ny tenany, ary ao amin'ny Q, izay tsy mbola vonona ny maro. Amin'ny lafiny iray, mazava ho azy, azonao atao ny manoratra ny fanontaniana tsara indrindra amin'ny tenanao, fa tsy miantehitra amin'ny optimizer black-box.
 
Ho fanampin'izany, misy boky momba ny Q - Q For Mortals azo alaina maimaim-poana amin'ny tranokalan'ny orinasa, be dia be koa ny fitaovana mahasoa hafa voangona ao.
 
Ny fatiantoka lehibe iray hafa dia ny vidin'ny fahazoan-dΓ lana. Izany dia an'aliny dolara isan-taona isaky ny CPU. Ny orinasa lehibe ihany no mahazaka ny fandaniana toy izany. Vao haingana, KX dia nanao ny politikan'ny fanomezan-dΓ lana ho mora kokoa ary manome fahafahana handoa raha tsy amin'ny fotoana fampiasana na manofa KDB+ ao amin'ny rahona Google sy Amazon. KX dia manolotra ihany koa ny fampidinana maimaim-poana ho an'ny tanjona tsy ara-barotra (32 bit version na 64 bit raha angatahina).
 

mpifaninana

Misy angon-drakitra manokana vitsivitsy miorina amin'ny fitsipika mitovy - tsanganana, ao anaty fitadidiana, mifantoka amin'ny angon-drakitra be dia be. Ny olana dia ireo angon-drakitra manokana ireo. Ohatra iray manaitra ny Clickhouse. Ity angon-drakitra ity dia manana fitsipika mitovy amin'ny KDB+ amin'ny fitahirizana angon-drakitra amin'ny kapila sy fananganana tondro; mamaly fanontaniana haingana kokoa noho ny KDB+ izy, na dia tsy dia lehibe loatra aza. Saingy na dia amin'ny maha-database aza, Clickhouse dia manam-pahaizana manokana kokoa noho ny KDB + - analytics web vs andiam-potoana tsy misy dikany (tena zava-dehibe io fahasamihafana io - noho izany, ohatra, ao amin'ny Clickhouse dia tsy azo atao ny mampiasa ny filaharan'ny firaketana). Saingy, ny tena zava-dehibe, ny Clickhouse dia tsy manana ny fahaiza-manaon'ny KDB +, fiteny izay mamela ny fanodinana angon-drakitra mivantana ao amin'ny angon-drakitra, fa tsy ny fampidirana azy voalohany amin'ny fampiharana misaraka, manangana teny SQL tsy misy dikany, mampihatra asa tsy misy dikany amin'ny fangatahana, mamorona dingana. tsy mifandraika amin'ny fanatanterahana ny asan'ny angon-drakitra ara-tantara. Noho izany, sarotra ny mampitaha ny KDB+ amin'ny angon-drakitra hafa; mety ho tsara kokoa izy ireo amin'ny tranga fampiasa sasany na tsara kokoa raha ny momba ny asa angona mahazatra mahazatra, saingy tsy fantatro ny fitaovana hafa mahomby sy azo ampiasaina amin'ny fanodinana data vonjimaika.
 

Fampidirana Python

Mba hanamora ny fampiasana ny KDB+ ho an'ny olona tsy zatra amin'ny teknolojia, dia namorona tranomboky i KX mba hampidirana tsara amin'ny Python ao anatin'ny dingana iray. Azonao atao ny miantso ny fonction Python rehetra avy amin'ny Q, na ny mifamadika amin'izany - miantsoa ny fonction Q avy amin'ny Python (indrindra ny fanehoana QSQL). Ny trano famakiam-boky dia mamadika, raha ilaina (tsy foana noho ny fahombiazana), ny angona avy amin'ny endrika fiteny iray ho amin'ny endrika hafa. Vokatr'izany, miaina ao anaty simbiose akaiky i Q sy Python ka manjavozavo ny sisintany misy azy. Vokatr'izany, ny mpandrindra, amin'ny lafiny iray, dia manana fidirana feno amin'ny tranomboky Python mahasoa maro, amin'ny lafiny iray, mahazo fototra haingana izy amin'ny fiasana amin'ny angona lehibe tafiditra ao amin'ny Python, izay tena ilaina ho an'ireo izay tafiditra amin'ny fianarana milina. na modely.
 
Miasa amin'ny Q amin'ny 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')  

soratra masina

Ny tranokalan'ny orinasa - https://kx.com/
Tranonkala ho an'ny mpamorona - https://code.kx.com/v2/
Book Q For Mortals (amin'ny teny anglisy) - https://code.kx.com/q4m3/
Lahatsoratra momba ny fampiharana KDB+/Q avy amin'ny mpiasa kx - https://code.kx.com/v2/wp/

Source: www.habr.com

Add a comment