# 표현식 헤더

작업 이름이나 소스 스트림 위치와 같은 변경 메타데이터를 유지하려면 열 표현식에서 헤더를 사용하세요.

`Q_H_` 헤더는 SaaS 관리형 랜딩, 레이크 랜딩 및 복제 태스크에서 사용할 수 있습니다.[표현식 작성](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm) 시 편집기의 헤더 목록에서 헤더를 삽입합니다.아래 표는 전체 로드 및 변경 처리 중 소스 엔드포인트 적용 가능 여부와 값을 나타냅니다.

## 모든 소스 엔드포인트의 헤더

일반 헤더 및 처리 단계 값

| 헤더 및 데이터 유형 | 변경 처리 중 값 | 전체 로드 중 값 |
| --- | --- | --- |
| `Q_H_CHANGE_SEQ`<br><br>`STRING(50)` | 태스크의 변경 테이블 전반에 걸쳐 단조 증가하는 변경 시퀀스입니다.작업 내 변경 사항의 순서를 정렬하기 위해 타임스탬프와 앞에 0이 붙은 변경 카운터를 결합합니다. | 비어 있음 |
| `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)` | 변경 사항을 포함하는 트랜잭션으로, 16진수 128비트 트랜잭션 ID로 표시됩니다.ID의 고유성이 보장되지 않습니다. | 비어 있음 |
| `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` 형식의 타임스탬프와 앞에 0이 붙은 19자리 변경 카운터를 결합합니다.타임스탬프 필드는 연, 월, 일, 시, 분, 초 및 100분의 1초입니다.카운터가 증가하는 동안 타임스탬프 부분이 반복될 수 있습니다.선언된 `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 for iSeries 전용. | 소스 변경을 수행한 작업. | 비어 있음 |
| `Q_H_PROGRAM_NAME`<br><br>`STRING(50)` | IBM DB2 for iSeries 전용. | 소스를 변경한 프로그램. | 비어 있음 |
| `Q_H_XACT_ID`<br><br>`STRING(50)` | Microsoft SQL Server; Microsoft Azure SQL 관리형 인스턴스; Amazon RDS for SQL Server. | 트랜잭션 시간 식별자: 서버의 마지막 분산 트랜잭션에 대한 첫 번째 레코드의 LSN입니다.트랜잭션의 모든 레코드가 이 ID를 공유합니다.이는 물리적 트랜잭션 로그에서 가져오는 `Q_H_TRANSACTION_ID`와 다릅니다. | 비어 있음 |

## 작업 메타데이터 사용하기

열을 추가하고 `Q_H_OPERATION`을(를) 삽입하여 소스 작업을 기록합니다.전체 로드 동안 해당 값은 `INSERT`입니다.변경 처리 중에 업데이트의 값은 `UPDATE`입니다.

작업 헤더는 작업을 설명하며, 대상 삭제 처리 방식을 변경하지 않습니다.소스 작업에 대한 사용자 지정 플래그를 반환하려면 [표현식 함수](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm)의 `$OPERATION_INDICATOR`을(를) 참조하세요.

## 스트리밍 랜딩 헤더 열

스트리밍 변환 작업은 `hdr__kafka_partition`, `hdr__kinesis_offset` 또는 `hdr__file_name`와 같은 소스 열을 사용합니다.이것들은 `Q_H_` 헤더의 별칭이 아닙니다.열에서 스트리밍 랜딩 헤더를 선택합니다.소스별 목록은 [랜딩 테이블](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-datasets-architecture-streaming.htm#Landing)을(를) 참조하세요.