URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 132868
[ Назад ]

Исходное сообщение
"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запросов"

Отправлено opennews , 18-Фев-24 12:54 
Представлен выпуск СУБД DuckDB 0.10.0, сочетающей такие свойства SQLite, как компактность, возможность подключения в форме встраиваемой библиотеки, хранение БД в одном файле и удобный CLI-интерфейс, со средствами и оптимизациями для выполнения аналитических запросов, охватывающих значительную часть хранимых данных, например, выполняющих агрегирование всего содержимого таблиц или слияние нескольких больших таблиц. Код проекта распространяется под лицензией MIT. Разработка пока находится на стадии формирования экспериментальных выпусков, так как формат хранилища пока не стабилизирован и меняется от версии к версии...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60621


Содержание

Сообщения в этом обсуждении
"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 12:54 
Разработчики из поисковика DuckDuckGo?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 13:17 
Нет. "DuckDB is maintained by Dr. Mark Raasveldt & Prof. Dr. Hannes Mühleisen. DuckDB’s initial development took place at the Database Architectures Group at the Centrum Wiskunde & Informatica (CWI) in Amsterdam, The Netherland"

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 14:26 
>Prof. Dr. Hannes Mühleisen.

Интересно конечно и профессор и доктор сразу.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено ы , 18-Фев-24 17:29 
А для вас докто - это врач, да?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 18:36 
Да.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 00:55 
Интересно, он сам код писал или припахал студентов "за оценки" чтобы нагло стырить результаты их работы и выдать за своё?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 15:01 
Расскажи историю, а кто из русских преподователей так делает? Ты ведь с непроста так написал.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено михаилка , 18-Фев-24 13:38 
И зачем это нужно, когда есть clickhouse-local, который 1) умеет примерно все (без шуток) 2) делает это с несравнимо более хорошей производительностью

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 13:49 
...Ты серьёзно предлагаешь БД для хранения гигабайтов данных использовать вместо склайта?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 15:52 
Т.е. не подходит для хранения сотен терабайт данных, как скулайт? Вообще, я заметил, что мало кто может конкурировать со скулайтом в этом, в том числе, это касается большинства проприетарных бд.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено михаилка , 18-Фев-24 18:25 
кликхаус - это не только БД для хранения гигабайтов данных. это еще и инструмент (который может работать без сервера в clickhouse-local), который позволяет делать сложные запросы читать (да и писать) примерно из любого формата в данных (от файла с CSV до postgresql и parquet на s3) и делать это в общем случае быстрее любых других инструментов.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 15:49 
Кликхаус проприетарь, сабж нет

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено михаилка , 18-Фев-24 18:18 
Эмм, кликхаус под apache, сабж под mit

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено похъ , 18-Фев-24 17:11 
он умеет все исключительно на бумаге. А на деле умеет только сегфолтиться на любом ровном месте.
Или просто не работать.

Не говоря уже о разнице между базкой для time-value записей и базой для аналитики - из первой никто и никогда никаких сложных запросов делать не будет.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено михаилка , 18-Фев-24 18:21 
> он умеет все исключительно на бумаге. А на деле умеет только сегфолтиться на любом ровном месте.
> Или просто не работать.

ога, конечно

> Не говоря уже о разнице между базкой для time-value записей и базой для аналитики - из первой никто и никогда никаких сложных запросов делать не будет

а где вы увидели time-value записей? и то, и другое - OLAP


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 21:33 
CH мало чего умеет из списка. Это сильно специализированная СУБД, не подходит для многих видов работ

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 14:13 
А возможна ли прозрачная замена libsqlite на встраиваемую либу этой дакдб? Чтобы в системе просто заменить — и всё её юзало, в том числе все питоньи приложения через обычный import sqlite3, с дополнительными фичами — через SQL-запросы.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 16:33 
Нет надежды, для начала пришлось бы переписать её с плюсов на си.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 18:42 
Звездеть — не мешки ворочать.

>We also provide a SQLite API wrapper which means that if your applications is programmed against the SQLite C API, you can re‑link to DuckDB and it should continue working. See the sqlite_api_wrapper folder in our source repository for more information.

Можно.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 18:55 
Если у плюсов нет аби (до сих пор!), так о чём можно говорить? Замена уже никак не получится.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 19:14 
libsqlite - это сишная биба, не плюсовая.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 19:29 
> libsqlite - это сишная биба, не плюсовая.

