• DuckDB 1.4 LTS – säkerhet, prestanda och nya funktioner för framtidens databas

    DuckDB, databasen som ofta kallas ”SQLite för analys”, har släppt version 1.4 – en långsiktigt stödd utgåva full med nyheter. Med inbyggd kryptering, stöd för MERGE-kommandot, skrivning till Iceberg och förbättrad prestanda tar DuckDB ännu ett kliv mot att bli en av de mest flexibla och kraftfulla analysdatabaserna på marknaden.

    DuckDB, den lilla men kraftfulla databasen som ofta beskrivs som ”SQLite för analys”, har nått en viktig milstolpe. Med version 1.4, kodnamn Andium, släpps nu en LTS-utgåva (Long-Term Support) med ett års garanterat community-stöd. Den här versionen är fullmatad med nyheter som gör databasen både säkrare och snabbare, samtidigt som den blir mer flexibel att använda.

    Kryptering på riktigt

    En av de största nyheterna är att DuckDB nu kan kryptera hela databasen med AES-256 i det säkra GCM-läget. Det innebär att inte bara själva databasen, utan även loggfiler och temporära filer skyddas. Krypteringsnyckeln anges enkelt via en parameter när databasen kopplas in. För den som använder OpenSSL kan man dessutom dra nytta av hårdvaruacceleration, vilket gör krypteringen riktigt snabb.

    MERGE INTO – smartare uppdateringar

    Fram till nu har DuckDB-användare varit hänvisade till tricket INSERT INTO … ON CONFLICT för att hantera uppdateringar och konflikter. Med version 1.4 får vi istället det betydligt mer flexibla kommandot MERGE INTO, som gör det möjligt att kombinera insättningar, uppdateringar och raderingar i ett och samma kommando – perfekt för avancerade dataströmmar.

    Iceberg-stöd på nästa nivå

    DuckDB har länge kunnat läsa från Apache Iceberg, det populära lagringsformatet för storskaliga dataset. Men nu kan databasen även skriva data till Iceberg. Det öppnar för helt nya arbetsflöden där man kan flytta data mellan DuckDB, DuckLake och Iceberg. Dock krävs att schemat redan är skapat på Iceberg-sidan.

    Små detaljer som gör stor skillnad

    Version 1.4 innehåller också flera förbättringar som gör vardagen enklare:

    • En förloppsindikator i terminalen med uppskattad tid (ETA).
    • En ny FILL-funktion som fyller i saknade värden i dataserier.
    • En Teradata-anslutning för bättre integration med befintliga system.

    Prestanda i fokus

    Prestanda har alltid varit DuckDB:s styrka, och här fortsätter förbättringarna:

    • Sortering använder nu en modern k-way merge-metod.
    • CTE:er (Common Table Expressions) materialiseras automatiskt för att snabba upp beräkningar.
    • Minnestabeller har fått stöd för checkpointing, med möjlighet till komprimering.

    Distribution och ekosystem

    Slutligen har utvecklarna även putsat på distributionen:

    • Binärerna för macOS är nu notariserade.
    • Python-stödet har flyttat till sitt eget repository, duckdb/duckdb-python, för smidigare utveckling.

    DuckDB 1.4 visar att projektet inte bara växer i popularitet, utan också mognar som plattform. Med inbyggd kryptering, modernare SQL-stöd och förbättrad prestanda stärker DuckDB sin position som det självklara valet för analys – oavsett om du jobbar på din laptop eller i stora datacentermiljöer.

    DuckDB – Fakta & användning

    Typ: In-process, kolumnorienterad SQL-databas för analys (OLAP).
    Distribution: Inbäddad i processen – ingen separat server krävs.
    Plattformar: Linux, macOS, Windows; fungerar i Python, R, C/C++, Java (JDBC), ODBC m.fl.
    Filformat: Eget .duckdb on-disk-format + direktläsning av Parquet/CSV/JSON/Arrow.
    Lagring: Kolumnlagring med komprimering (t.ex. dictionary, bitpackning, RLE) och statistik/zonkartor.
    Transaktioner: ACID med WAL; snapshot isolation; flertrådad, vektoriserad exekvering.
    Index: Inga användarhanterade B-träd; förlitar sig på kolumnstatistik/zonkartor och adaptiva tekniker.
    Skalning: Optimerad för enmaskin/enkelt deployment; out-of-core för stora dataset (strömmande/externa filer).
    Kryptering: AES-256-GCM för databas/WAL/temp (från 1.4; nyckel via ENCRYPTION_KEY vid ATTACH).
    SQL-stöd: ANSI-nära dialekt med CTE/rekursiva CTE, fönsterfunktioner, MERGE INTO, ON CONFLICT, typerna STRUCT/LIST/MAP, omfattande JSON-funktioner.
    Extensions (urval): Parquet/JSON, httpfs (fjärrfiler), Arrow-integration, Iceberg-läs/skriv (via duckdb-iceberg), m.fl.
    Prestanda: Vektoriserad motor, parallellisering inom fråga, omskriven k-vägs mergesort, materialiserade CTE:er som standard.
    CLI/verktyg: Interaktiv duckdb-CLI (med progressbar/ETA), inbyggd COPY/IMPORT/EXPORT till Parquet/CSV.
    Integrationer: Pandas/Polars/Arrow i Python, dplyr/dbplyr i R, BI-verktyg via ODBC/JDBC.


    Vad används DuckDB till?
    • Interaktiv analys (OLAP) direkt i laptops/notebooks utan databasserver.
    • Snabb SQL över datafiler (Parquet/CSV/JSON) – lokalt eller över httpfs.
    • ETL/ELT-steg i pipeline: läsa, transformera och skriva Parquet/Iceberg.
    • Prototyping/experiment i Python/R – kör SQL nära dataframes/Arrow-tabeller.
    • Inbäddade applikationer som behöver kolumnlagrad analysdatabas i processen.
    • Datakvalitet, ad-hoc-frågor, testning av SQL-logik innan produktion.
    Typiska styrkor
    • Zero-install/zero-server: enkel att paketera och distribuera.
    • Hög hastighet på kolumnära, analytiska frågor; effektiv komprimering.
    • Direkt arbetsflöde med datafiler (ingen import nödvändig).
    • Stark integration med dataekosystemet (Arrow, Pandas, Parquet, Iceberg).
    Begränsningar att känna till
    • Inte en fleranvändarserver som PostgreSQL; bäst i enprocess-/enmaskinsscenarier.
    • Inga manuella B-trädindex; arbetsset och filstatistik är nyckeln till prestanda.
  • Microsoft lämnar över DocumentDB till Linux Foundation – blir öppen och leverantörsneutral

    Microsoft tar ännu ett steg mot öppen källkod. Bara sju månader efter lanseringen lämnar bolaget över sin NoSQL-databas DocumentDB till Linux Foundation – ett beslut som gör tekniken leverantörsneutral och öppnar för bredare samarbete inom open source-världen.

    Microsoft tar nästa steg i sin satsning på öppen källkod genom att donera sin NoSQL-databas DocumentDB till Linux Foundation. Beskedet kommer bara sju månader efter att projektet lanserades, och innebär att utvecklingen nu flyttas från bolagsstyrning till ett gemenskapsdrivet format.

    DocumentDB är en distribuerad databas byggd på PostgreSQL och designad för att hantera dokumentorienterade arbetslaster i stor skala. Den togs ursprungligen fram internt på Microsoft för att säkra hög tillgänglighet och flexibilitet vid lagring av JSON-data.

    Med Linux Foundation som värd kommer projektet att få en neutral plattform där tekniska kommittéer och öppna arbetsgrupper ansvarar för utvecklingen. Syftet är att beslut om nya funktioner, prestandaförbättringar och långsiktigt stöd ska fattas gemensamt, i stället för enbart av Microsoft.

    För utvecklare och organisationer öppnar förändringen upp för bredare interoperabilitet med andra open source-verktyg. Samtidigt skapas en större trygghet kring projektets framtid, eftersom utvecklingsplanen inte längre är knuten till Microsofts interna prioriteringar.

    – Att Microsoft väljer att lämna över kontrollen av DocumentDB är en tydlig signal om att företaget vill bygga förtroende i open source-världen, säger en branschanalytiker. – Det stärker också chanserna att andra aktörer, som molnleverantörer och databasföretag, går in och bidrar aktivt.

    Fakta: DocumentDB

    Typ
    Distribuerad NoSQL-databas, byggd på PostgreSQL
    Syfte
    Hantera dokumentorienterade arbetslaster i stor skala med hög tillgänglighet och flexibilitet för JSON-lagring.
    Funktioner
    • JSON-baserad datalagring
    • Hög tillgänglighet & horisontell skalning
    • Distribuerad arkitektur för stora datamängder
    • PostgreSQL-kompatibilitet (bred verktygs-/ekosystemstöd)
    • Öppen styrning via Linux Foundation
    Plattformar
    • Linux, Windows, macOS
    • Containers: Docker & Kubernetes
    • Privata och publika moln
  • Go 1.25 – Nya funktioner, snabbare prestanda och experimentella tekniker

    Go är ett urgammalt strategibrädspel från Kina, spelat med svarta och vita stenar på ett rutnät. Målet är att omringa områden och fånga motståndarens stenar. Det har inget att göra med programmeringsspråket Go. Reglerna är enkla men spelet är djupt och komplext.I Go betyder atari att en sten eller grupp har bara en fri punkt kvar och riskerar att fångas nästa drag. Företaget Atari valde namnet för att det signalerar ett kritiskt och avgörande läge i spelet.

    Go-projektet har släppt version 1.25 av sitt programmeringsspråk, och uppdateringen är full av förbättringar inom både verktyg, kompilator, runtime och standardbibliotek. Som vanligt kommer versionen precis sex månader efter föregångaren, men den här gången introduceras flera spännande nyheter – inklusive två större experimentella funktioner.

    Ny experimentell Garbage Collector
    En av de mest intressanta nyheterna är en ny garbage collector som är optimerad för att hantera många små objekt mer effektivt. Tester visar att den kan minska minneshanteringskostnaden med 10–40 % i praktiska scenarier. Den är inte aktiverad som standard – utvecklare behöver slå på den själva och kan sedan lämna feedback till Go-teamet.

    Snabbare och mer flexibel JSON-hantering
    Den andra stora experimentella nyheten är paketet encoding/json/v2. Det är en uppdaterad JSON-implementation som lovar snabbare avkodning och fler konfigurationsmöjligheter. Även den här funktionen kräver att man aktivt väljer att använda den.

    Automatisk optimering i container-miljöer
    Go 1.25 gör att GOMAXPROCS nu automatiskt anpassar sig efter tillgängliga CPU-resurser i miljöer som Kubernetes. Tidigare krävdes manuell konfigurering för att uppnå detta.

    Förbättringar i kompilatorn

    • Snabbare allokering av slices.
    • DWARF5-debuginformation, vilket minskar storleken på binärer och påskyndar länkning, särskilt i större projekt.

    Förbättrade utvecklingsverktyg

    • Nya go vet-kontroller som fångar upp vanliga programmeringsfel.
    • Möjlighet att ignorera mappar direkt i go.mod.
    • go doc kan nu köra en lokal dokumentationsserver med flaggan -http.
    • Ett helt nytt paket – testing/synctest – gör det lättare att testa parallell kod utan risk för klassiska race condition-problem.

    Standardbiblioteket och säkerhet

    • Förbättrad prestanda i kryptografiska algoritmer.
    • Mer konsekvent hantering av ASN.1-data.
    • Nya funktioner för nätverks- och TLS-anslutningar.

    Plattformsförändringar

    • Äldre versioner av macOS stöds inte längre.
    • Go 1.25 är den sista versionen med stöd för 32-bitars Windows/ARM, som nu tas ur bruk.

    Tillgänglighet
    Go 1.25 kan laddas ned som färdiga binärfiler och installationspaket från den officiella nedladdningssidan. En fullständig lista över alla ändringar finns i Go 1.25 Release Notes, och fler blogginlägg från utvecklingsteamet väntas de närmaste veckorna.

    Exempel i språket go

    Ett enkelt program som skriver Hello, World! i terminalen:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    

    Förklaring:

    • package main – anger att programmet är ett körbart program.
    • import "fmt" – tar in paketet fmt för utskrift.
    • func main() – huvudfunktionen som körs först.
    • fmt.Println(...) – skriver ut text med radbrytning.

    Kör programmet:

    go run hello.go

    Kompilera till en binärfil:

    go build -o hello hello.go
    ./hello

    Faktaruta: programmeringsspråket Go

    Översikt

    Go (även kallat Golang) är ett kompilerat, statiskt typat språk från Google med inbyggd stöd för samtidighet (goroutines och kanaler), snabb kompilering och enkel distribution som fristående binärer.

    Vad språket klarar

    • Högpresterande nätverks- och serverprogram med låg latens.
    • Massiv samtidighet via goroutines och chan utan trådbekymmer.
    • Snabb kompilering till statiska, portabla binärer (lätt att containerisera).
    • Inbyggd minnessäkerhet och garbage collection.
    • Stort standardbibliotek: nätverk, HTTP, kryptografi, testning m.m.
    • Förstklassiga verktyg: go build, go test, go fmt, go vet, moduler.

    Vanliga användningsområden

    • Moln- och mikrotjänster, REST/GraphQL-API:er.
    • Distribuerade system, nätverksservrar, proxyer och gateways.
    • DevOps- och plattformsverktyg (t.ex. Docker, delar av Kubernetes-ekosystemet).
    • Kommandoradsverktyg och automation.
    • Data- och meddelandeflöden (streaming), observability/telemetri.

    Kort historik

    • Startat på Google av Robert Griesemer, Rob Pike och Ken Thompson.
    • Offentligt presenterat 2009; version 1.0 släpptes 2012.
    • Designmål: enkelhet, snabbhet, effektiv samtidighet och stark verktygskedja.

    Styrkor & saker att känna till

    • Styrkor: enkel syntax, snabb kompilering, robust standardbibliotek, utmärkt samtidighetsmodell.
    • Observera: minimalistisk generik (finns), inga undantag (errors hanteras explicit), mindre fokus på OOP-arv; GUI och mycket tunga numeriska arbetsflöden görs ofta i andra ekosystem.

    Exempel (körbar binär i en fil): go build -o app .

  • Bygg din egen diskförstörare med webbgränssnitt – praktisk tillämpning och utvärdering

    Tux och en svensk tiger raderar hårddiskar, så att inte lede fi kan se innehållet.

    Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se den ursprungliga artikeln.

    Bakgrund och syfte

    Under många år har jag samlat på mig ett stort antal hårddiskar, främst mekaniska (HDD), både egna och från andra. Av integritetsskäl har jag aldrig vågat lämna dem till återvinning utan att först säkerställa att datainnehållet är oåterkalleligt raderat. Många av diskarna innehåller potentiellt känslig information, och eftersom jag åtagit mig ansvaret att hantera även andras lagringsmedia professionellt, är datadestruktion med hög säkerhet ett absolut krav.

    Erfarenheter från drift

    Under de senaste veckorna har jag använt det webbaserade diskförstörare-systemet i praktiken. Det har fungerat stabilt och är användarvänligt, med tydlig återkoppling via gränssnittet. En stor fördel är att raderingsförloppet kan övervakas i realtid via webbläsaren, vilket gör det enklare att logga förlopp, bekräfta färdigställd radering och felsöka vid behov.

    Identifierade begränsningar

    Den nuvarande implementationen i webbappen har dock en begränsning: den hanterar endast en hårddisk åt gången. I situationer där man vill sanera flera diskar parallellt – t.ex. i en batchprocess – är detta en flaskhals. Om man istället kör raderingen via terminal (SSH) och använder shred direkt mot flera enheter i bakgrunden (t.ex. via screen eller tmux), kan man utnyttja maskinens resurser bättre och köra flera shred-processer samtidigt.

    Exempel på parallell radering via SSH:

    sudo shred -vzn 3 /dev/sdX &
    sudo shred -vzn 3 /dev/sdY &
    sudo shred -vzn 3 /dev/sdZ &
    
    Svensk manaulsida till shred

    Här raderas tre diskar parallellt med 3 överskrivningar och nollfyllning på slutet.

    Slutsats och nästa steg

    Trots begränsningen med sekventiell radering fungerar webbappen som ett robust och lättanvänt gränssnitt för manuell diskhantering. I nästa iteration planeras stöd för köhantering av flera diskar och eventuell integration med udev-regler för automatisk identifiering av nya enheter. Även loggning och export av raderingsrapporter i text- eller JSON-format övervägs.

    Lede fi bli ledsen i ögat när en Svensk tiger.

