
DuckDB v2.0-ի նախադիտում. սերվերի ռեժիմ, տրիգերներ և պահպանման նոր ձևաչափ
Անալիտիկ տվյալների բազան կստանա հաճախորդ-սերվեր ռեժիմ, տրիգերների ամբողջական աջակցություն, VARIANT տիպ և ասինքրոն I/O: Cyanoptera անունով 2.0 տարբերակը կթողարկվի աշնանը։
DuckDB-ն հրապարակել է 2.0 տարբերակի նախադիտումը՝ գործընթացի ներսում աշխատող անալիտիկ տվյալների բազայի հերթական խոշոր թողարկումը, որը սպասվում է աշնանը և կկրի Cyanoptera անունը։ Թողարկումը ներառում է ավելի քան 10 000 commit մարտին լույս տեսած v1.5-ից հետո և բացում է «DuckDB-ն որպես սերվեր» փուլը։
Սերվերի ռեժիմ
Գլխավոր փոփոխությունը հաճախորդ-սերվեր աջակցությունն է։ Մայիսին ներկայացված quack ընդլայնումը ներդնում է DuckDB-ի սեփական արձանագրությունը և v2.0-ում դառնում կայուն. ցանկացած DuckDB գործընթաց կարող է իր բազաները մատուցել ցանցով, իսկ մեկ այլ DuckDB կարող է միանալ դրան և հարցումները ուղղել այնտեղ նոր CONNECT հրահանգով։ CONNECT-ը չի սահմանափակվում DuckDB-ով. ուղղվելով PostgreSQL կամ MySQL սերվերին՝ այն SQL-ը ուղարկում է անմիջապես հեռավոր համակարգին՝ աղյուսակները ցանցով քաշելու փոխարեն, նոր remote pushdown օպտիմիզատորի միջոցով։ Թիմը նշում է, որ DuckDB-ն սկզբից է տրանզակցիոն բազա է՝ ամբողջական MVCC-ով, և այդ առավելությունն այժմ դրսևորվում է բազմաօգտվողական, երկարաժամկետ տեղադրումներում։
VARIANT, տրիգերներ և SQL-ի լրացումներ
v1.5-ում ներկայացված VARIANT տիպը դառնում է լիարժեք. «shredding»-ը կատարվում է անմիջապես պահոցից, արդյունահանումը տեղափոխվում է scan-ների մեջ, Parquet-ի ընթերցումն ու գրառումը աջակցվում են, և ավելանում է variant_* ֆունկցիաների ընտանիքը։ Թիմը ծրագրում է թողարկումից կարճ ժամանակ անց VARIANT-ի վրա հիմնել նաև սովորական JSON տիպը, որպեսզի գործող JSON ծանրաբեռնվածությունները ստանան նույն առավելությունները՝ առանց հարցումները փոխելու։
Տրիգերները գալիս են ամբողջությամբ. BEFORE և AFTER, FOR EACH ROW և FOR EACH STATEMENT, անցումային աղյուսակներ REFERENCING OLD/NEW TABLE-ով, մի քանի տրիգեր մեկ իրադարձության համար, RETURNING և DROP TRIGGER։
SQL բարբառին ավելանում են top-k նմանության որոնումը՝ որպես join պայման (APPROX NEAREST՝ վեկտորային ծանրաբեռնվածությունների համար), DML՝ CTE-ների ներսում, ներդրված սխեմաներ, $variable շարահյուսություն, JSON-ի փոփոխման ֆունկցիաներ ինչպիսին է json_set-ը, և ռեկուրսիվ CTE-ներ USING KEY ագրեգացիայով։
Ավելի արագ I/O, արագ հարցումներ և ստորագրված ընդլայնումներ
Ասինքրոն I/O-ն այժմ գործում է ամբողջ շարժիչում, ուստի I/O շերտը մասշտաբավորվում է անկախ հարցումների մշակումից՝ սկզբում Parquet, ապա CSV և DuckDB-ի սեփական ձևաչափը, ինչպես նաև նոր MMAP և DIRECT_IO ռեժիմներ։ Ամենամեծ շահույթը ցանցային պահոցում է։ Հարցումների կողմում մասնակի ագրեգատները տեղափոխվում են join-ների տակ, ռեկուրսիվ CTE-ների շարժիչը վերագրվել է, ագրեգացիաները հիշողությունը գերազանցելիս թափվում են սկավառակի վրա, իսկ Windows-ի CLI-ն բազմահոսք արդյունքների մատերիալիզացիայում դարձել է մոտ 2,2 անգամ արագ։
Ընդլայնումները ստանում են վերամշակված կայուն C API և, դեռ մշակման փուլում, օգտվողների կողմից գրանցվող պահոցներ, որոնք տարածում են RSA-ով ստորագրված ընդլայնումներ, և գրանցման պահին տպվում է յուրաքանչյուր բանալու SHA-256 մատնահետքը։ Աշնանից DuckDB Foundation-ին կմիանա շահագրգիռ կողմերի խորհրդատվական խորհուրդ, որը կմասնակցի DuckDB-ի, DuckLake-ի և Quack-ի զարգացման ծրագրերին։ Նախնական տարբերակներն արդեն ներառում են այս հնարավորությունների մեծ մասը, սակայն թիմը զգուշացնում է, որ մանրամասները կարող են փոխվել մինչև աշնանային թողարկումը։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։