Еще несколько лет назад выбор инструмента для аналитики выглядел как развилка между двумя крайностями: либо Excel и ручные выгрузки, которые упираются в потолок на сотне тысяч строк, либо тяжелая корпоративная машинерия: хранилище данных, кластер для распределенных вычислений, отдельная команда инженеров для их обслуживания. Между этими полюсами было пусто, и средним объемам данных и небольшим командам некуда было идти. За последнюю пару лет эту пустоту заполнил новый класс инструментов, и три названия в нем звучат чаще других: DuckDB, ClickHouse и MotherDuck.
Почему они вообще появились
За новым классом инструментов стоит пара технических сдвигов, о которых стоит сказать пару слов без погружения в детали. Первый — колоночное хранение. Обычные базы хранят данные строками, что удобно для приложений, где надо взять или записать одну запись целиком. Для анализа данных чаще нужно посчитать что-то по одному столбцу на миллионах строк, и хранение по колонкам делает такие запросы в разы быстрее. Вторым сдвигом является векторная обработка, когда система считает данные не по одной ячейке, а пачками, эффективно используя современные процессоры.
Также произошел и третий сдвиг: подешевела память и выросла мощность обычных ноутбуков. То, что раньше требовало кластера, сегодня помещается в оперативную память одной машины.
На стыке этих изменений и родились инструменты, которые дают аналитическую скорость без тяжелой инфраструктуры. Раньше выбор стоял между «слабо, но просто» и «мощно, но сложно», но теперь появилась середина: мощно и при этом просто.
DuckDB: SQLite для аналитики
DuckDB проще всего объяснить через аналогию: это SQLite, только для аналитических задач. Он встроенный, т.е. работает прямо внутри вашего приложения или ноутбука, без отдельного сервера, который надо поднимать и обслуживать. Поставил библиотеку, открыл файл с данными, пишешь SQL. Никакой инфраструктуры, никакого администратора баз данных.
Сила DuckDB в локальной и разовой аналитике. На одной машине он легко обрабатывает десятки гигабайт и по скорости может работать эффективнее более тяжелых системам. Его SQL основан на PostgreSQL и соответствует стандарту, так что аналитику не придется переучиваться. Для типичной задачи «есть выгрузка на несколько гигабайт, надо быстро посчитать» DuckDB часто оказывается самым коротким путем: там, где раньше нужен был тяжелый кластер, теперь хватает одной библиотеки на ноутбуке.
Еще одна сильная черта — DuckDB умеет читать данные прямо из файлов, не загружая их предварительно в базу. Положили на диск или в облачное хранилище набор файлов в колоночном формате (parquet и подобные), и затем пишете к ним SQL так, будто это таблица. Это снимает целый этап первоначальной загрузки данных в хранилище, на котором в классической схеме теряют время. Для разовых разборов и подготовки данных под отчет это экономит часы.
ClickHouse: когда данных действительно много
ClickHouse устроен иначе. Это серверная распределенная база, рассчитанная на по-настоящему большие объемы и на ситуацию, когда в дашборд одновременно смотрят сотни пользователей. Он разворачивается как отдельный сервис, масштабируется на несколько машин и отлично работает с заранее предсказуемыми, проиндексированными запросами — то, что нужно для пользовательской аналитики прямо внутри продукта.
За мощность приходится платить сложностью. ClickHouse надо разворачивать и сопровождать, а его диалект SQL нестандартный, со своими функциями и особенностями, к которым придется привыкать. Это инструмент для случая, когда объемы и нагрузка переросли возможности одной машины. Ставить ClickHouse ради пары гигабайт, значит стрелять из пушки по воробьям и потом еще годами кормить эту пушку.
MotherDuck: DuckDB в облаке
MotherDuck — это облачный сервис, построенный на DuckDB. Его главная идея заключается в так называемом двойном исполнении: часть запроса считается локально, на вашей машине с вашими файлами, а часть в облаке, на больших таблицах, и все это в рамках одного запроса. Получается мостик между удобством локального DuckDB и масштабом облака.
MotherDuck хорошо ложится на разовую аналитику, на нерегулярные всплески нагрузки и на сценарии, где не хочется держать постоянно работающий дорогой кластер. По стоимости для таких задач он заметно выигрывает у классических облачных хранилищ, потому что вы не платите за простаивающие мощности. Отдельно его сейчас продвигают как удобную основу для AI-агентов, которым нужно гонять запросы к данным по требованию.
Как выбрать
Свести выбор можно к нескольким вопросам.
Какой объем данных: гигабайты и работа на одной машине — DuckDB; терабайты и постоянная высокая нагрузка — ClickHouse.
Кто и как пользуется: разовый анализ силами одного-двух человек — DuckDB или MotherDuck; дашборд внутри продукта на сотни пользователей — ClickHouse.
Нужен ли вообще сервер: если хочется обойтись без инфраструктуры, начинайте с DuckDB локально, а когда упретесь в потолок одной машины, смотрите в сторону MotherDuck или ClickHouse.
Важно, что это не взаимоисключающий выбор. На практике компании нередко используют DuckDB для разведки и прототипов, а ClickHouse — для продакшн-нагрузки, эти инструменты спокойно уживаются в одном стеке, каждый на своем участке.
Отдельно необходимо отметить момент, важный для российских компаний: DuckDB и ClickHouse — открытое ПО, которое можно развернуть на своих серверах, без привязки к зарубежному облаку, а ClickHouse к тому же изначально вырос из российской инженерной школы. Для тех, кому критичны контроль над данными и независимость от внешних сервисов, это весомый плюс — облачный MotherDuck в этой логике стоит особняком, его выбирают в тех случаях, где удобство облака перевешивает соображения суверенности данных.
Чтобы было понятнее, как выглядит переход на практике. В качестве типичной отправной точки выступает аналитик, который раз в неделю выгружает данные в Excel, склеивает несколько файлов вручную и к обеду понимает, что файл больше не открывается. Первый шаг состоит в замене этого ручного труда на DuckDB: те же файлы, но обработка в SQL, за секунды и без верхней границы по объему. Через несколько месяцев, если данные и число пользователей вырастают, появляется развилка: остаемся на DuckDB или MotherDuck для удобства, либо ставим ClickHouse под постоянную нагрузку. Важно, что путь идет от простого к сложному по мере реальной потребности, а не наоборот: никто не начинает с кластера, чтобы потом понять, что хватило бы ноутбука.
Что это меняет для среднего бизнеса
Главный сдвиг не технический, а экономический. Раньше, чтобы работать с данными чуть больше экселевских, требовалась серьезная инфраструктура и люди под нее, а значит, отдельный бюджет и долгий запуск. Сегодня аналитик в одиночку, с ноутбуком и DuckDB, делает то, под что три года назад выписывали смету на кластер. Порог входа в нормальную аналитику резко упал, и это хорошая новость для компаний, у которых нет и не планируется отдельного дата-департамента.
Оговорка
У каждого инструмента есть и понятные границы, о которых лучше знать заранее. DuckDB силен, когда с данными работает один процесс; он не может работать как база, в которую одновременно пишут много пользователей, поскольку это инструмент анализа, а не замена транзакционной базы. ClickHouse, наоборот, избыточен и неудобен для мелких разовых задач. MotherDuck завязан на облако со всеми вытекающими вопросами доступа и стоимости при росте. Ни один из трех инструментов не является универсальным, и попытка выбрать один из них на все сценарии заканчивается тем же, чем и всегда, борьбой с ним вместо работы с данными.
При всем удобстве инструмент остается инструментом. DuckDB не подскажет, какой вопрос задать данным, а ClickHouse не отличит достоверный источник от мусора. Быстрая база ускоряет получение ответа, но ответственность за правильность вопроса и за интерпретацию результата по-прежнему лежит на человеке. Сменив тяжелый кластер на DuckDB, вы экономите время и деньги, но не отменяете необходимость думать над тем, что считаете и зачем.
Вывод
Новый класс аналитических инструментов закрыл давнюю дыру между Excel и тяжелыми хранилищами. DuckDB берет на себя локальную и разовую аналитику без всякой инфраструктуры, ClickHouse — большие объемы и высокую нагрузку. MotherDuck соединяет локальное удобство с облачным масштабом. Для большинства средних компаний разумно начать с самого простого, с DuckDB на одной машине, и усложнять стек только тогда, когда задача реально перерастет его возможности, а не на всякий случай и не потому, что у соседей кластер.
