Доступ к данным | Tdg

Версия:

2.x
Документация на русском языке
поддерживается сообществом
Справочник Sandbox API Доступ к данным

Доступ к данным

Основные функции для доступа к данным в TDG входят в программный интерфейс репозитория. Кроме этого, для работы доступны следующие модули:

model_accessor

Модуль model_accessor содержит функции для доступа к данным на экземпляре с ролью storage.

CRUD

model_accessor.count(type_name, filter[, options])

Вычисляет количество записей, соответствующих фильтру.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – список условий-предикатов для выбора (фильтрации) объектов указанного типа

  • options (table) – параметры для управления запросом

Результат

количество записей, соответствующих фильтру

Тип результата

number

model_accessor.find(type_name, filter, options, context)

Возвращает объекты, соответствующие заданным условиям. По умолчанию возвращаются первые 10 результатов. Пагинация осуществляется аналогично операциям программного интерфейса репозитория.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – список условий-предикатов для выбора (фильтрации) объектов указанного типа

  • options (table) –

    параметры для управления запросом. Доступные параметры:

    • first – количество элементов;

    • after – курсор пагинации на первый элемент;

    • version – версия объекта;

    • all_versions – указатель для поиска по всем версиям объекта, если задано значение true;

Результат

Тип результата

object

model_accessor.get(type_name, filter, options)

Получает кортеж по первичному ключу.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – первичный ключ

  • options (table) –

    параметры для управления запросом. Доступные параметры:

    • first – количество элементов;

    • after – курсор пагинации на первый элемент;

    • version – версия объекта;

    • all_versions – указатель для поиска по всем версиям объекта, если задано значение true;

Результат

кортеж

Тип результата

tuple

model_accessor.delete(type_name, filter, options)

Удаляет объекты, соответствующие заданным условиям.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – список условий-предикатов для выбора (фильтрации) объектов указанного типа

  • options (table) –

    параметры для управления запросом. Доступные параметры:

    • first – количество элементов для удаления;

    • after – курсор пагинации на первый элемент;

    • version – версия объекта для копирования в удаленное состояние;

    • only_if_version – проверка имеющейся версии перед вставкой;

    • all-versions – этот флаг для функции удаления (delete) нельзя использовать без флага permanent_delete;

    • permanent_delete – при установленном флаге (значение True) происходит физическое удаление информации об объекте из TDG. Используется вместе с флагом all-versions;

Результат

количество измененных строк

Тип результата

number

model_accessor.put(type_name, filter, options)

Вставляет новый или заменяет существующий объект, соответствующий заданным условиям.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – список условий-предикатов для выбора (фильтрации) объектов указанного типа

  • options (table) –

    параметры для управления запросом. Доступные параметры:

    • version – версия объекта;

    • only_if_version – проверка имеющейся версии перед вставкой;

Результат

количество измененных строк

Тип результата

number

model_accessor.update(type_name, filter, updaters, options)

Обновляет объекты, соответствующие заданным условиям.

Параметры
  • type_name (string) – тип объекта

  • filter (table) – список условий-предикатов для выбора (фильтрации) объектов указанного типа

  • updaters (table) –

    список обновлений для объекта, состоящий из списка мутаторов {{mutator, path, new_value}, ...}, где:

    • mutator – имя мутатора, например:

      • set – устанавливает значение;

      • add – увеличивает значение на указанное число;

      • sub – уменьшает значение на указанное число;

    • path – строковый путь до поля объекта с точкой-разделителем (.). Путь до объекта(ов) массива должен включать индекс массива или символ * для захвата всех подобъектов;

    • new_value – новое значение;

  • options (table) –

    параметры для управления запросом. Доступные параметры:

    • first – количество элементов для обновления;

    • after – курсор пагинации на первый элемент;

    • version – версия объекта;

    • only_if_version – проверка имеющейся версии перед вставкой;

    • dont_skip_deleted – использовать в поиске удаленные версии объектов;

Результат

количество измененных строк

Тип результата

number

Управление транзакциями

model_accessor.begin_transaction()

Начинает транзакцию. Аналог функции box.begin().

Результат

none

Тип результата

object

model_accessor.commit_transaction()

Завершает транзакцию и сохраняет все изменения. Аналог функции box.commit().

Результат

none

model_accessor.rollback_transaction()

Завершает транзакцию без сохранения изменений. Аналог функции box.rollback().

Результат

none

model_accessor.is_in_transaction()

Проверяет наличие активной транзакции. Аналог функции box.is_in_txn().

Результат

true при наличии активной транзакции, иначе – false

Тип результата

boolean

Утилиты

model_accessor.unflatten(type_name, tuple)

Преобразует плоский кортеж в Lua-таблицу.

Параметры
  • type_name (string) – тип объекта

  • tuple (table/tuple) – кортеж, который требуется преобразовать

Результат

Lua-таблица

Тип результата

table

model_accessor.is_read_only()

Возвращает значение параметра box.info.rotrue или false.

Результат

true, если экземпляр находится в режиме read-only или в статусе orphan, иначе false.

Тип результата

boolean

model_accessor.snapshot()

Создает снимок всех данных и сохраняет его. Аналог функции box.snapshot

Результат

результат выполнения операции – ok, если снимок создан успешно

Тип результата

string

blob_storage

Модуль blob_storage содержит функции для работы с key-value хранилищем на базе движка vinyl.

blob_storage.new(namespace)

Создает новое key-value хранилище.

Параметры

namespace (string) – имя хранилища

Результат

указатель на созданное хранилище

Тип результата

table

local_cache

Модуль local_cache содержит функции для доступа к локальному кэшу. Локальный кэш представляет собой Lua-таблицу, с которой можно работать (добавлять и получать даные) в рамках одного экземпляра.

local_cache.set(key, val)

Задает в таблице пару ключ–значение.

Параметры
  • key (string) – ключ

  • val (any) – значение

Результат

none

local_cache.get(key)

Получает значение из таблицы по переданному ключу.

Параметры

key (string) – ключ

Результат

значение для переданного ключа

Тип результата

any

shared_storage

Модуль shared_storage содержит функции для работы с распределенным кэшем.

shared_storage.new(namespace)

Cоздает новый распределенный кэш.

Параметры

namespace (string) – имя хранилища

Результат

указатель на созданное хранилище

Тип результата

table

connector

Модуль connector содержит функции для отправки данных из sandbox в коннектор.

connector.send(output_name, obj[, output_options])

Направляет объект в секцию output для отправки в смежную систему.

Параметры
  • output_name (string) – имя коннектора

  • obj (object) – объект для отправки

  • output_options (table) – опции для отправки во внешнюю систему

Результат

true в случае успешной отправки, false в случае возникновения ошибки

Тип результата

boolean

odbc

Модуль odbc содержит функции для работы с API ODBC.

odbc.execute(connection_name, statement, params)

Выполняет запрос через ODBC c заданными параметрами.

Параметры
  • connection_name (string) – название соединения

  • statement (string) – выполняемый запрос

  • params (table) – параметры запроса

Результат

объект запроса

Тип результата

object

odbc.prepare(connection_name, query)

Подготавливает запрос через ODBC.

Параметры
  • connection_name (string) – название соединения

  • query (string) – запрос

Результат

объект подготовленного запроса

Тип результата

object

Нашли ответ на свой вопрос?
Обратная связь