Ты всё правильно понял.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 20-Фев-24 03:18 
Что сказать-то хотел, сишник ты наш? Любая плюсовая обычная функция может быть экспортирована как сишная через extern "C".

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 20-Фев-24 06:28 
Вот поэтому плюсы не нужны.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 14:28 
Так и не понял в чем уникальное торговое предложение (УТП) сабжа.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 15:50 
Встраемавая бд для аналитических запросов

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 14:29 
Какая база данных лучше всего, почему, какую выбрать?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Вы забыли заполнить поле Name , 18-Фев-24 19:53 
От задачи зависит. Универсальных нет. Пойми свой workload, потом выбирай.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Баба Ванга , 18-Фев-24 21:57 
Для тебя — MS Access.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Anonim , 21-Фев-24 11:05 
В Access можно искать семантические циклы, но ... только до семи вложений. Не имею опыта - в других SQL системах есть такая опция как "копия таблицы"?

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 08:57 
текстовый файл

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено penetrator , 18-Фев-24 14:50 
> DuckDB is a fast in-process analytical database

кто-нибудь может объяснить это как?

олап кубы это же подготовили в фоне для будущего массивного чтения

а что делать если это в пределах моего процесса? т.е. скрыть наличие еще одной базы? и стучаться к локальному файлу? а зачем?

что я не понял?


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 17:45 
>олап кубы это же подготовили

Ты где-нибудь рабочие olap-системы вживую видел? У меня вот в вузе одна такая была, сервер насиловали одновременно 30 человек и было проще стянуть базу и сделать дома, чем насиловать в 30 рыл один сервер за 40 минут, когда запрос проходил за 20. Дома этот запрос на sqlite проходил за пять - никто не насиловал диск в 30 рыл.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено penetrator , 18-Фев-24 19:27 
так может это не OLAP? а OLTP?

странная оптимизация под запросы, если он потом выполняется 20 минут


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 21:39 
У нас был redshift на aws проекте, было норм как data lake

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 05:37 
Дак ты сравнил тоже. Российские вузы в среднем неплохо обучают фундаменталке, что не мешает им быть рассадником профнепригодного технического персонала, сроду не имевшего опыта работы в коммерческих IT-компаниях, в силу чего уровень администрирования чего-либо в вузах чудовищно убог.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 10:06 
>Дак ты сравнил тоже. Российские вузы в среднем неплохо обучают фундаменталке

В среднем по России образование отсталое. И обучают фундаменталке плохо.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 10:24 
Дискретке и алгоритмам обучают нормально, всякие нейросети студенты сами осилят

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 19-Фев-24 10:48 
Нейросетям обучают офигенно.

Особенно в ВШЭ, я сам туда как-то планировал поступать на Machine Learning в магистратуру. Но потом передумал (уже специалист).

В МФТИ скорее всего очень хорошо обучают, в МГУ.

Есть офигенный курс по Deep Learning от НГУ, кажется. Его читал мужчина прямо из Кремниевой Долины (наш, русский).

А так... в каком-нибудь Арканзасском Университете ничерта не обучают нейронкам нормально тоже.

Более того смотрел лекции и слайды от топовых мировых университетов американских. Там там просто ужас и кошмар, разобраться в этом невозможно. В общем зависит от курса к курсу.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Бывалый Смузихлёб , 19-Фев-24 11:44 
> А так... в каком-нибудь Арканзасском Университете ничерта не обучают нейронкам нормально
> тоже.
> Более того смотрел лекции и слайды от топовых мировых университетов американских. Там
> там просто ужас и кошмар, разобраться в этом невозможно. В общем
> зависит от курса к курсу.

А зачем им это с махрово-платным образованием ?
Чем лучше открытые курсы и лекции - тем меньше смысла студенту брать кредит( который не спишут при банкротстве ) и дарить деньги ВУЗу


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 19-Фев-24 15:22 
Не знаю, но образование ты таким образом не получишь. Как минимум нет экзаменов (проверка усвоенного материала) в конце курса, часто выложены только слайды, видео нет. Или нет проверок заданий (где ручкой нужно что-то писать).

Думаю в основном это инициатива самого лектора. Есть буквально самый лучший в мире курс лекций по базам данных от Andy Pavlo. Там есть всё. Включая возможность писать код и прогонять через их систему тестов.

Но для Advanced Database Systems уже в основном только лекции.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Бывалый Смузихлёб , 19-Фев-24 11:53 
> В среднем по России образование отсталое. И обучают фундаменталке плохо.

