Kua tukuna a DuckDB 1.4.0, he DBMS e aro ana ki nga patai tātari me te ahua rite ki te SQLite. Kei te whakakotahi a DuckDB i te rahi kiato o SQLite, te whare pukapuka mono, te rokiroki raraunga konae kotahi, me te atanga CLI me nga kaha me nga arotautanga mo te whakahaere i nga patai tātari e hora ana i te waahanga nui o nga raraunga rongoa, penei i te whakahiato i nga ihirangi katoa o nga ripanga, te whakakotahi ranei i etahi ripanga nui. Ko te waehere kaupapa kua tuhia ki te C++ ka tohatohahia i raro i te raihana MIT.
Ka whakarato a DuckDB i te reo roa o te reo SQL me etahi atu kaha mo te whakahaere i nga patai tino uaua me te roa. Ka taea te whakamahi i nga momo uaua (nga huinga, nga hanganga, nga uniana), tae atu ki te whakahaere i nga uiuinga whaikorero me te kohanga. Ko te mahi tukutahi o nga patai maha, ka tautokohia nga mahi patai mai i nga konae CSV me te Parquet. Kei te waatea te tautoko mo te kawemai mai i te PostgreSQL DBMS.
Ka whakamahia e te kaupapa he anga mai i te SQLite, he parser mai i te PostgreSQL, he wahanga Math Date mai i MonetDB, tana ake whakatinanatanga o nga mahi matapihi (i runga i te Segment Tree Aggregation algorithm), he tukatuka korero auau e pa ana ki te whare pukapuka RE2, tana ake arotau patai, he tikanga MVCC mo te whakahaere i te mahi tukutahi o nga mahi (Whakaritea-Whakaahua-Whakaahua i runga i te Vector Whakaaetanga Whakatairanga). ecution algorithm, e tuku ana i nga huinga uara nui ki te tukatuka i roto i te mahi kotahi.
I roto i te putanga hou:
- He tautoko taapiri mo te penapena i nga konae raraunga kua whakamunatia. Ka whakamahia te AES-256 algorithm mo te whakamunatanga i te aratau GCM. Kei roto i tenei whakamunatanga ehara ko te konae raraunga matua anake engari ko nga raarangi WAL me nga konae rangitahi. Ka tohua nga taviri whakamunatanga raraunga ma te whakamahi i te tono ATTACH ma te tawhā ENCRYPTION_KEY. WHAKATAIA 'whakamuna.db' AS enc_db (ENCRYPTION_KEY 'quack_quack');
- He tautoko taapiri mo te whakahau MERGE INTO, ka taea te whakamahi hei whakakapi ki te korero INSERT … ON CONFLICT, kaore e hiahiatia he matua matua me te mahi me nga tikanga hanumi noa. Ma te whakahau MERGE INTO ka taea e koe te hanga kupu kupu SQL herenga e whakakotahi ana i nga mahi INSERT, UPDATE, me te MUU i roto i te korero kotahi. Hei tauira, ma te whakamahi i te MERGE, ka taea e koe te hanumi i nga ripanga e rua, te whakauru i nga rekoata ngaro me te whakahou i nga rekoata o naianei. WITH deletes(item_id, delete_threshold) AS (WAUARA (10, 3000)) HANUI KI TOA WHAKAMAHI deletes USING (item_id) I TE WHAKATOTIA ME te toenga < delete_threshold KAtahi ka MUMU TE WHAKAMAHI merge_action, *;
- I tua atu i te mahi me nga ripanga i roto i te whakatakotoranga Apache Iceberg, kua taapirihia te tautoko mo nga mahi tuhi (i mua, ko nga mahi panui anake i tautokohia), ka taea e koe te whakawhiti raraunga mai i Iceberg ki DuckDB me te rereke.
- Kua whakahōungia te kiritaki raina whakahau me te tohu ahunga whakamua mo te mahi, e tohu ana i te wa e toe ana kia oti ra ano.
- Kua taapirihia te mahi matapihi FILL, ka taea te whakamahi hei whakauru i nga uara ngaro i roto i nga matapihi whakahau. MAI (Ngā uara (1, 1), (2, NULL), (3, 42)) t(c1, c2) KŌWHIWHIRI whakakī(c2) OVER (ORDER BY c1) f; 1 21 42
- Kua whakatinanahia te taapiri Hononga Teradata mo te hono ki nga papaa raraunga Teradata. Ko te taapiri ka taea e koe te whakahaere i nga ripanga, te mahi patai, me te whakahaere tika i nga whakahau SQL i Teradata ma te whakamahi i te DuckDB.
- He tautoko taapiri mo te arowhai i nga ripanga mahara-a-roto, ka taea te tautoko i te kopiri. Ko te tohutaki ka purea nga rarangi kua mukua me te whakahoki mokowā i muri i nga mahi muku. KAUPAPA ':memory:' AS memory_compressed (COMPRESS);
- He maha nga arotautanga mahi kua whakaarohia: Kua hurihia te whakatinanatanga ki te k-way merge sort algorithm, e whakaiti ana i te nekehanga raraunga. Ko nga Whakaaturanga Ripanga noa (CTE) kua hangai taunoa inaianei.
Source: opennet.ru
