GET_CN

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

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

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

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

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