Первоначальная документация YDB, опубликованная в рамках open-source запуска в 2022 году, имела структуру, на которую в значительной степени повлиял закон Конвея. Создание проекта с открытым исходным кодом значительно повышает планку того, что ожидается от документации по технологии. В нашем случае для быстрого создания большого количества контента перед запуском потребовалась командная работа по принципу «разделяй и властвуй». На раннем этапе такое четкое владение каждым фрагментом было полезным. Однако, поскольку общий объем документации со временем продолжает расти, читателям становится всё труднее находить нужную им информацию. Чтобы решить эту проблему, мы перепроектируем структуру документации, чтобы она была ориентирована на пользователя. Таким образом, если вы являетесь командой, работающей с кластером YDB, каждый может иметь свою собственную любимую директорию в документации в соответствии со своей ролью в команде и не отвлекаться на контент, ориентированный на читателей с другой ролью.
Эта реструктуризация ещё в процессе: появился новый раздел для DevOps-инженеров, а также дополнительные разделы для администраторов баз данных, разработчиков приложений, инженеров по безопасности, аналитиков и т.д. Перемещение контента может потребовать выработки новых привычек, но в долгосрочной перспективе такая структура должна упростить навигацию. Мы создаём перенаправление со старого URL на новый при перемещении любой страницы документации, чтобы свести неудобства к минимуму.
Ansible
Новый раздел документации для DevOps состоит из подразделов, посвящённых поддерживаемым методам развёртывания production кластеров YDB: Ansible, Kubernetes или вручную. Если инструкции для Kubernetes и «вручную» существуют уже давно, то развёртывание производственных кластеров YDB с помощью Ansible является основной новой статьёй за последнее время. В ней предполагается, что у вас уже есть необходимое количество виртуальных машин или физических серверов, соответствующих системным требованиям YDB. Если же у вас нет готовой инфраструктуры, предоставляется отдельная инструкция о том, как получить необходимые виртуальные машины от различных поставщиков облачных услуг с помощью Terraform.
Миграции схем данных с помощью Goose
Управление схемами таблиц является одним из ключевых аспектов работы с любой SQL системой управления базами данных, включая YDB. Хоть это и можно делать вручную с помощью запросов ALTER TABLE
, есть много инструментов для упрощения управления схемой таблиц. Первым инструментом такого класса, поддерживающим YDB, является Goose.
Kafka Connect
Для топиков YDB предоставляет API, совместимый с Apache Kafka. Теперь в документации описано как использовать Kafka Connect с YDB для перемещения данных.
Точный векторный поиск с помощью k-NN
Эта тема заслуживает отдельного анонса и более подробного рассказа, но в качестве спойлера: в ветке main
YDB может выполнять точный поиск по ближайших соседей вектору, используя Knn UDF. Эта функция пока не включена ни в один из выпущенных релизов YDB.
Генерация кода на YQL
Развитие аналитических возможностей и колоночного хранилища является одним из ключевых направлений развития YDB на 2024 год. OLAP-запросы часто более сложны, чем транзакционные, и обычно включают в себя множество преобразований данных. YQL, диалект SQL в YDB, используется совместно с несколькими другими продуктами в качестве библиотеки и, уже обладает обширной инфраструктурой для обработки сложных запросов.
По мере того как YDB поддерживает все большее подмножество YQL, мы открываем всё больше ставшей актуальной справочной документации по YQL. Например, вы можете создавать универсальные запросы, которые адаптируются к исходным схемам таблиц, используя функции генерация кода и манипулирование типами данных.
«Под капотом»
Документация для разработчиков C++ ядра YDB была дополнена статьями о персистентных незакомиченных изменениях в LocalDB и блокировках и видимости изменений в транзакциях в DataShard. Кроме того, теперь есть статья об управлении релизами YDB.
Дополнительные улучшения
Краткая нотация контроля доступа, используемая при ведении журнала аудита, теперь подробно задокументирована.
YDB стало поддерживать больше функций PostgreSQL.
Были уточнены гарантии CDC.
Типизированные строковые литералы были расширены для типов данных
String
иUtf8
.Ip UDF теперь имеет функции для работы с подсетями.
YDB CLI поддерживает вывод в формате Apache Parquet.
Появились дополнительные настройки в инструментах для нагрузочного тестирования кластеров YDB.
Обновлены детали о хранении примитивных типов в таблицах.
Смотрите также
Если эта статья показалась вам полезной, ознакомьтесь с предыдущей статьей этой серии о документации YDB. Кроме того, если у вас есть какие-либо предложения по документации YDB или связанных с ней процессов, пожалуйста, расскажите нам о них в комментариях ниже или в YDB Discord.
zo0Mx
Есть предложение не относящееся к документации напрямую. Могли бы вы как-то организовать пуликацию релизов и их ченжлогов в более простой и понятной манере?
Сейчас в репе на гитхабе в тегах одни версии софта фигурируют, в релизах другие, в ченжлогах на сайте третьи (никак не привязанные к релизам/тегам из репы). Что происходит? Как понять как развивается продукт? Совершенно ничего не понятно. Следить невозможно.