Доступ к данным¶
Основные функции для доступа к данным в TDG входят в программный интерфейс репозитория. Кроме этого, для работы доступны следующие модули:
model_accessor – доступ к данным на экземпляре с ролью
storage
. Модуль включает в себя группы функций:blob_storage – key-value хранилище на базе движка vinyl;
local_cache – локальный кэш;
shared_storage – распределенный кэш;
connector – работа с коннекторами;
odbc – работы с API ODBC.
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.ro –
true
или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
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