DuckDB 0.6.0 Kua Whakaputaina, Kōwhiringa SQLite mo nga Uiui Analytical

Ko te tukunga o te DuckDB 0.6.0 DBMS e waatea ana, me te whakakotahi i nga ahuatanga o SQLite hei taapiri, te kaha ki te hono i roto i te ahua o te whare pukapuka whakauru, te penapena i te papaaarangi i roto i te konae kotahi me te atanga CLI watea, me nga taputapu me nga arotautanga mo te mahi. nga patai tātari e kapi ana i tetahi waahanga nui o nga raraunga rongoa, hei tauira ka whakahiato i nga ihirangi katoa o nga ripanga, ka hanumi ranei i etahi ripanga nui. Ka tohatohahia te waehere kaupapa i raro i te raihana MIT. Ko te whakawhanaketanga kei te waahi tonu ki te hanga i nga whakaputanga whakamatautau, na te mea kaore ano kia pumau te whakatakotoranga rokiroki me te whakarereke mai i tetahi waahanga ki tetahi waahanga.

Ka whakarato a DuckDB i tetahi reo SQL matatau kei roto i nga taapiri taapiri mo te whakahaere i nga patai tino uaua me te whakapau wa. Kei te tautokohia te whakamahi i nga momo uaua (nga huinga, nga hanganga, nga uniana) me te kaha ki te whakahaere i nga patai riipii tuutuu me te kohanga. E tautoko ana i te whakahaere i nga patai maha i te wa kotahi, e whakahaere ana i nga patai mai i nga konae CSV me te Parquet. Ka taea te kawemai mai i te PostgreSQL DBMS.

I tua atu i te waehere anga mai i SQLite, ka whakamahia e te kaupapa he parser mai i te PostgreSQL i roto i te wharepukapuka motuhake, ko te waahanga Date Math mai i MonetDB, tana ake whakatinanatanga o nga mahi matapihi (i runga i te Segment Tree Aggregation algorithm), he tukatuka korero auau i runga i ko te whare pukapuka RE2, tana ake mootau patai, me tetahi tikanga whakahaere MVCC ki te whakahaere i nga mahi i te wa kotahi (Multi-Version Concurrency Control), tae atu ki te miihini whakangao patai i runga i te Hyper-Pipelining Query Execution algorithm, e taea ai nga huinga nui o nga uara. kia tukatuka i te wa kotahi i roto i te mahi kotahi.