Это смотря кто и как считает
Некоторые любят рассказывать сказки про американское супер-образование, но, почему-то огромное количество идей и достижений получается за счёт приезжих 1-2 поколения( бСССР / азия )
Тогда как итогом чисто американского образования( 2+ поколение жителей штатов ) является исчезающе-малое количество открытый, наработок и прочего


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 18:34 
В твоём сообщении смешаны времена, люди и кони.
1. Советское/Российское образование самое лучшее в мире - это ложь.
2. Вклад Русских эимгрантов в американское образование и науку ничтожен, там лидируют китайцы и индусы.
3. Американское образование лучшее в мире - это тоже ложь. Разрекламированные и богатые коллежди типа Гарвард, МТИ, Принстон, это уже другая история.

В СССР был массовый отбор одарённых детей по всей стране. Эти дети сначала учились в математических классах, потом поступали в МФТИ или МГУ, потом они должны были трудится в советских НИИ, где они осваивали ворованные иностранные технологии. Самим им государство не разрешала разрабатывать технологии. Эти дети были с приобретёнными психическими расстройствами. Получил двойку - опозорил родителей, подвёл Родину. Разрушительный "культ отличника". Некоторые дети умели читать и писать с двух лет, с трёх сочиняли стихи - передаю привет их родителям, если они ещё живы.

США. В обществе презирают наку, если эта наука не приносит доход. Причём американцу нужны быстрые деньги. Ну и, компьютеры это святое, да и  монетизация в сфере IT неплохая, поэтому среди американцев и много лауреатов премии Тьюринга.

Сейчас происходит глобализация, если вам важны качественные знания а не корочка, то ищите преподователей а не учебные заведения. Как ни странно есть отличные преподователи среди индусов, да-да они разговаривают по английски с индусским акцентом. Есть замечательные учителя математики среди китайских эммигрантов.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 19-Фев-24 08:15 
OLAP кубы - это древняя технология. Попытка добавить аналитику в OLTP (row-store) базы данных. Нужно заранее их готовить, на конкретные запросы.

Сейчас хотят из коробки иметь аналитические запросы. Для этого и создали OLAP (column-store) базы данных.

Там на индексы пофиг, на транзакции пофиг (в целом). Главное иметь быстрый table scan - сканирование всей таблицы с диска. И читать только несколько колонок (для этого и сделали column-store хранилище).


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 15:51 
Проблема у неё та же, что и у склайт: может только в один процесс.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено swarus , 18-Фев-24 17:20 
уточняй insert update в один процесс (да и то если один закрыл файл-базу, то другой может продолжить), чтение в сколько хочешь

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 17:00 
> Учётные данные сохраняются в файле ~/.duckdb/stored_secrets

Расскажите им кто-нибудь про XDG Base Directory Specification.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 18-Фев-24 19:28 
Чтобы какой-нибудь дурачок потом переписал файлы в этих директориях и повредил базу данных?

Уверен сами дистрибутивы (и пакеты которые они предоставляют) НЕ используют и применяют эту спецификацию. Кто во что горазд.

И сегодня твоя $XDG_DATA_HOME выставлена, а завтра нет (или по дефолту указывает на другую директорию, или просто указывает на другую директорию).

И тютю твоя база данных. Удачи тебе собрать все компоненты теперь (файлы таблиц, файлы индексов, write-ahead log, и ещё кучу всего).

А также удачи упаковать всё в один архив (для бэкапа) и т.п.

Snap и Flatpak тоже так не работают.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Вы забыли заполнить поле Name , 18-Фев-24 19:54 
> Уверен сами дистрибутивы (и пакеты которые они предоставляют) НЕ используют и применяют эту спецификацию. Кто во что горазд.

Если бы это было так, то директория $HOME/.config/ была бы пустой.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 18-Фев-24 20:04 
Я не говорю что полностью не используют. Но помимо этой директории появляется куча своих. Даже у neovim свои директории, у VS Code, у кучи консольных утилит.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 18-Фев-24 20:18 
> кучи помойных утилит

исправил


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 19-Фев-24 10:09 
>Чтобы какой-нибудь дурачок потом переписал файлы в этих директориях и повредил базу данных?

Дурачок здесь ты, причём тёмный и дикий. Это просто стандартизации расположения файлов кеша, конфигураций и пользовательских файлов.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено голос из леса , 18-Фев-24 17:59 
>> формат хранилища пока не стабилизирован и меняется от версии к версии.

