스트리밍 파이프라인 기본사항

스트리밍 데이터 파이프라인 및 Cloud Dataflow SQL을 처음 사용하는 경우, 컬렉션, 기간, 워터마크, 트리거 개념을 숙지해야 합니다.

컬렉션 유형

PCollection(또는 컬렉션)은 파이프라인 데이터 역할을 하는 잠재적으로 분산된 다중 요소 데이터세트입니다. 파이프라인 변환에서는 컬렉션을 파이프라인 각 단계의 입력 및 출력으로 사용합니다. 컬렉션에는 고정된 크기의 제한된 데이터세트나 Cloud Pub/Sub와 같이 지속적으로 업데이트되는 데이터 소스의 제한되지 않은 데이터세트가 포함될 수 있습니다.

제한된 컬렉션에 그룹화 작업을 수행하면 전체 컬렉션에서 동일한 키를 가진 요소가 모두 그룹화됩니다. 그러나 제한되지 않은 컬렉션에서는 모든 요소를 수집할 수 없습니다. 지속적으로 업데이트되는 데이터 소스가 계속해서 새 요소를 추가하여 무한히 많은 요소가 있을 수 있기 때문입니다. 이를 종종 스트리밍 데이터라고 합니다.

기간 및 윈도우 함수

기간 설정을 사용하면 컬렉션을 개별 요소의 타임스탬프에 따라 기간으로 분할하여 제한되지 않은 컬렉션을 그룹화할 수 있습니다. 각 기간에는 유한한 수의 요소가 있습니다. 그룹화 작업은 기간별로 암시적으로 작동합니다. 전체 컬렉션의 크기가 제한되지 않은 경우라도 그룹화 작업은 각 컬렉션을 여러 개의 연속적인 유한 기간으로 처리합니다.

윈도우 함수는 요소를 최초 기간에 할당하는 방법과 그룹화된 요소의 기간을 병합하는 방법을 지정합니다. 다음과 같은 세 가지 윈도우 함수가 지원됩니다.

  • 텀블링 기간(Apache Beam에서는 고정 기간이라고 함)
  • 홉핑 기간(Apache Beam에서는 슬라이딩 기간이라고 함)
  • 세션 기간

텀블링 기간

가장 간단한 형태의 기간 설정은 텀블링 기간 설정입니다. 텀블링 기간은 데이터 스트림에서 시간 간격이 겹치지 않는 일정한 지속 시간을 나타냅니다. 예를 들어 기간을 5분 길이로 설정하면 제한되지 않은 컬렉션에서 타임스탬프 값이 0:00:00부터 최대 0:05:00(포함되지 않음)까지인 모든 요소는 첫 번째 기간에 속하고, 타임스탬프 값이 0:05:00부터 최대 0:10:00(포함하지 않음)까지인 요소는 두 번째 기간에 속합니다.

텀블링 기간(30초 길이)을 보여주는 이미지

그림 1: 텀블링 기간, 30초 길이

홉핑 기간

홉핑 기간 설정도 데이터 스트림의 시간 간격을 나타냅니다. 하지만 홉핑 기간은 겹칠 수 있습니다. 예를 들어 각 기간마다 5분간의 데이터가 포함될 수 있지만, 10초마다 새 기간이 시작됩니다. 홉핑 기간이 시작하는 간격을 주기라고 합니다. 따라서 위 예에서 기간은 5분 길이고 주기는 10초입니다.

여러 기간이 겹치므로 데이터세트의 대부분 요소가 두 개 이상의 기간에 속합니다. 홉핑 기간 설정은 데이터의 이동 평균을 구하는 데 유용합니다. 이 예에서는 30초마다 업데이트되는 최근 5분간의 데이터 이동 평균을 계산할 수 있습니다.

1분 길이 및 30초 길이의 홉핑 기간을 보여주는 이미지

그림 2: 기간이 각각 1분과 30초인 홉핑 기간

세션 기간

세션 기간은 다른 요소의 특정 간격 기간 내에 있는 요소가 포함된 기간입니다. 세션 기간 설정은 키 단위로 적용되며 시간에 따라 불규칙하게 분산된 데이터에 유용합니다. 예를 들어 사용자 마우스 활동을 나타내는 데이터 스트림은 일부에만 클릭이 크게 집중되어 긴 유휴 시간이 산재해 있을 수 있습니다. 데이터가 지정된 최소 간격 기간이 지난 후에 도착하면 새로운 기간이 시작됩니다.

최소 간격 기간의 세션 기간을 보여주는 이미지

그림 3: 최소 간격 기간이 있는 세션 기간. 데이터 분포에 따라 각 데이터 키가 서로 다른 기간을 가짐.

워터마크

워터마크는 시스템이 특정 기간의 모든 데이터가 파이프라인에 도착한 것으로 예상하는 시점을 나타냅니다. 데이터가 시간 순서 또는 예측 가능한 간격으로 도착하지 않을 수 있으므로 Cloud Dataflow는 워터마크를 추적합니다. 또한 데이터 이벤트가 생성된 순서와 동일한 순서로 파이프라인에 나타나지 않을 수도 있습니다. 워터마크가 기간 끝을 지나간 후 이 기간에 타임스탬프가 있는 요소가 추가로 도착하면 지연 데이터로 간주됩니다.

트리거

트리거는 데이터가 도착할 때 집계된 결과를 내보낼 시점을 결정합니다. 제한된 데이터의 경우 모든 입력이 처리된 후에 결과가 내보내기됩니다. 제한되지 않은 데이터의 경우 시스템이 해당 기간의 모든 입력 데이터가 처리되었다고 판단했음을 나타내는 워터마크의 기간 끝 통과 시점에 결과가 내보내기됩니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.