I roto i nga huringa o te tukunga hou:

  • I haere tonu te mahi ki te whakapai ake i te whakatakotoranga rokiroki. Kua whakatinanahia he aratau tuhi kōpae pai, i te wa e utaina ana he huinga nui o nga raraunga i roto i te tauwhitinga kotahi, ka kopirihia nga raraunga ka tuhia ki tetahi konae mai i te paataka korero i roto i te aratau roma, me te kore e tatari kia whakamanahia te tauwhitinga me te whakahau COMMIT . Ina tae mai he whakahau COMMIT, kua tuhia kee nga raraunga ki te kopae, a ka mahia he ROLLBACK, ka makahia. I mua, i te tuatahi ka tiakina katoatia nga raraunga ki te mahara, a, ka mahia, ka tiakina ki te kōpae.
  • He tautoko taapiri mo te uta whakarara o nga raraunga ki nga ripanga motuhake, e taea ai e koe te whakanui ake i te tere o te uta ki runga i nga punaha maha-matua. Hei tauira, i roto i te tukunga o mua, ko te utaina o te papaaarangi me te 150 miriona rarangi i runga i te 10-matua CPU i 91 hēkona, engari i roto i te putanga hou ka oti tenei mahi i roto i te 17 hēkona. E rua nga ahuatanga o te uta whakarara - me te pupuri i te raupapa o nga rekoata me te kore e pupuri i te ota.
  • Mō te kōpeketanga raraunga, ka whakamahia te hātepe FSST (Fast Static Symbol Ripanga) hātepe, e taea ai e koe te kiki raraunga i roto i nga aho ma te whakamahi i te papakupu noa o nga whakataetae angamaheni. Ko te whakamahinga o te algorithm hou i taea ai te whakaiti i te rahi o te paataka whakamatautau mai i te 761MB ki te 251MB.
  • Ko te Chimp me te Patas algorithms kua whakaarohia kia kopirihia nga tau ira maanu (PAUA me te MUNGA). Ka whakatauritea ki te Gorillas algorithm o mua, ka whakawhiwhia e Chimp nga taumata teitei ake o te taapiri me te tere ake te whakaheke. Ko te Patas algorithm kei muri i a Chimp i roto i te ōwehenga kōpeketanga, engari he tere ake te tere o te whakahekenga, he tata karekau he rereke ki te panui i nga raraunga kaore ano kia kopaki.
  • Kua taapirihia he kaha whakamatautau ki te uta i nga raraunga mai i nga konae CSV ki nga awa whakarara maha (SET experimental_parallel_csv=true), e tino whakaiti ana i te waa ki te uta i nga konae CSV nui. Hei tauira, i te wa i whakahohea ai tenei whiringa, ka whakahekehia te wa tango mo te konae CSV 720 MB mai i te 3.5 ki te 0.6 hēkona.
  • Kua whakatinanahia te mahi whakarara o te hanga taurangi me nga mahi whakahaere. Hei tauira, ko te mahi CREATE INDEX i runga i te pou me te 16 miriona rekoata i whakahekehia mai i te 5.92 ki te 1.38 hēkona.
  • Whakahohehia te whakarara o nga mahi whakahiato i roto i nga patai kei roto te kii "TITI(DISTINCT col)".
  • Kua taapirihia e SQL te tautoko mo te momo UNION, ka taea e nga momo maha te herea ki tetahi huānga (hei tauira, "UNION(num INT, hapa VARCHAR))").
  • Ka whakarato a SQL i te kaha ki te hanga i nga patai ka tiimata me te kupu "FROM" hei utu mo te "KORERO". I roto i tenei take, e kiia ana ka timata te patai ki te "KORERO *".
  • Kua taapirihia e te SQL te tautoko mo te whakaaturanga COLUMNS, e taea ai e koe te mahi i runga i nga pou maha me te kore e kape i te korero. Hei tauira, “KŌWHIWHI MIN(TAHI(*)) mai i obs;” ka mahia te mahi MIN mo ia tīwae i roto i te ripanga obs, me te "KŌWHIWHI KORE('val[0-9]+') mai i obs;" mo nga pou me te ingoa ko "val" me nga tau.
  • He tautoko taapiri mo nga mahi i runga i nga rarangi, hei tauira, "KORERO [x + 1 mo x i roto i te [1, 2, 3]] AS l;".
  • Kua arotauhia te kohi mahara. Ma te taunoa, ka whakamahia e te papaaho Linux te whare pukapuka jemalloc mo te whakahaere mahara. I tino pai ake te mahinga o nga mahi hanumi hash ina he iti te mahara.
  • Kua taapirihia te aratau whakaputa ".mode duckbox" ki te atanga raina whakahau, ka whakakore i nga pou o waenga me te whakaaro ki te whanui o te matapihi tauranga (e tika ana mo te arotake tere i nga hua o nga paatai ​​​​me te maha o nga pou, penei i te "KORERO * FROM tbl", ka horahia ki runga i nga raina maha). Ma te whakamahi i te tawhā ".maxrows X", ka taea e koe te whakawhāiti i te maha o nga rarangi ka whakaatuhia.
  • Ko te CLI e whakarato ana i te whakaoti-aunoa o te whakaurunga me te whakaaro ki te horopaki (kua oti te whakaurunga o nga kupumatua, nga ingoa ripanga, nga mahi, nga ingoa pou me nga ingoa konae).
  • Ko te CLI he tohu ahunga whakamua uiui kua whakahohea ma te taunoa.

Source: opennet.ru

Tāpiri i te kōrero