Ну то есть кроме идеи самого главного еще и нет. даю 95% что не взлетит.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено похъ , 18-Фев-24 18:06 
оно изначально затевалось для работы с чужими данными (внезапно - один из форматов - csv) выгружаемыми откуда-то где нельзя трахать сервер аналитикой за полтора квартала. Внутренний формат можно при этом  переделывать для лучшей оптимизации сколько угодно.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 18-Фев-24 18:33 
Шикарная передовая база данных. Очень интересная. Передовые структуры данных и алгоритмы.

База данных нового поколения.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Вы забыли заполнить поле Name , 18-Фев-24 19:56 
> Передовые структуры данных и алгоритмы.

Можно примеры?


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Витюшка , 18-Фев-24 20:12 
Я всё не знаю, но видел их презентации и исследования немного.

Например Partitioned Attributes Across (PAX) формат хранения данных. Такой гибрид row-store и column-store.

В классических column-store базах данных каждая колонка хранится в отдельном файле. И чтобы собрать строчку из 20-30 столбцов, нужно прочитать отдельно все эти 20-30 столбцов.

Многое у них в блоге можно посмотреть. Performance у них очень хороший.

Читал про адаптивные индексы (деталей не помню и не могу сказать имплементировы они или нет).

Но это целая научная группа, эксперты в базах данных. Альтернатив особо нет. У sqlite выигрывает вчистую (column-store позволяет сжимать данные одного типа хорошо, например, там много интересных оптимизаций в отличии от row-store (sqlite), тот же SIMD и т.п.)


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 20-Фев-24 00:31 
Сначала подумал, что кто-то сделал форк с обвесами. Смотрю, а вот на гитхабе и вебсайте у них нет ни единой отсылки на скулайт. Всё своё, видимо.

Должен заметить, что их релизная либа .so занимает толстенные 49MiB, в то время как старый добрый sqlite довлеет только на полторушку, так что я бы десять раз подумал о том, что а зачем оно мне.


"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено nc , 22-Фев-24 09:23 
Интересный проект. Я вот сейчас пишу на Go свой проект для исследования социального графа соцсетей, база на sqlite. При размере базы в несколько гигов уже стало подтормаживать, а ведь это не предел, по идее база может  быть и больше.
Но обертка для Go к этому вряд ли в ближайшее время появится.

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено ibnteo , 06-Мрт-24 00:06 
https://duckdb.org/docs/api/go

"Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запр..."
Отправлено Аноним , 27-Фев-24 01:52 
Прочитал доку. Вердикт — мусор, написанный в процессе детской игры разраба, когда он в рот тащит всё, что видит, включая кака. Разъясню поподробнее.

1. Субд реализует кучу синтаксисов, когда несколько синтаксисов делаютодно и то же, при этом на самом деле ни один из них не совместим с другими субд, а просто один немного напоминает синтаксис одной субд, а второй — синтаксис другой субд.
2. идиотские никому не нужные на практике свистоперделки, вроде рекурсивных подзапросов. Да, они позволяют обходить графы .... в ширину ... генерируя все пути ... и храня их. Для маленького игрушечного дэйтасета сойдёт. Для дейтасета того размера, что для его хранения нужна база ... просто потратит ресурс SSD/HDD, и в конце навернёт систему по OOM. Вообще не понятно, зачем заморочились с реализацией этой фичи.
3. система расширений .... качающая их из инета ... и ставящая в локальную папку ... и система проверки цифровых подписей на расширениях. Всё триггерится через SQL. Разрабу невдомёк, что установкой расширений должен заниматься пакетный менеджер, ставиться они должны в систему, проверка подписи на so-файлах — должна делаться не субд, а пакетным же менеджером, загрузка расширений из SQL-кода - это дыра в безопасности, а установка — тем более. И что вообще подписывание расширений — это хрень какая-то, особенно учитывая то, что можно поменять настройки и грузить и неподписанные. А вот отключить возможность загрузки подписанных вообще никак нельзя. Тянет на бэкдор.
4. из SQL-кода можно писать и читать произвольные файлы. Что сразу делает исполнение SQL-кода опасным.
5. для работы со всякими Amazon s3  используется своё расширение вместо того, чтобы сказать, что всё это out of scope и юзайте fuse.
6. питоньи биндинги имеют целых 3 альтернативных интерфейса, причём один из них прямо берёт и воспринимает локальные переменные как базы. Ещё одна дыра.
7. судя по тому, что в руководстве по сборке из либ требуется только openssl, все остальные либы пшхоже что инлайнятся на уровне исходников.

В общем: свистелок и перделок много, а вот  общая адекватность отсутствует напрочь.