# Заголовки выражений

Используйте заголовки в выражениях столбцов для сохранения метаданных изменений, таких как имя операции или позиция в исходном потоке.

Заголовки `Q_H_` доступны в задачах промежуточного хранения под управлением SaaS, промежуточного хранения в озере данных и репликации. Вставьте заголовок из списка Заголовки редактора, когда [Построение выражений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm). В таблице ниже указаны применимость и значения для исходной конечной точки во время полной загрузки и обработки изменений.

## Заголовки для всех конечных точек источника

Общие заголовки и значения фаз обработки

| Заголовок и тип данных | Значение при обработке изменений | Значение во время полной загрузки |
| --- | --- | --- |
| `Q_H_CHANGE_SEQ`<br><br>`STRING(50)` | Монотонно возрастающая последовательность изменений по всем таблицам изменений задачи. Метка времени объединяется со счетчиком изменений с ведущими нулями для упорядочивания изменений внутри задачи. | Пусто |
| `Q_H_STREAM_POSITION`<br><br>`STRING(50)` | Позиция в исходном потоке изменений, обычно SCN или LSN. Определяет местоположение исходного потока, а не метку времени или последовательность, сопоставимую между задачами. | Пустая строка. |
| `Q_H_TIMESTAMP`<br><br>`DATETIME(0)` | Отметка времени операции изменения. Это Метка времени операции, а не Метка времени фиксации транзакции. | Текущая метка времени. |
| `Q_H_TRANSACTION_ID`<br><br>`STRING(50)` | Транзакция, содержащая изменение, представленная в виде шестнадцатеричного 128-битного идентификатора транзакции. Уникальность идентификатора не гарантируется. | Пусто |
| `Q_H_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Метка времени фиксации исходной транзакции, представленная средой выполнения обработки. Отличается от времени исходного сервера базы данных в `Q_H_DB_COMMIT_TIMESTAMP`. | Текущая метка времени. |
| `Q_H_DB_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Метка времени фиксации исходной транзакции по времени сервера базы данных источника. | Null |
| `Q_H_OPERATION`<br><br>`STRING(50)` | `INSERT`, `UPDATE` или `DELETE`. | `INSERT`. |

В последовательности изменений объединяются Метка времени, отформатированная как `YYYYMMDDHHmmSShh`, и 19-значный счетчик изменений с ведущими нулями. Метка времени содержит следующие поля: год, месяц, день, час, минута, секунда и сотые доли секунды. Часть метки времени может повторяться, пока увеличивается счетчик. Объявленная емкость `STRING(50)` не является длиной формата последовательности.

Не полагайтесь на `Q_H_TRANSACTION_ID` в качестве уникального ключа. Используйте `Q_H_CHANGE_SEQ` для упорядочивания изменений на уровне задач вместо одного лишь сравнения меток времени.

## Заголовки, специфичные для источника

К указанным конечным точкам применяются следующие ограничения источников. Они не подразумевают поддержку других вариантов SQL Server или других источников файлов.

Специфичные для источника заголовки и значения этапа обработки

| Заголовок и тип данных | Исходные конечные точки | Значение при обработке изменений | Значение во время полной загрузки |
| --- | --- | --- | --- |
| `Q_H_USER`<br><br>`STRING(50)` | Microsoft SQL Server; Microsoft Azure SQL Managed Instance; Amazon RDS for SQL Server; IBM Informix; IBM DB2 for z/OS; IBM DB2 for LUW; Oracle; Файл; SAP Sybase ASE. | Пользователь, внесший изменение в исходный код. | Пусто |
| `Q_H_JOB_NAME`<br><br>`STRING(50)` | Только для IBM DB2 для iSeries. | Задание, внесшее изменение в исходный код. | Пусто |
| `Q_H_PROGRAM_NAME`<br><br>`STRING(50)` | Только для IBM DB2 для iSeries. | Программа, выполнившая изменение в источнике. | Пусто |
| `Q_H_XACT_ID`<br><br>`STRING(50)` | Microsoft SQL Server; Управляемый экземпляр Microsoft Azure SQL; Amazon RDS для SQL Server. | Идентификатор времени транзакции: LSN первой записи последней распределенной транзакции сервера. Все записи в транзакции имеют этот общий идентификатор. Это отличается от `Q_H_TRANSACTION_ID`, который получается из физического журнала транзакций. | Пусто |

## Использование метаданных операции

Добавьте столбец и вставьте `Q_H_OPERATION` для записи исходной операции. При полной загрузке его значение составляет `INSERT`. При обработке изменений обновление имеет значение `UPDATE`.

Заголовок операции описывает операцию; он не изменяет обработку удаления целевого объекта. Для возврата пользовательских флагов для операций с источником см. `$OPERATION_INDICATOR` в [Функции выражений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).

## Столбцы заголовка потокового промежуточного хранения

Задачи потокового преобразования используют такие исходные столбцы, как `hdr__kafka_partition`, `hdr__kinesis_offset` или `hdr__file_name`. Они не являются псевдонимами заголовков `Q_H_`. Выберите заголовки потокового промежуточного хранения из Столбцы. Списки для конкретных источников см. в [Промежуточные таблицы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-datasets-architecture-streaming.htm#Landing).