기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

데이터 스트림에 연결

다음 스트리밍 서비스는 Qlik 오픈 레이크하우스 프로젝트에서 지원됩니다. 이벤트 데이터는 지속적으로 수집되어 다운스트림 데이터 통합, 분석 및 AI를 위한 거의 실시간 가용성을 보장하며, 최신 운영 활동을 반영하는 짧은 지연 시간의 파이프라인을 가능하게 합니다.

Apache Kafka 및 Amazon Kinesis와 같은 스트리밍 서비스는 운영 이벤트가 발생할 때 이를 캡처하기 위한 내구성이 뛰어나고 처리량이 높은 파이프라인을 제공합니다. 배치 수집에 의존하는 파일 기반 소스와 달리, 스트리밍 소스는 이벤트가 생성될 때 데이터를 지속적으로 전달하여 파일이 생성되거나 예약될 때까지 기다릴 필요 없이 거의 실시간 처리를 가능하게 합니다. 생산자는 스키마를 유지하고 파티셔닝을 지원하는 구조화되거나 반구조화된 메시지를 게시합니다. 동일한 레코드에 대한 모든 업데이트 및 삭제는 동일한 파티션 키를 사용해야 합니다. Kafka 및 Kinesis는 전체 토픽 또는 스트림이 아닌 단일 파티션 또는 샤드 내에서만 순서를 보장하므로, 일관된 파티션 키를 사용하면 특정 레코드에 대한 변경 사항이 올바른 순서로 처리됩니다. Qlik은(는) 이벤트 데이터를 지속적으로 수집하기 위한 스트리밍 소스로 Amazon S3도 지원합니다.

스트리밍 수집 대 배치 수집

스트리밍 데이터 소스와 배치 데이터 소스의 차이점은 다음과 같습니다.

  • 두 소스 모두에서 이벤트는 매분 효율적으로 수집되어 낮은 지연 시간 처리와 거의 실시간 분석을 지원합니다.

  • 비스트리밍 소스의 경우, 먼저 기존 데이터의 전체 로드가 이루어진 다음 변경 사항이 수집됩니다. 소스에서 전체 로드 데이터를 다시 로드할 수도 있습니다.

  • 스트리밍 소스의 경우, 초기 로드와 이후 이벤트 간에 명확한 구분이 없습니다. Qlik은(는) 보존을 관리할 수 있으며 파티션도 지원합니다.

정보 메모스트리밍 작업은 데이터 볼륨이 아닌 컴퓨팅 사용량(vCore x 런타임)을 기준으로 요금이 청구됩니다.

Qlik 오픈 레이크하우스 프로젝트에서 스트리밍 소스는 스트리밍 랜딩 작업스트리밍 변환 작업에서만 사용할 수 있습니다.

  • 스트리밍 데이터는 스트리밍 랜딩 작업을 사용하여 수집되며, 불연속 파일을 처리하는 대신 스트리밍 랜딩 작업은 이벤트가 도착하는 대로 읽고, 데이터를 Amazon S3에 랜딩하고, 이벤트를 Avro 파일로 유지합니다. 이 접근 방식은 스키마 진화를 보존하고, 구조체와 같은 복합 데이터 유형을 지원하며, 지속적인 수집 모델을 유지하면서 최적화된 쿼리 성능으로 효율적인 스토리지를 제공합니다.

  • 스트리밍 소스에서 데이터를 온보딩할 때, Iceberg 형식으로 저장될 각 데이터 세트에 대해 스트리밍 변환 작업이 자동으로 추가됩니다. 선택적으로 스트리밍 변환 작업을 사용하여 구조를 표준화하거나, 이벤트 페이로드를 보강하거나, 데이터를 다운스트림 소비 모델에 맞출 수 있습니다.

  • 데이터 미러링 작업을 통해 스트리밍 소스의 데이터 세트를 클라우드 데이터 웨어하우스로 미러링하여 다운스트림 시스템이 데이터를 중복하지 않고 스트리밍 이벤트를 소비할 수 있습니다. 자세한 내용은 클라우드 데이터웨어하우스에 데이터 미러링을 참조하십시오.

데이터 유형 매핑

초기 소스 스키마는 파이프라인 프로젝트를 생성할 때 PREPARE 단계 이전에 가져온 데이터 샘플을 기반으로 하며, 스키마 진화는 읽기 시점에 처리됩니다. STRUCT 및 ARRAY를 지원하지 않는 미러 작업 및 기타 다운스트림 작업은 JSON 유형을 사용합니다. 데이터는 SQL을 사용하여 구문 분석할 수 있습니다.

