스트리밍용 Pipeline Builder를 사용하면 배치 데이터셋과 다른 스트림 모두와 스트림을 조인할 수 있습니다. 스트리밍의 저 지연 시간 특성으로 인해, 조인의 구현 방식이 표준 배치 파이프라인에서의 작동 방식과 다릅니다. 이 페이지에서는 조인이 어떻게 작동하는지 및 파이프라인에서 최적으로 활용하는 방법을 설명합니다.
Foundry를 사용하면, 배치 데이터셋과 배치 Pipeline Builder 파이프라인에서 두 배치 데이터셋을 조인하는 것과 유사한 방식으로 저 지연 시간 스트림을 결합할 수 있습니다.
Pipeline Builder에서 스트림을 배치 데이터셋과 조인하려면 다음 단계를 완료하십시오:
스트림과 배치 데이터셋을 Pipeline Builder 그래프에 추가합니다.
배치 데이터셋 아래에서 드롭다운 메뉴를 선택하고 유형을 Snapshot으로 변경합니다.
조인하려는 스트림을 선택합니다.
Join을 선택하고 조인의 오른쪽에서 배치 데이터셋을 선택합니다.
Join Type 아래에서 Left Lookup Join을 선택합니다.
일치 조건을 입력합니다.
배치 데이터셋에 대한 스트리밍 조인은 초기에 배치 데이터셋을 다운로드하고 스트리밍 클러스터에서 인덱싱하여 저 지연 시간 조회를 허용하는 방식으로 작동합니다. 조인을 저 지연 시간으로 만들기 위해, 스트림과의 조인 전에 동일한 Pipeline Builder 파이프라인에서 배치 데이터셋에 대한 변환은 허용되지 않습니다.
배치 데이터셋은 데이터셋에 새로운 트랜잭션이 작성될 때 업데이트됩니다. 배치 데이터셋에 새 트랜잭션이 추가되면 배경 프로세스가 데이터의 새로운 뷰를 다운로드하고 쿼리 가능한 형식으로 변환합니다. 해당 프로세스가 완료되면 스트림이 배치 데이터셋의 새로운 뷰와 조인을 시작합니다.
스트림과 조인하기 전에 배치 데이터셋을 변환할 수 없습니다. 배치 데이터셋을 변환해야 하는 경우, 상류 Pipeline Builder 파이프라인에서 변환할 수 있습니다.
스트리밍 조인에 대한 다음 제한 사항을 고려하십시오:
Foundry를 사용하면, 배치 Pipeline Builder 파이프라인에서 여러 배치 데이터셋을 조인하는 것과 유사한 방식으로 여러 저 지연 시간 스트림을 결합할 수 있습니다.
Pipeline Builder에서 두 스트림을 조인하려면 다음 단계를 완료하십시오:
외부 조인 대신 왼쪽 또는 오른쪽 조인을 원하는 경우, 조인 후에 널 값이 있는 레코드를 필터링하여 제거할 수 있습니다. 오른쪽 조인의 경우 오른쪽 값이 널인 곳에서 필터링하고 왼쪽 조인의 경우 오른쪽 값이 널인 곳에서 필터링합니다.
스트림이 무기한으로 실행되고 새 레코드가 조인 양쪽에 계속 흐르기 때문에 두 스트림 사이의 조인은 각 조인 측면의 데이터 캐시에서 작동하는 대신 전체 스트림에 대해 조인합니다.
여러 스트림 간의 조인은 데이터 캐시에서 작동하도록 제한되어 있어 무제한 상태 성장을 방지하고 결국 스트리밍 클러스터의 메모리가 부족하여 충돌하는 것을 방지합니다. 조인의 왼쪽과 오른쪽 측면에서 캐시의 만료 시간을 설정함으로써 조인에 필요한 레코드를 저장하는 상태가 제한되어 있어 스트리밍 클러스터의 메모리 부족 문제를 방지합니다.
데이터는 키별로 저장되며 태스크 매니저 간에 분산되어 더 큰 조인을 허용합니다. 이는 더 큰 스트림과 조인하려면 태스크 매니저당 메모리를 늘리거나 클러스터가 실행 중인 태스크 매니저 수를 늘릴 수 있다는 것을 의미합니다.
조인에서 지정된 키 열을 기준으로 왼쪽 스트림의 레코드는 항상 오른쪽의 가장 최근 레코드와 조인됩니다. 특정 키에 대한 가장 최근 레코드만 조인됩니다.
다른 스트림과 스트림을 조인할 때 다음 제한 사항을 고려하십시오: