DuckDB - первые впечатления - 1
Запись от sqltd1 размещена 28.04.2022 в 19:02
Показов 3313
Комментарии 0
Метки duckdb
|
Я собрался использовать в своем новом проекте DuckDB в качестве встраиваемого SQL-движка. Возможно, мои эксперименты будут интересны другим и подвигнут кого-нибудь переехать с Sqlite на DuckDB. Когда я первый раз услышал о DuckDB, он продвигался под слоганом "DuckDB - это Sqlite для аналитиков". Сейчас этот слоган почти исчез из употребления, но тем не менее "уши" Sqlite остались торчать во многих местах. С одной стороны это облегчает переезд с Sqlite на DuckDB, в некоторых аспектах они достаточно сильно похожи. С другой стороны - это совершенно разные продукты как по сфере применения, так и по предоставлеяемому сторонним разработчикам АПИ. Когда можно использовать DuckDB?
Когда не стоит использовать DuckDB?
Итак поехали. В этой заметке я расскажу как устанавливается консольный клиент DuckDB. Заодно проведем несколько экспериментов. Загрузка. Зайдите на страницу https://duckdb.org/docs/installation/ Выберите CLI в разделе Environment, Binary в разделе Package и ОС(Windows/MacOS/Linux) в разделе Platform Загрузите zip-архив, потом распакуйте и переместите в любое удобное место. Я для экспериментов создал каталог test, в который и поместил все файлы для тестирования (в моем случае там находятся еще sqlite3, с которым мы будем осуществлять сравнение, и некоторые другие файлы). Сравним DuckDB и Sqlite по скорости загрузки CSV-файла. Для этого загрузим 250-мб файл с данными по Нью-Йоркским такси https://nyc-tlc.s3.amazonaws.c... 022-01.csv Все файлы (за исключением файла данных) с тестами для экспериментов прикреплены к этой заметке Первый тест - загрузка в базу данных DuckDB.
объем файла testduck.db - 149.2mb Второй тест - загрузка в базу данных Sqlite.
объем файла testsqlite.db - 271.4mb Можно сделать первые выводы. Скорость загрузки данных в обоих случаях примерно одинакова. Но размеры файлов баз данных различаются почти в два раза. Третий тест - суммирование значений столбца (DuckDB).
Четвертый тест - суммирование значений столбца (Sqlite).
DuckDB показал в четыре раза более высокую скорость, что вполне ожидаемо для движка, который работает со столбцами, а не с записями. На сегодня все. | ||||||||||||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