다음 데이터 유형 매핑은 지원되는 모든 데이터 소스에 적용되지만, 소스 파일 유형에 따라 달라지므로 다음 사항에 유의해야 합니다.

  • 데이터 유형은 온보딩되는 데이터 샘플에서 추론됩니다. 예를 들어, 필드에 샘플에서 정수 값만 포함된 경우 스트리밍 랜딩 및 변환 작업에서 INT8로 생성됩니다. 후속 데이터에 이중 정밀도 소수 값이 포함된 경우 랜딩 파일에 해당 값이 포함됩니다. 그러나 스트리밍 변환 작업에서 필드 데이터 유형 변경 설정이 무시로 설정된 경우 열은 INT8로 유지되고 소수 값은 잘립니다. 의도치 않은 잘림을 방지하려면 온보딩 전에 샘플 데이터에 예상 값의 전체 범위가 포함되어 있는지 확인하거나, 초기 단계에서 필드 데이터 유형 변경작업 중지로 구성하고 필요에 따라 데이터 유형을 조정하십시오.

  • 소스의 구조체에 필드가 추가되면 항상 랜딩 대상에 추가됩니다. 스트리밍 변환의 경우, 스트리밍 변환 작업 설정 > 스키마 진화 > 구조체에 필드 추가 (대상에 적용, 무시, 작업 중지)에서 선택한 옵션에 따라 동작이 적용됩니다.

  • 특정 레코드에 필드가 없거나 배열이 비어 있으면 null로 처리됩니다.

  • 데이터 세트가 배열에 의해 평면화되고 해당 배열이 비어 있거나 null인 레코드가 도착하면 시스템은 하나의 행을 생성하고 평면화된 필드는 null이 됩니다. 자동으로 제외되지 않습니다. 이러한 행을 제외하려면 필터를 수동으로 추가하십시오. 예를 들어, array_element IS NOT NULL.

  • UI에 표시되는 데이터 유형은 선택된 데이터 집합의 세분성을 반영합니다. 평면화된 배열의 경우, 배열 구조 자체보다는 개별 요소의 데이터 유형이 표시됩니다.

  • 중첩된 JSON 필드 내의 구조체 안에는 새 특성을 추가할 수 없으며, 루트 수준에서만 추가할 수 있습니다.

  • 스트리밍 변환 작업에서 플랫화는 배열의 단일 수준에 대해서만 지원됩니다. 플랫화가 다단계 배열(예: ARRAY<ARRAY<STRUCT>>)에 적용되면 외부 배열만 플랫화되어 완전히 플랫화된 STRUCT 대신 ARRAY<STRUCT>가 생성됩니다. 또한 현재 UI에서는 열 수준에서만 플랫화를 구성할 수 있습니다. 결과적으로 다단계 배열을 선택하면 첫 번째 배열 수준에만 플랫화가 암시적으로 적용됩니다.

JSON

JSON 파일에서 소스의 숫자 값은 대상 데이터 유형을 결정합니다.

  • INT8은 지원되는 정수 범위 내에 있고 소수 부분이 없는 정수 값에 사용됩니다.

  • REAL8 (DOUBLE)은 값에 소수 부분(부동 소수점 숫자)이 포함된 경우에 사용됩니다.

  • STRING은 숫자 값이 지원되는 최대 정수 범위를 초과할 때 사용됩니다.

데이터 유형은 다음과 같이 맵핑됩니다:

원본 데이터 유형 Qlik Talend Data Integration개의 데이터 유형
STRING STRING
NUMBER INT8
NUMBER REAL8
NUMBER STRING
BOOLEAN BOOLEAN
ARRAY ARRAY
OBJECT STRUCT

CSV, TSV, REGEX, 및 SPLIT

기본적으로 모든 원본 데이터 유형은 문자열로 수집됩니다. 옵션 유형 자동 유추를 사용하여 원본 및 대상 유형을 다음과 같이 맵핑합니다.

원본 데이터 유형 Qlik개의 데이터 유형
NUMERIC INT8/REAL8
True/TRUE/true/False/FALSE/false BOOLEAN
TIMESTAMP yyyy-MM-dd HH:mm:ss 또는 yyyy-MM-ddTHH:mm:ssz 형식의 타임스탬프는 datetime 유형으로 구문 분석됩니다. 시간대가 포함된 경우 값은 문자열로 구문 분석됩니다.

