Skip to content

Заменить Table Service на Query Service при работе с YDB транзакциями #1061

@Gazizonoki

Description

@Gazizonoki

При вызове метода Begin создается объект Transaction, который использует для выполнения запросов в YDB устаревший Table Client API. Вместо этого нужно использовать Query Client (класс TQueryClient в YDB С++ SDK).

Для этого нужно:

  1. Создавать транзакцию внутри объекта Transaction через Query Client.
  2. Использовать Query Client для выполнения запросов в методах Execute внутри объекта Transaction
  3. Сохранить сигнатуру существующих методов интерактивной транзакции

Текущая сигнатура Execute зависит от API для Table Client, нужно будет сделать конвертацию под Query Client. Вот примеры такой конвертации в YDB Go SDK и YDB Java SDK.

API Query Client и Table Client немного отличаются, например ExecuteQuery вместо ExecuteDataQuery и RetryQuery вместо RetryOperation. Есть еще отличия, их лучше самому посмотреть в коде YDB C++ SDK: Table Client API и Query Client API.

Код компоненты userver для работы с YDB находится здесь.

Создание транзакции: include, source
Работа с транзакциями: include, source

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions