{"id":121901,"date":"2025-02-13T14:22:07","date_gmt":"2025-02-13T12:22:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-subd-duckdb-1-2-0"},"modified":"2025-02-13T14:22:07","modified_gmt":"2025-02-13T12:22:07","slug":"reliz-subd-duckdb-1-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-duckdb-1-2-0","title":{"rendered":"Rilascio del DBMS DuckDB 1.2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pubblicata la versione del DBMS DuckDB 1.2.0, orientata all'esecuzione di query analitiche e concettualmente simile a SQLite. DuckDB unisce le propriet\u00e0 di SQLite, come compattezza, connessione come libreria incorporata, memorizzazione del database in un file e interfaccia CLI, con funzionalit\u00e0 e ottimizzazioni per l'esecuzione di query analitiche che coprono una parte significativa dei dati memorizzati, ad esempio, eseguendo aggregazioni di tutto il contenuto delle tabelle o unendo pi\u00f9 grandi tabelle. Il codice del progetto \u00e8 scritto in C++ e distribuito con licenza MIT.     <\/p>\n<p>DuckDB offre un dialetto SQL esteso, inclusi ulteriori funzionalit\u00e0 per gestire query molto complesse e a lungo termine. \u00c8 possibile utilizzare tipi complessi (array, strutture, unioni), oltre a eseguire sottoquery correlate arbitrari e nidificati. Viene supportata l'esecuzione simultanea di pi\u00f9 query, con la possibilit\u00e0 di eseguire query direttamente da file nei formati CSV e Parquet. \u00c8 disponibile il supporto per l'importazione da DBMS PostgreSQL.    <\/p>\n<p>Il progetto utilizza un'interfaccia di SQLite, un parser di PostgreSQL, il componente Date Math di MonetDB, una propria implementazione delle funzioni di finestra (basata sull'algoritmo Segment Tree Aggregation), un gestore di espressioni regolari basato sulla libreria RE2, un ottimizzatore di query personalizzato, un meccanismo MVCC per la gestione della concorrenza (Multi-Version Concurrency Control), oltre a un motore di esecuzione delle query vettorializzato basato sull'algoritmo Hyper-Pipelining Query Execution, che consente di elaborare grandi set di valori in un'unica operazione.    <\/p>\n<p>Nella nuova versione:  <\/p>\n<ul>\n<li class=\"l\"> \u00c8 stato implementato il supporto per nuovi metodi di compressione, che non sono abilitati di default per mantenere la compatibilit\u00e0 dei file di database con le versioni precedenti di DuckDB. Per utilizzare il formato migliorato dei file di database, \u00e8 stata proposta la possibilit\u00e0 di legare il database a un numero di versione \u2014 all'apertura del file tramite il parametro \u00abSTORAGE_VERSION\u00bb ora \u00e8 possibile impostare la versione minima supportata del database (\u00abATTACH 'file.db' (STORAGE_VERSION 'v1.2.0');\u00bb). Per convertire il nuovo formato nel vecchio si pu\u00f2 utilizzare il comando SQL COPY, ad esempio: ATTACH 'file1.db'; ATTACH 'converted_file.db' (STORAGE_VERSION 'v1.0.0'); COPY FROM DATABASE file1 TO converted_file;\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per il comando SQL \u00abALTER TABLE ... ADD PRIMARY KEY\u00bb per aggiungere una chiave primaria a una tabella esistente.\n<li class=\"l\"> \u00c8 stata rimossa la limitazione che impediva di riaggiungere gli identificatori per i quali era presente un indice di tracciamento dell'unicit\u00e0, se quegli identificatori erano stati eliminati nella transazione corrente. Ad esempio, il seguente codice SQL ora non genera errore: CREATE TABLE students (id INTEGER PRIMARY KEY, name VARCHAR); INSERT INTO students VALUES (1, 'John Doe'); BEGIN; DELETE FROM students WHERE id = 1; INSERT INTO students VALUES (1, 'Jane Doe');\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per il caricamento di file CSV con codifiche Latin-1 e UTF-16 (precedentemente era supportata solo la codifica UTF-8). FROM read_csv('cities-latin-1.csv', encoding = 'latin-1');\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per l'uso di delimitatori multibyte (fino a 4 byte) nei file CSV, che consente di specificare emoji come delimitatori delle colonne. a\ud83d\udc3eb hello\ud83d\udc3eworld FROM read_csv('example.dsv', sep = '\ud83d\udc3e');\n<li class=\"l\"> Di default \u00e8 abilitata la modalit\u00e0 rigorosa di analisi dei file CSV (\u00abstrict_mode = true\u00bb), che verifica la conformit\u00e0 al formato della specifica RFC 4180. In modalit\u00e0 rigorosa \u00e8 consentito l'uso di un solo carattere per la separazione delle righe, il che porter\u00e0 a un errore nel tentativo di analizzare file in cui la separazione delle righe utilizza non solo il carattere di a capo, ma anche il ritorno a capo (\u00ab\r\n\u00bb).\n<li class=\"l\"> Nel parser CSV \u00e8 stato introdotto un nuovo algoritmo per la determinazione della nuova riga, che supporta l'esecuzione parallela delle operazioni. L'uso del nuovo algoritmo ha accelerato l'analisi dei CSV di circa il 15%.\n<li class=\"l\"> Rimosso il limite sulla dimensione della riga nei file CSV (in precedenza la riga non doveva superare gli 8 MB).\n<li class=\"l\"> Nell'esportazione dei dati in formato Parquet \u00e8 stata implementata la supporto per gli hash (dizionari) e gli indici basati sul filtro di Bloom. \u00c8 stato implementato il metodo di compressione DELTA_BINARY_PACKED, che consente di ridurre significativamente le dimensioni dei file Parquet.\n<li class=\"l\"> Nell'interfaccia della riga di comando \u00e8 stata aggiunta una modalit\u00e0 sicura, attivabile tramite l'opzione \u00ab-safe\u00bb o il comando \u00ab.safe_mode\u00bb. In questa modalit\u00e0 \u00e8 consentito l'accesso solo al file di database specificato inizialmente, e il tentativo di aprire altri file generer\u00e0 un errore.\n<li class=\"l\"> Nell'interfaccia della riga di comando \u00e8 stato migliorato l'autocompletamento dell'input. Il codice per l'autocompletamento \u00e8 stato tradotto per utilizzare il PEG (Parsing Expression Grammar).\n<li class=\"l\"> Durante l'esecuzione dei comandi nell'interfaccia della riga di comando, \u00e8 stata implementata una visualizzazione chiara dei grandi numeri; ad esempio, quando viene mostrato il numero 100000000, verr\u00e0 aggiunta l'indicazione \u00ab(100 milioni)\u00bb.\n<li class=\"l\"> In SQL \u00e8 stata aggiunta la supporto per la sintassi che consente di specificare i nomi abbreviati delle tabelle e delle espressioni prima dei valori a cui si riferiscono (anzich\u00e9 utilizzare la sintassi \u00abespressione AS nome\u00bb): SELECT e1: alcune_espressioni_lunghe_e_complessi, e2: t2.nome_di_una_colonna FROM t1: lungo_schema.una_lunga_tabella, t2: short_s.tbl;\n<li class=\"l\"> Nella clausola \u00abSELECT\u00bb \u00e8 stata implementata la supporto per l'operazione \u00abRENAME\u00bb per rinominare i campi restituiti quando si utilizza l'espressione \u00ab*\u00bb: SELECT * RENAME (col1 AS new_col1) FROM integers;\n<li class=\"l\"> Nella clausola \u00abSELECT\u00bb \u00e8 consentito l'uso delle operazioni \u00abLIKE\u00bb e \u00abSIMILAR TO\u00bb quando si restituisce tramite \u00ab*\u00bb: SELECT * LIKE 'val%' FROM key_val;\n<li class=\"l\"> Migliorata la qualit\u00e0 nella generazione di numeri pseudocasuali.\n<li class=\"l\"> Ottimizzatore delle query modernizzato. Le prestazioni nel test TPC-H SF100 sono aumentate del 13%.\n<li class=\"l\"> Proposto un nuovo API simile a C per lo sviluppo di estensioni, che pu\u00f2 essere utilizzato, ad esempio, per creare nuove funzioni aggregate o di tabella.\n<li class=\"l\"> Aggiunta la supporto per i sistemi con la libreria standard C Musl.          <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62712\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 DuckDB 1.2.0, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0439 SQLite. DuckDB \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 SQLite, \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0411\u0414 \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438 CLI-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0442\u0430\u0431\u043b\u0438\u0446 \u0438\u043b\u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-121901","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 DuckDB 1.2.0, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0439 SQLite.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-duckdb-1-2-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 DuckDB 1.2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 DuckDB 1.2.0, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0439 SQLite.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-duckdb-1-2-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-02-13T12:22:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-02-13T12:22:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rilascio del DBMS DuckDB 1.2.0 | ProHoster","description":"Pubblicata la versione del DBMS DuckDB 1.2.0, orientata all'esecuzione di query analitiche e concettualmente simile a SQLite.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-duckdb-1-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 DuckDB 1.2.0 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 DuckDB 1.2.0, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0435\u0439 SQLite.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-duckdb-1-2-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-02-13T12:22:07+00:00","article:modified_time":"2025-02-13T12:22:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"121901","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 10:33:44","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 10:33:44","updated":"2026-01-23 10:33:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/121901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=121901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/121901\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=121901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=121901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=121901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}