Современный мир работы с данными развивается стремительными темпами, и с каждым годом появляются новые стандарты и технологии, направленные на упрощение работы, повышение безопасности и оптимизацию процессов обработки больших объемов информации. Одним из таких инновационных проектов стал DuckLake, технология, которая тесно взаимодействует с DuckDB — популярной встраиваемой аналитической базой данных. В июле 2025 года был выпущен релиз DuckLake 0.2 — новая версия стандарта и расширения ducklake для DuckDB, которая предлагает множество полезных обновлений и инновационных функций, способных изменить подход к хранению и управлению данными. DuckLake представляет собой открытый стандарт и расширение для DuckDB, направленное на создание гибкой и эффективной системы хранения данных с использованием формата Parquet.
Успех первой версии вызвал живой отклик сообщества и массу предложений по улучшению функционала, что и стало отправной точкой для релиза DuckLake 0.2. Главные изменения охватывают управление конфиденциальными данными, улучшенные настройки паркетных файлов, новые возможности структурирования данных и расширенную поддержку интеграции с внешними системами. Одним из значительных нововведений в DuckLake 0.2 является внедрение механизма secrets (секреты) для надежного управления учётными данными доступа к DuckLake.
Теперь секреты можно создавать с использованием стандартной инфраструктуры секретов, где хранятся все сведения для подключения к конкретному экземпляру DuckLake. Для подключения достаточно указать имя секрета в параметрах, и информация загрузится автоматически. Этот подход значительно упрощает управление доступом и повышает безопасность, минимизируя риск человеческой ошибки при работе с конфиденциальными данными. Механизм позволяет создавать как именованные, так и безымянные секреты. Именованный секрет задаётся с указанием типа подключения, путей к метаданным и данным, а затем используется при присоединении к DuckLake.
Безымянный секрет существует один и используется по умолчанию при пустой строке подключения. Новая функциональность существенно улучшает взаимодействие с DuckLake, повышая удобство и безопасность работы администратора. Дополнительно версии 0.2 уделена особое внимание настройкам, особенно тем, что касаются записи данных в формате Parquet. Теперь поддерживается расширенный набор параметров для оптимизации сжатия, версии формата, размера групп строк и целевого размера файлов.
Эти настройки могут устанавливаться глобально или локально — на уровне схемы или конкретной таблицы, что даёт разработчикам и администраторам гибкие возможности по управлению производительностью и использованием дискового пространства. Например, параметры сжатия реализованы с поддержкой различных алгоритмов — snappy, gzip, zstd, brotli и lz4, что позволяет подобрать оптимальный баланс между скоростью и степенью сжатия в зависимости от характера данных и требований к быстродействию. Обновлённые опции конфигурации сохраняются в специальной таблице метаданных DuckLake, что обеспечивает удобный и прозрачный способ контроля всех настроек. Для облегчения интеграции DuckLake с внешними системами и инструментами в версии 0.2 добавлена функция ducklake_list_files.
Она позволяет получить список файлов данных и связанных с ними файлов удаления, которые необходимо сканировать для отображения данных таблицы на определённом снимке. Это особенно полезно для разработчиков, которые хотят интегрировать DuckLake в другие платформы и расширять возможности анализа данных. Ещё одним важным обновлением стала возможность прямого подключения DuckLake через командную строку duckdb и другие клиентские инструменты. Теперь можно использовать сокращённую форму для быстрой загрузки DuckLake по имени или пути, что упрощает повседневную работу с базой и повышает скорость доступа к данным. С точки зрения стандарта DuckLake 0.
2 изменения также существенны. Одним из ключевых улучшений стало введение относительных путей для схем и таблиц. Ранее все пути к файлам были относительны только глобальному пути хранения, что затрудняло организацию данных. В новой версии добавлены три уровня пути — к таблице, схеме и глобальному хранилищу, что обеспечивает более упорядоченную и логичную структуру хранения. Такой подход позволяет писать все файлы для конкретной таблицы в вложенную директорию, что открывает новые возможности контроля доступа на уровне объектного хранилища.
Например, можно предоставить пользователю доступ только к определённой схеме или таблице, используя префиксные политики безопасности, что существенно повышает гибкость и безопасность архитектуры данных. Касательно совместимости с уже существующими данными в формате Parquet в DuckLake 0.2 реализована поддержка name mapping — сопоставления столбцов по именам. Ранее DuckLake использовал специальные идентификаторы полей (field ids), встроенные в записи, для управления изменениями схем, но файлы, созданные сторонними приложениями, таких идентификаторов не содержали. Теперь можно добавлять такие файлы с указанием способа сопоставления колонок по имени, что позволяет использовать ранее созданные файлы без ограничений и полноценно пользоваться всеми функциями DuckLake, включая эволюцию схем и историю данных.
Улучшение управления настройками также коснулось механизма scoping — возможности задавать параметры в контексте схемы или конкретной таблицы. Это достигнуто за счёт введения полей scope и scope_id в таблице метаданных, что позволяет более точно регулировать поведение системы в зависимости от уровня и области применения настроек. Ещё одно полезное дополнение — поддержка partition transforms, таких как year, month, day и hour. Эти функции позволяют автоматически разделять данные по времени, не создавая дополнительные колонки в таблицах, что упрощает проектирование и повышает эффективность обработки больших массивов временных данных. Важной частью обновления стала автоматическая миграция с версии DuckLake 0.
1 на 0.2. При подключении DuckDB к базе DuckLake старой версии происходит автоматическое обновление структур и метаданных. В миграции добавляются новые колонки в ключевые таблицы для поддержки относительных путей, scoped-настроек и сопоставления колонок. Это позволяет сохранить совместимость и обеспечить плавный переход без потери данных и функционала.
Таким образом, DuckLake 0.2 открывает новые горизонты для организаций и разработчиков, работающих с аналитическими данными. Расширенные возможности по управлению секретами и настройками делают работу более безопасной и гибкой, а поддержка сложных структур путей и name mapping упрощает интеграцию с внешними источниками и повышает удобство использования. Совместимость с новыми и уже существующими данными в формате Parquet, улучшенная поддержка партиционирования и возможность быстрого доступа через командную строку делают DuckLake 0.2 привлекательной платформой для создания масштабируемых, гибких и удобных аналитических решений на основе DuckDB.
Активное развитие и поддержка сообщества, а также прозрачная документация и открытый подход к развитию делают DuckLake одним из перспективных стандартов в сфере хранения и обработки данных. Релиз 0.2 доказывает, что проект стремится не только соответствовать современным требованиям к аналитике, но и задавать новые стандарты качества и удобства.