Начало работы с YDB в роли разработчика приложений

Прежде всего, вам необходимо получить доступ к кластеру YDB. Следуйте инструкциям по быстрому запуску, чтобы получить базовый локальный инстанс. Также вы можете совместно со своей DevOps командой создать production кластер или воспользоваться Yandex Managed Service for YDB.

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

Параллельно с проектированием схемы вам необходимо настроить среду разработки для взаимодействия с YDB. Есть несколько основных аспектов, которые рассматриваются ниже.

Выбор API

Выберите YDB API, который вы будете использовать; есть несколько вариантов:

  • Для основных языков программирования рекомендуется использовать YDB SDK. Они предоставляют высокоуровневые API и реализуют рекомендованные подходы по работе с YDB. YDB SDK доступны для нескольких популярных языков и стремятся к равенству функциональности, но не все из них являются полнофункциональными. Обратитесь к таблице сравнения функций SDK, чтобы проверить, соответствует ли SDK для выбранного языка программирования вашим потребностям, также с её помощью можно выбрать язык программирования с лучшим охват функций, если вы гибки в этом вопросе.
  • Альтернативно, YDB предоставляет PostgreSQL-совместимый API. Он предназначен для упрощения миграции существующих приложений, которые переросли PostgreSQL. Однако это также полезно для экзотических языков программирования, для которых есть клиентская библиотека PostgreSQL, но нет YDB SDK. Обратитесь к документации по совместимости PostgreSQL, чтобы проверить, соответствует ли ее полнота вашим потребностям.
  • Если вас интересует функция YDB топиков, стоит отметить, что они предоставляют Kafka-совместимый API. Перейдите по этой ссылке, если этот вариант использования для вас актуален.
  • В крайнем случае, собственный API YDB основан на протоколе gRPC, вокруг которого есть экосистема, включая генерацию кода клиентов. gRPC спецификации YDB API размещены на GitHub, и вы можете использовать их в своём приложении. Сгенерированные клиенты являются низкоуровневыми и потребуют дополнительной работы для правильной обработки таких аспектов, как ретраи и таймауты. Следуйте по этому пути только если другие варианты невозможны, и вы знаете, что делаете.

Установите пререквизиты

Выберите конкретный язык программирования, который вы будете использовать. Установите соответствующий YDB SDK или драйвер PostgreSQL в зависимости от выбранного выше пути.

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

Начать писать код

Для пути с YDB SDK

– Пройдите туториал по YQL, чтобы познакомиться с SQL диалектом YDB.

  • Изучите примеры приложений, чтобы узнать, как выглядит работа с SDK.
  • Ознакомьтесь с рецептами SDK для типичных случаев использования SDK, к которым вы сможете обратиться позже.
  • Ориентируйтесь на возможности вашего IDE по навигации по коду при работе с SDK.

Для пути совместимости с PostgreSQL

  • Используйте свой опыт или обратитесь к любым ресурсам по PostgreSQL. Однако сверяйтесь со списком поддерживаемых функций и операторов, чтобы скорректировать свои ожидания.

Тестирование

Как написать тесты на приложения, работающие с YDB:

  • Для функциональных тестов вы можно имитировать (mock) ответы YDB, используя подходящуй фреймворк тестирования для выбранного языка программирования.
  • Для интеграционных тестов можно запустить одноузловой YDB в вашем CI/CD окружении с помощью Docker образа или исполняемого файла аналогично тому, как это делается в статье быстрого старта. Рекомендуется тестироваться с несколькими версиями YDB: той, которая у вас есть в production, чтобы проверить наличие проблем, с которыми вы можете столкнуться при обновлении своего приложения, а также более новые версиями YDB, чтобы на ранней стадии выявлять потенциальные проблемы обновления YDB.
  • Для тестов производительности рекомендуется использовать кластер, развёрнутый в соответствии с инструкциями для production использования, поскольку использование одного узла не даст реалистичных результатов. Вы можете запускать ydb workload, если хотите увидеть, как ваш кластер YDB работает на общих сценариях ещё до разработки своего приложения. Затем вы можете использовать исходный код библиотеки, лежащей в основе этого инструмента в качестве примера того, как написать собственные тесты на производительность с YDB. Было бы здорово, если бы вы могли законтрибьютить анонимизированную версию вашей рабочей нагрузки, чтобы её можно было включить в тестирование производительности самого YDB.

Что дальше

Вышеизложенного должно быть достаточно, чтобы начать разработку приложений, взаимодействующих с YDB. В процессе работы используйте справочную документацию YQL и YDB SDK, а также другую ресурсы в этом разделе документации.

В случае возникновения каких-либо проблем, не стесняйтесь обсуждать их в YDB Discord или Telegram чате.