Parquet

Parquet 파일은 물리적 및 논리적 데이터 유형을 지원합니다. 물리적 데이터 유형은 INT32, DOUBLE 또는 BYTE_ARRAY와 같이 값이 디스크에 저장되는 방식을 정의합니다. 논리적 데이터 유형은 물리적 표현 위에 의미론적 의미를 제공합니다(예: 정수 값이 날짜를 나타내는지 식별). Parquet 열에 논리적 유형이 연결되어 있고 Qlik 오픈 레이크하우스에서 지원되는 경우(아래에 나열된 대로), 스트리밍 랜딩 작업은 기본 물리적 유형 대신 논리적 유형을 사용하여 대상 스키마를 정의합니다. 이렇게 하면 데이터가 올바르게 해석되고, 정밀도, 스케일 및 시간적 의미와 같은 의도된 의미가 보존되며, 데이터가 다운스트림 형식으로 기록될 때 더 정확한 스키마가 생성됩니다.

Parquet 파일에서 가져온 데이터는 다음과 같이 매핑됩니다.

원본 데이터 유형 논리적 유형 Qlik Talend Data Integration개의 데이터 유형
BOOLEAN   BOOLEAN
INT32   INT8
INT64   INT8
INT96   DATETIME
FLOAT   REAL8
DOUBLE   REAL8
바이트 배열   문자열 (Base64로 인코딩됨)
FIXED_LEN_BYTE_ARRAY   문자열 (Base64로 인코딩됨)
바이트 배열 STRING STRING
바이트 배열 ENUM STRING
INT32 DECIMAL INT8
INT64 DECIMAL INT8
FIXED_LEN_BYTE_ARRAY DECIMAL INT8/REAL8 (Base64로 인코딩됨)
바이트 배열 DECIMAL INT8/REAL8 (Base64로 인코딩됨)
INT32 DATE DATE
INT32 TIME(밀리초, 참) INT8
INT64 TIME(마이크로초, 참) TIME
INT64 TIMESTAMP(마이크로초, 참) DATETIME
INT64 TIMESTAMP(밀리초, 참) DATETIME
NESTED TYPES   STRUCT
LIST   ARRAY
  ARRAY<STRUCT>. 키-값 쌍을 나타내는 구조체 배열.

Avro

다음 매핑은 스키마 레지스트리가 있는 Avro 파일에 적용됩니다.

원본 데이터 유형 논리적 유형 Qlik Talend Data Integration개의 데이터 유형
BOOLEAN   BOOLEAN
INT   INT8
LONG   INT8
FLOAT   REAL8
DOUBLE   REAL8
BYTES   STRING
STRING   STRING
RECORD   STRUCT
ENUM   STRING
ARRAY   ARRAY
  ARRAY<STRUCT>
UNION    
FIXED   STRING
BYTES DECIMAL DECIMAL
FIXED DECIMAL DECIMAL
INT DATE DATE
INT TIME-MILLIS INT8
INT TIME-MICROS TIME
LONG TIMESTAMP-MILLIS DATETIME
LONG TIMESTAMP-MICROS DATETIME

ORC

다음 매핑이 ORC 파일에 적용됩니다.

원본 데이터 유형 Qlik Talend Data Integration개의 데이터 유형
BOOLEAN BOOLEAN
BYTE INT8
SHORT INT8
INT INT8
LONG INT8
DATE DATE
FLOAT REAL8
DOUBLE REAL8
TIMESTAMP DATETIME
BINARY STRING
DECIMAL REAL8
STRING STRING
VARCHAR STRING
CHAR STRING
LIST ARRAY
ARRAY<STRUCT>. 키-값 쌍을 나타내는 구조체 배열.
STRUCT STRUCT
UNION  

제한 사항

다음 제한 사항은 모든 데이터 소스에 적용됩니다.

  • 파일 유형이 다른 경우(여러 소스 또는 버전에서 시작될 때 발생할 수 있음) 단일 샘플 파일(예: 온보딩 중)을 사용하여 생성된 변환 작업은 이러한 차이를 자동으로 고려하지 않습니다.

  • 랜딩 작업에서 데이터 유형을 변경하는 경우(예: 데이터를 해시해야 하기 때문) 변환 데이터 유형이 새 데이터 유형과 일치하는지 확인하십시오.

지원되는 소스

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 알려 주십시오!