Получение номера операции
Содержание раздела
GET-метод возвращает номер операции записи:
- указанной успешной в сущности,
- последней успешной в сущности,
- последней завершенной (успешно или нет) в логической БД.
Получение номеров операции доступно в сущностях:
- логических таблицах;
- снапшот-таблицах;
- материализованных представлениях;
- простых логических представлениях, построенных на подзапросе к логической таблице, снапшот-таблице или материализованному представлению (возвращается информация по сущности-источнику).
Особенности возврата номера операции
Все операции с меньшими номерами, чем у возвращаемого, гарантированно завершены на указанную метку времени. Этот принцип сохраняется, даже если фактический порядок завершения операций отличается от порядка их номеров.
Запрос без метки времени
Запрос возвращает:
- [если нет завершенных операций]
-1; - [иначе] в зависимости от URL:
- [для сущности] номер последней успешно завершенной операции;
- [для логической БД] номер* последней операции, завершенной успешно или нет.
* При наличии открытой дельты в логической БД номер выбирается среди операций, выполненных до дельты.
Запрос с меткой времени
Запрос возвращает:
- [если нет операций, завершенных к указанному времени]
-1; - [иначе] наибольший номер среди операций, завершенных к указанному времени.
URL
- GET
{baseUrl}/api/v1/datamarts/{datamart}/entities/{entity}/cn/{ts} -
Получение номера для успешно завершенной операции, имеющей метку времени
ts, в таблице или представленииdatamart.entity. - GET
{baseUrl}/api/v1/datamarts/{datamart}/entities/{entity}/cn -
Получение номера для последней успешно завершенной операции в таблице или представлении
datamart.entity. - GET
{baseUrl}/api/v1/datamarts/{datamart}/cn -
Получение номера для последней завершенной (успешно или нет) операции в логической БД
datamart.
Где:
baseUrl— адрес ноды Prostore, состоящий из IP-адреса или доменного имени и номера порта;datamart— имя логической базы данных, в которой была выполнена операция записи;entity— имя таблицы или представления, для которого запрашивается информация об операции;ts— метка времени операции в UTC- или Unix-формате.
Заголовки запроса
[ x-request-id ]
Задает уникальный идентификатор HTTP-запроса. Если не указан, система генерирует UUID-значение и возвращает его в качестве идентификатора в ответе.
Тело запроса
Тело запроса отсутствует.
Примеры запросов и ответов
Запрос по указанной метке времени в логической таблице
Запрос по UTC-метке времени 2024-12-13 06:51:25.055:
curl -X 'GET' \
'http://localhost:9090/api/v1/datamarts/marketing/entities/sales/cn/2024-12-13%2006%3A51%3A25.055' \
-H 'x-request-id: c214035f-cac5-4a77-a988-4750c3ad3c27'
Запрос по Unix-метке времени 1734072685055000, соответствующей 2024-12-13 06:51:25.055:
curl -X 'GET' \
'http://localhost:9090/api/v1/datamarts/marketing/entities/sales/cn/1734072685055000' \
-H 'x-request-id: 6accb5a2-33b8-4fb8-be74-5be45189b6a5'
Ответ:
{
"cn": 1734072685012000
}
Запрос последней операции в логической таблице
Запрос:
curl -X 'GET' \
'http://localhost:9090/api/v1/datamarts/marketing/entities/sales/cn' \
-H 'x-request-id: 296af6fc-9a4a-44cc-b664-bc5ae0a884a8'
Ответ:
{
"cn": 1734072685012000
}
Запрос последней операции в логической БД
Запрос:
curl -X 'GET' \
'http://localhost:9090/api/v1/datamarts/marketing/cn' \
-H 'x-request-id: cbdee094-6d25-4129-af3e-475ffaaac786'
Ответ:
{
"cn": 1738439315012253
}
Запрос с неуспешным ответом
Запрос:
curl -X 'GET' \
'http://localhost:9090/api/v1/datamarts/marketing4/cn' \
-H 'x-request-id: 13ebe560-9ba2-4748-a852-17d8af69fd2f'
Ответ:
{
"exceptionMessage": "Database marketing4 does not exist"
}