GET_CN
Содержание раздела
Поддерживается в версиях: 7.2 / 7.1 / 7.0 / 6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7.
Запрос возвращает номер операции записи и может содержать индексированные и именованные параметры.
Получение номера доступно для операции:
- указанной успешной в таблице или представлении,
- последней успешной в таблице или представлении,
- последней* завершенной (успешно или нет) в логической БД.
* Для логической БД возвращается максимальный номер завершенной операции, перед которой нет незавершенных операций с меньшим номером. При наличии открытой дельты максимальный номер выбирается среди операций, выполненных до дельты.
Получение номеров операций доступно для сущностей логической БД:
- логических таблиц;
- материализованных представлений;
- простых логических представлений на базе логических таблиц и материализованных представлений (возвращается информация по сущности-источнику).
Номер операции также можно запросить с помощью GET-методов /cn.
Синтаксис
Запрос по указанной операции в таблице или представлении:
GET_CN([db_name.]entity_name, date_time_expression)
Запрос по последней операции в таблице или представлении:
GET_CN([db_name.]entity_name)
Запрос по последней операции в логической БД, используемой по умолчанию:
GET_CN()
Аргументы запроса могут быть заданы как индексированные и (или) именованные параметры.
Параметры:
db_name (VARCHAR | CHAR | STRING)
-
Имя логической базы данных, которой принадлежит таблица или представление. Опционально, если выбрана логическая БД, используемая по умолчанию.
entity_name (VARCHAR | CHAR | STRING)
-
Имя таблицы или представления, по которому запрашивается информация.
Возможные значения:
- имя логической таблицы любого типа;
- имя материализованного представления;
- имя простого логического представления, построенного на подзапросе к логической таблице или материализованному представлению.
date_time_expression (TIMESTAMP | BIGINT | INT64 | LONG)
-
Метка времени операции записи в любом из форматов:
- UTC-метка (
TIMESTAMP
) — строка в форматеYYYY-MM-DD hh:mm:ss[.SSSSSS]
; - Unix-метка (
BIGINT | INT64 | LONG
) — целое число микросекунд с 00:00:00 UTC 1 января 1970 года.
- UTC-метка (
Варианты ответа
В ответе возвращается:
- объект ResultSet c одной записью, содержащей номер операции записи, при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Ограничения
- Запрос доступен для сущностей:
- логических таблиц;
- материализованных представлений;
- простых логических представлений, построенных на подзапросе к логической таблице или материализованному представлению;
- логических БД.
- Если в запросе есть именованные параметры, их имена должны соответствовать соглашениям об именах.
Примеры
Запрос по указанной операции в логической таблице
Запрос с предварительным выбором логической БД:
USE marketing;
GET_CN(sales, '2023-05-27 20:00:17.876');
Запрос с указанием логической БД:
GET_CN(marketing.sales, '2023-05-27 20:00:17')
Запрос по последней операции в логической таблице
Запрос с предварительным выбором логической БД:
USE marketing;
GET_CN(sales);
Запрос с указанием логической БД:
GET_CN(marketing.sales)
Запрос по указанной операции в простом логическом представлении
Запрос с предварительным выбором логической БД:
USE marketing;
GET_CN(sales_view_with_condition, 1737974764000000);
Запрос с указанием логической БД:
GET_CN(marketing.sales_view_with_condition, 1737974764000000)
Запрос по последней операции в логической БД
USE marketing;
GET_CN();
Запрос с индексированными параметрами
Запрос в таблице на указанный момент:
GET_CN(?, ?)
Пример cURL с запросом:
curl -X 'POST' \
'http://localhost:9090/api/v1/datamarts/query?format=json' \
-H 'x-request-id: ff365767-d80a-4154-9525-52542b80ee92' \
-H 'Content-Type: application/json' \
-d '{
"query": "GET_CN(?, ?)",
"queryId": "364682",
"params": [
{
"value": "marketing.sales",
"type": "STRING"
},
{
"value": "2024-05-10 13:12:09.34",
"type": "TIMESTAMP"
}
]
}'
Запрос с именованными параметрами
Запрос в таблице на указанный момент:
GET_CN(:table_name_with_db_name, :op_timestamp)
Пример cURL с запросом:
curl -X 'POST' \
'http://localhost:9090/api/v1/datamarts/query?format=json' \
-H 'x-request-id: fb0957ab-270e-47c6-9e86-eeee413ce055' \
-H 'Content-Type: application/json' \
-d '{
"query": "GET_CN(:table_name_with_db_name, :op_timestamp)",
"queryId": "25322",
"params": [
{
"name": "table_name_with_db_name",
"value": "marketing.sales",
"type": "STRING"
},
{
"name": "op_timestamp",
"value": "2024-05-10 13:12:09",
"type": "TIMESTAMP"
}
]
}'