GET_CN

Содержание раздела
  1. Синтаксис
  2. Варианты ответа
  3. Ограничения
  4. Примеры
    1. Запрос по указанной операции в таблице
    2. Запрос по последней операции в таблице
    3. Запрос по указанной операции в представлении
    4. Запрос по последней операции в логической БД
    5. Запрос с индексированными параметрами
    6. Запрос с именованными параметрами

Поддерживается в версиях: 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 года.

Варианты ответа

В ответе возвращается:

  • объект 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"
    }
  ]
}'