İyi ördek, tamam mı? Duckdb özel bir veritabanıdır

pembikbulut

Global Mod
Global Mod


  1. İyi ördek, tamam mı? Duckdb özel bir veritabanıdır

Son zamanlarda onunla daha önce tanışmak isteyeceğim yazılıma rastladım. Ancak, atasözünün dediği gibi: her zamankinden daha iyi. Bu yazılım, bazı şeyleri olağan şüphelerden farklı kılan alışılmadık bir veritabanıdır. Konuşuyoruz ve bu, 1.0 finali sürümü bir hafta önce yayınlanan Duckdb tarafından açık bir şekilde bu blog yayınının başlığına tahmin edilebilir. Bu veritabanına bir göz atmak için nedenlerden biri budur.








Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.







Duckdb Hollanda'dan geliyor ve başlangıçta bir üniversite projesiydi. Veritabanı 2018'den beri geliştirildi, yani altı yıldır. Şimdi piyasada daha fazla veritabanı yokmuş gibi değil, DuckDB'de not almaya değer bazı özel özellikler var. DuckDB'nin diğer birçok veritabanına (PostgreSQL, MariaDB, SQL Server veya Oracle gibi) kıyasla bir istemci sunucu sistemi olarak oluşturulmaması ile başlar, ancak veritabanının dahil edilmesi ve devam etmesi.

Devam eden ve hafızada


Bu, uygulamanın daha sonra veritabanı motorunu getirmesi için uygulamasına mükemmel bir şekilde entegre edilebileceği anlamına gelir: uygulamayı başlatırsanız, veritabanı oradadır. Uygulama bitmişse, veritabanı da biter. Belki bu size süreçte başka bir veritabanını hatırlatır, yani SQLite. Bu son derece yaygın veritabanı önemli ölçüde aynı şekilde çalışır, ancak ikisi arasında çok ciddi bir fark vardır. Ama bunun hakkında daha sonra konuşacağız.


Önerilen editoryal içerik



Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.



YouTube videosu her zaman yüklenir

YouTube videosu artık yüklüyor




Duckdb: Duck iyi, her şey yolunda mı?




Duckdb, ve bu aynı zamanda özel bir özelliktir, ancak sadece gerçek uygulama ile devam etmekle kalmaz, aynı zamanda iki işletim yöntemi de bilir: verileri çok klasik bir şekilde veya devam edebilir veya devam edebilir ve bu olağandışıdır, yani bellekte, yani tamamen kalıcılık olmadan gerçekleştirilebilir. Başlangıçta biraz saçma görünebilir, ancak bazı senaryolarda inanılmaz derecede pratik ve yararlıdır. Ve (açıkçası bu da çok ciddi bir nokta) hafızadaki bu işlemde, DuckDB hızlı bir şekilde hızlıdır.

OLAP'a odaklanın


Ve bununla birlikte, SQLite tarafından dahil edilen süreç içi veritabanı olarak da alabileceğiniz gerçek DuckDB uzmanlığına geliyoruz, örneğin: SQLITE temel olarak tabloları bilen ve veri hattını bu tablolarda depolayan SQL tabanlı bir ilişki veritabanıdır. Bu, birçok uygulama için pratiktir, çünkü veriler veri kaydı için veri kayıtlarına göre genellikle okunur ve işlenir. Ancak: böyle olmak zorunda değil.

Çizgiler yerine sütunları okuyabilmem (veya yazabilmem) çok daha pratik olacağı uygulamalar da vardır. Bu her zaman, örneğin istatistik, analiz, raporlar vb. Prensip olarak, OLTP yerine OLAP alanına düşen her şeyle.

Burada heyecan verici hale geliyor: DuckDB, sütun odaklı bir veritabanıdır, yani günlük operasyonel iş için çok tasarlanmış, ancak veri analizi alanıyla yüzleşir. Başka bir deyişle: Duckdb ile devam eden bir tane ve istenirse, bellekte SQL ile kontrol edilebilen ve veri analizi ve OLAP için tasarlanmış bir motorunuz var. Prensip olarak, Apache Spark gibi bir şey, sadece küçük, sevimli, hafif ve birçok kez daha kolay duydu.

Ve bu aslında oldukça benzersiz bir güç. Böyle bir veritabanı (ya da daha doğrusu: verilen) en azından henüz bilmediğim kadarıyla.

Her şeyle entegrasyon


Birkaç gün önce aynı bölgede çalışan bir arkadaşımla konuştum ve tesadüfen parlamaya geldik. Gerçekten çok fazla veriye sahip olup olmadıklarını sordum, bir Sintlle kümesi çabasının buna değeceğini. Ve onun çok net cevabı hayırdı, kim tamamen RAM'de tek bir sunucuda yapılabilecek. Tabii ki, bu, kıvılcım için bir uygulama olmadığı anlamına gelmez, ancak çoğu zaman kıvılcım alternatif eksikliği nedeniyle zorunlu olarak kullanılır.

Birçoğu artık tüm bunların teoride iyi geldiğini düşünebilir, ancak gerçekte diğer çeşitli veri kaynaklarıyla entegrasyon gibi daha fazlaydı. Apache Arrow, Parke Dosyaları, CSV, JSON, Excel ve S3 gibi anahtar kelimeler odada olabilir. Güzel olan şey: Duckdb her şeyi yapabilir. Duckdb Parke Dosyaları ve CSV, JSON ve Excel içerir. DuckDB, diğer veritabanlarını bir veritabanı olarak bile entegre edebilir. Bu, DuckDB ile ayrı bir adaptöre ihtiyaç duymadan doğrudan bir PostgreSQL veya bir mariaDB'yi bağlamak mümkün olduğu anlamına gelir.

