Сравнение возможностей SDK

    Данный раздел позволяет сравнить возможности YDB SDK, которые реализованы для разных языков программирования.

    Feature C++ Python Go Java NodeJS C# Rust PHP
    Поддержка SSL/TLS (системные сертификаты) + + + + + + +
    Поддержка SSL/TLS (кастомные сертификаты) + + + + + -
    Возможность настроить/включить GRPC KeepAlive (фоновое поддержание живости соединения) + + + ? -
    Регулярный прогон тестов SLO на последней версии кода + +/- + + +/- - - -
    Шаблоны Issue в GitHub - ? + - + -
    Клиентская балансировка
    Инициализация балансировщика через Discovery/ListEndpoints + + + + + + + +
    Отключение клиентской балансировки (все запросы в начальный Endpoint) +/- - + - - +
    Фоновый Discovery/ListEndpoints (раз в минуту по умолчанию) + + + + + + + +
    Поддержка множества IP адресов в DNS-записи начального Endpoint, часть из которых может быть недоступна (DNS балансировка) ? + + ? - ? ? ?
    Пессимизация нод на транспортных ошибках + + + + + + +
    Принудительный Discovery/ListEndpoints если пессимизировано более половины нод + + + + - - +
    Автоматическое определение ближайшего ДЦ / зоны доступности по TCP-пингам - - + - - - -
    Aвтоматическое определение ближайшего ДЦ / зоны доступности по ответу Discovery/ListEndpoints* + + - - - - -
    Равномерный случайный выбор нод (по умолчанию) + + + + + + +
    Балансировка среди всех нод всех ДЦ (по умолчанию) + + + + + + +
    Балансировка среди всех нод конкретного ДЦ / зоны доступности (например, “a”, “vla”) + + + ? - - -
    Балансировка среди всех нод всех локального ДЦ + + + ? - - -
    Credentials providers
    Anonymous (по умолчанию) + + + + + ? +
    Static (user - password) + + + + - - -
    Token: IAM, OAuth + + + + + + +
    Service account (Yandex.Cloud specific) + + + + + + -
    Metadata (Yandex.Cloud specific) + + + + + + +
    Работа с сессиями Table-сервиса
    Пул сессий + + + + + + +
    Ограничение количества одновременных сессий на клиенте) + + + + + + +
    Несгораемый остаток сессий в пуле + + + + - - -
    Прогрев пула до указанного значения количества сессий при создании пула - + - - + - -
    Фоновый KeepAlive для простаивающих сессий в пуле + - - + + + +
    Фоновое закрытие простаивающих сессий в пуле (лишние сессии) + + + + - - -
    Автоматическое выбрасывание сессии из пула при получении ошибок BAD_SESSION / SESSION_BUSY + + + + + + +
    Отстойник сессий для возможного переиспользования в будущем~ + - - - - - -
    Ретраер на пуле сессий (объект для повторов - сессия) + + + + + + +
    Ретраер на пуле сессий (объект для повторов - транзакция на сессии) - - + - - ? +
    Поддержка graceful shutdown сессий ("session-close" в metadata "x-ydb-server-hints" - означает надо "забыть" сессию и больше ее не использовать) + + + + -
    Поддержка серверной балансировки сессий (запрос CreateSession должен содержать в metadata-заголовке "x-ydb-client-capabilities" значение "session-balancer") + + + - -
    Поддержка типов данных YDB
    Int/Uint(8,16,32,64) + + + + + + +
    Int128, UInt128 (в паблике нету?) - - - - - - -
    Float,Double + + + + + + +
    Bool + + + + + - +
    String, Bytes + + + + + + +
    Utf8, Text + + + + + + +
    NULL,Optional,Void + + + + + + +
    Struct + + + + + + +
    List + + + + + + +
    Set ? ? - ? ? ? ?
    Tuple + + + + + + +
    Variant<Struct>,Variant<Tuple> + + + + + + -
    Date,DateTime,Timestamp,Interval + + + + + + +
    TzDate,TzDateTime,TzTimestamp + + + + + + -
    DyNumber + + + + + + -
    Decimal (120 бит) + + + + + + -
    Json,JsonDocument,Yson + + + + + + +
    Scheme клиент
    MakeDirectory + + + + + +
    RemoveDirectory + + + + + +
    ListDirectory + + + + + + +
    ModifyPermissions + + + - + -
    DescribePath + + + + + -
    Table-сервис
    CreateSession + + + + + + +
    DeleteSession + + + + + + +
    KeepAlive + + + + + + +
    CreateTable + + + + + -
    DropTable + + + + + -
    AlterTable + + + + + -
    CopyTable + + + + - -
    CopyTables + + + - - -
    DescribeTable + + + + + -
    ExplainDataQuery + + + + - -
    PrepareDataQuery + + + + + -
    ExecuteDataQuery + + + + + + +
    * Серверный кэш по умолчанию для всех запросов с параметрами (KeepInCache) - + + + + -
    * Отдельная опция для включения/выключения серверного кэша для конкретного запроса + + + + + -
    * Truncated result как ошибка (по дефолту) - - + ? + -
    * Truncated result как ошибка (как опция opt-in, opt-out) - - + ? + +
    ExecuteSchemeQuery + + + + - + +
    BeginTransaction + + + + + -
    CommitTransaction + + + + + +
    RollbackTransaction + + + + + +
    DescribeTableOptions + + + - - -
    StreamExecuteScanQuery + + + + + + +
    StreamReadTable + + + + + + -
    BulkUpsert + + + + + - -
    Operation
    Consumed Units из метаданных ответа на grpc-запрос (чтобы пользователь мог получить это) + + - + + - -
    Получение OperationId операции для long-polling статуса выполнения операции + + + - - + -
    ScriptingYQL
    ExecuteYql + ? + - - -
    ExplainYql + ? + - - -
    StreamExecuteYql + ? + - - -
    Coordination service
    CreateNode + ? + - - -
    AlterNode + ? + - - -
    DropNode + ? + - - -
    DescribeNode + ? + - - -
    Session (leader election, распределенный лок) + ? - - - -
    Topic service
    CreateTopic + - + - - - -
    DescribeTopic + - + - - - -
    AlterTopic + - + - - - -
    DropTopic + - + - - - -
    StreamWrite + - + - - - -
    StreamRead + - + - - - -
    Ratelimiter service
    CreateResource + ? + - - - -
    AlterResource + ? + - - - -
    DropResource + ? + - - - -
    ListResources + ? + - - - -
    DescribeResource + ? + - - - -
    AcquireResource + ? + - - - -
    Monitoring (отправка метрик SDK в систему мониторинга)
    Solomon / Monitoring + ? + - - - -
    Prometheus - ? + - - - -
    Логирование событий SDK - ? + + + + +
    Трассировка событий SDK
    в OpenTelemetry - ? - - - - -
    в OpenTracing - ? + - - - -
    Examples
    Auth
    * token ? ? + + + +
    * anonymous ? ? + + + +
    * environ ? ? + + + -
    * metadata ? ? + + + +
    * service_account ? ? + + + -
    * static (username + password) ? ? + + + -
    Basic (series) + ? + + + + +
    Bulk Upsert +/- ? + + + -
    Containers (Struct,Variant,List,Tuple) - ? + - - +
    Pagination + ? + + - -
    Partition policies - ? + - - -
    Read table ? ? + - + -
    Secondary index Workaround + ? - + - -
    Secondary index builtin + ? - - - -
    TTL + ? + - - -
    TTL Readtable + ? + - - -
    URL Shortener (serverless yandex function) ? ? + ? + -
    Topic reader + + - -
    Topic writer - + - -