Etikett: JSON

  • DuckDB 1.4 LTS – säkerhet, prestanda och nya funktioner för framtidens databas

    DuckDB, databasen som ofta kallas ”SQLite för analys”, har släppt version 1.4 – en långsiktigt stödd utgåva full med nyheter. Med inbyggd kryptering, stöd för MERGE-kommandot, skrivning till Iceberg och förbättrad prestanda tar DuckDB ännu ett kliv mot att bli en av de mest flexibla och kraftfulla analysdatabaserna på marknaden. DuckDB, den lilla men kraftfulla…

  • Microsoft lämnar över DocumentDB till Linux Foundation – blir öppen och leverantörsneutral

    Microsoft tar ännu ett steg mot öppen källkod. Bara sju månader efter lanseringen lämnar bolaget över sin NoSQL-databas DocumentDB till Linux Foundation – ett beslut som gör tekniken leverantörsneutral och öppnar för bredare samarbete inom open source-världen. Microsoft tar nästa steg i sin satsning på öppen källkod genom att donera sin NoSQL-databas DocumentDB till Linux…

  • Go 1.25 – Nya funktioner, snabbare prestanda och experimentella tekniker

    Go-projektet har släppt version 1.25 av sitt programmeringsspråk, och uppdateringen är full av förbättringar inom både verktyg, kompilator, runtime och standardbibliotek. Som vanligt kommer versionen precis sex månader efter föregångaren, men den här gången introduceras flera spännande nyheter – inklusive två större experimentella funktioner. Ny experimentell Garbage CollectorEn av de mest intressanta nyheterna är en…

  • Bygg din egen diskförstörare med webbgränssnitt – praktisk tillämpning och utvärdering

    Tidigare denna månad presenterade vi ett inlägg om hur man återbrukar en uttjänt dator och förvandlar den till en dedikerad diskförstörare med webbgränssnitt. Artikeln beskrev en lösning där en gammal maskin utrustas med ett skriptbaserat webbgränssnitt för att hantera radering av hårddiskar lokalt och fjärrstyrt. För mer information om hur systemet byggs upp – se…