Sonsuz işlevsellik


Bununla birlikte, ilginç özelliklerin listesi önemli ölçüde devam ediyor: DuckDB, SQL'i destekliyor (sıklıkla olduğu gibi) sadece dar kalibreli bir varyant değil, ancak SQL'in bu günlerde sunması gereken neredeyse her şey: İşlem endekslerinden, ortak tabletlerin ifadesi, anlık izolasyon, küp fonksiyonları, scarco ve çok daha fazlası. Yavaş yavaş keşfettiğimde çok etkilendim.

Ve DuckDB C ++ ile yazıldığından, veritabanını bir yandan neredeyse tüm ortak platformlarda (macOS, Linux, Windows) ve mimaride (x86, kol) kullanmak mümkündür. Öte yandan, DuckDB hemen hemen tüm diğer teknolojilere entegre edilebilir. Go, Node.js, Python, R, Rust, Java, Julia, Swift ve diğerleri dahil olmak üzere evden zaten bir dizi adaptör var. Duckdb'nin tarayıcıda tamamen yapılabilmesi için bir Webass topluluk binası da var! Ve hepsi az ya da çok birkaç satır kod ile, çünkü kurulum ve bağlantı gerçekten basittir.

Kurulumdan bahsetmişken: Yalnızca DuckDB deneyimliyorsanız ve doğrudan bir uygulama oluşturmak istemiyorsanız, DuckDB'yi ilgili işletim sisteminin paketinin yönetimi aracılığıyla da yükleyebilir ve bir CLI aracılığıyla bağımsız araçlar olarak başlatabilirsiniz. Aynı zamanda, bu aynı zamanda her uygulamanın açıkça DuckDB'nin kendi yerel sürümüne sahip olabileceği anlamına gelir, çünkü herkesin paylaşması gereken bir sunucu olarak sistem kurulumu yoktur. Prensip olarak, bu sadece kod tabanınız için yüklediğiniz normal bir bağımlılıktır.

Sürüm 1.0 ne anlama geliyor?


Geçen hafta 1.0 sürümünü yazdım. Bu “Snow Duck” kod adı taşır. Aslında, bu, Apple'ın o sırada “Sıfır Özellikleri” sloganı ile reklam veren MacOS 10.6 “Snow Leopard” için bir ima. DuckDB'nin geliştiricilerine göre tam olarak 1.0'ın ana hedefi budur: gerçekten istikrarlı bir banliyösünü sağlamak. Duckdb'yi biraz daha takip eden herkes, zamanla dosya biçimini kırmada bir veya diğer değişiklik olduğunu bilir. Ama şimdi de sabit ve nihayet tanımlanmış. Geliştiriciler, Duckdb 1.0'ın artık gerçekten istikrarlı bir versiyon olarak kabul edildiğini söylüyor.

Geliştiricilerden bahsetmişken: DuckDB'nin başlangıçta bir üniversite olduğunu da belirttim. Bununla birlikte, geliştirme artık bunun tarafından oluşturulan bir şirketin sorumluluğundadır, yani DuckDB laboratuvarları. Bu da dış yatırımcılara bağlı değildir, ancak tamamen başlatılır. Şahsen mükemmel bir işaret buluyorum, çünkü bu bir şirketin teknolojik olarak makul kararlar verebileceği ve yatırımcıları tatmin etmek için sayılar açısından hiçbir şey yapmaması gerektiği anlamına geliyor. Bu yüzden şahsen DuckDB'nin iyi bir gelecekle karşı karşıya olduğunu düşünüyorum.

Parlak bir gelecek


Gelecekten bahsetmişken: Tüm bunlar DuckDB'ye bir göz atmak için yeterli değilse, metin arayışı için işlev aralığını genişletmenin veya jeo-patetik verileri yönetmek için mümkün olduğu bir dizi uzantının da olduğu da belirtilmelidir.

Sonunda meraklı olan, henüz yayınlanmamış olanlara bir kitap önerebilirim (bu muhtemelen iki ay sürecektir), ancak yine de önceden okuyabilirsiniz: Manning Publishing'in “Duckdb eylemde”. Ön erişim MEAP programları (“Erken Erişim Programı”) aracılığıyla mümkündür. Kitaptan neyin mevcut olduğunu zaten okudum (ve bu kesinlikle neredeyse her şey) ve dediğim gibi: Çok tavsiye edebilirim! Thorben Janssen'in kitabının incelemesinde kitap hakkında daha fazlasını bulabilirsiniz.

Sonunda, her şeye rağmen, elbette, doğru uygulama sorunu ortaya çıkar. Duckdb veri analizi için tasarlanmıştır. Bu, klasik bir SQL veritabanı arıyorsanız, muhtemelen DuckDB'den çok mutlu olmayacağınız anlamına gelir. DuckDB, hala Olap & Co. ile karşılaşanlara bir görünümden daha fazlasıdır ve Spark & Co. için çok büyük ve çok karmaşıktır.


(RME)
 
Üst