데이터 통합파이프라인 빌딩스트리밍 파이프라인성능 고려 사항

본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

성능 고려 사항

Foundry에서 스트림을 생성하기 전에 스트림을 정의하는 지연 시간 및 처리량 기대치를 고려해야 합니다. 이 페이지에서는 스트림 유즈케이스의 지연 시간 및 처리량 성능과 관련하여 고려해야 할 몇 가지 질문을 제시합니다.

지연 시간

지연 시간은 스트림 레코드가 처리되는 속도입니다. 지연 시간은 실시간 스트림의 핵심 성능 구성 요소로, 레코드가 스트림을 통해 처리되어 목적지에 도착하는 속도에 대한 기대는 현실 세계에 영향을 줄 수 있습니다. 예를 들어, 스트림 지연 시간은 항공편 지연이나 즉시 조치가 필요한 공급망 문제에 대한 경고가 얼마나 빨리 트리거되는지를 결정합니다. 지연 시간에 영향을 미치는 요인은 다양하지만, 가장 중요한 고려 사항 중 일부는 아래에 나열되어 있습니다.

지연 시간 요인

  • 데이터를 얼마나 빨리 생성합니까?
    • Foundry는 생성된 속도만큼 데이터를 소비할 수 있으므로, 데이터 소스가 데이터를 빠르게 생성할 수 있는지 확인해야 합니다.
  • 데이터가 네트워크 경계를 넘는 데 얼마나 걸립니까?
    • Foundry에 데이터를 가져올 때 데이터는 종종 네트워크 경계를 넘어가야 하며 이로 인해 네트워크 구성, 방화벽 및 기타 요인에 따라 지연 시간이 발생할 수 있습니다.
  • 종단 간 파이프라인에 몇 단계가 있습니까?
    • Foundry 스트리밍은 동일한 Code Repositories 또는 Pipeline Builder 그래프에서 정의된 파이프라인 변환을 동일한 물리적 하드웨어에 공동 위치시켜 자동으로 지연 시간을 최적화합니다. 파이프라인에 더 많은 단계가 추가되면(예: 여러 저장소 또는 빌더 파이프라인이 연결된 경우) 동일한 최적화를 수행할 수 없어 추가 지연 시간이 발생합니다.
  • 데이터가 외부 시스템으로 전송되고 있습니까?
    • 레코드가 저지연 방식으로 접근 가능하려면, 목적지 시스템이 데이터를 저지연 방식으로 처리할 수 있어야 합니다. Foundry는 시계열 및 온톨로지와 같은 최적화된 목적지를 제공하지만 데이터가 외부 시스템으로 이동하면 해당 시스템이 지연 요구 사항을 지원해야 합니다.
  • 데이터의 일관성 모델은 무엇입니까?
    • 데이터 일관성은 종단 간 지연에 큰 역할을 합니다. 정확히 한 번의 보장이 필요한 데이터(예: 레코드가 정확히 한 번 처리될 것이 보장되는 경우)는 파이프라인의 원자성을 보장하기 위해 오버헤드와 지연 시간을 추가합니다. 그러나 파이프라인이 적어도 한 번의 보장으로 실행될 수 있는 경우(예: 각 레코드가 적어도 한 번 처리되도록 보장되지만 두 번 이상 처리될 수도 있는 경우), 시스템은 파이프라인을 자동으로 최적화하여 더 빠르게 실행하게 됩니다.

스트리밍 파이프라인의 종단 간 지연 시간

표준 스트리밍 파이프라인은 다음 단계를 15초 이내에 실행할 수 있습니다:

  • 수집: 약 1~2초
  • 변환: 정확히 한 번이 활성화된 경우(기본값) 약 5초 또는 적어도 한 번이 활성화된 경우 1초
  • 백업 데이터 저장소로 동기화(오브젝트 스토리지 동기화 또는 시계열 동기화): 정확히 한 번이 활성화된 경우(기본값) 약 5초 또는 적어도 한 번이 활성화된 경우 1초

위에서 언급한 바와 같이 스트리밍 파이프라인의 종단 간 지연 시간에 영향을 주는 세 가지 주요 요인이 있습니다.

  1. 변환 수에 기반한 파이프라인의 복잡성.
  2. 파이프라인이 적어도 한 번 실행되는지 아니면 정확히 한 번 실행되는지에 따라 일관성 모델.
  3. 시간 기반 창 및 변환에서의 집계. 예를 들어, 30초 창에서 집계하려는 경우 데이터에 암시적으로 30초 추가 지연 시간이 있게 됩니다.

처리량

처리량은 일정 기간 동안 처리할 수 있는 레코드의 양입니다. 처리량은 지연 시간만큼 중요한 저지연 파이프라인의 성능 측정에 종종 사용되며, 가장 중요한 고려 사항 중 일부는 아래에 나열되어 있습니다.

  • 소스가 시간 간격별로 얼마나 많은 레코드를 생성합니까?
    • Foundry의 스트리밍 기능은 처음부터 높은 처리량 수준을 제공합니다. 그러나 소스 스트림이 예외적으로 높은 속도로 생성되는 경우 다음을 수행할 수 있습니다.
      • 스트림이 사용하는 파티션 수를 늘려 더 높은 볼륨을 지원합니다.
      • 기존 스트림의 스트림 유형을 "높은 처리량"으로 설정합니다. 이 구성은 소스가 한 번에 보내는 레코드 수를 늘리며 스트림의 "총 지연" 지표가 0보다 큰 경우에 권장됩니다. 이 설정은 처리량을 위해 지연 시간과 직접적으로 교환합니다. 진행하기 전에 스트림의 "총 처리량" 지표를 확인하여 "높은 처리량"을 적용하는 것이 스트림에 적합한 선택인지 확인합니다.
  • 파이프라인의 처리 부분이 얼마나 CPU 집약적입니까?
    • 처리 과정에서 지연이 발생하면 처리량이 종종 제한됩니다. 처리량을 높이는 데는 여러 가지 방법이 있으며 대부분 처리 클러스터의 크기를 확장하여 해결할 수 있습니다.
  • 목적지 시스템이 레코드를 얼마나 빨리 받을 수 있습니까?
    • 스트림 목적지 시스템도 레코드를 생성하는 속도만큼 빨리 받을 수 없으면 지연이 발생할 수 있습니다. 이로 인해 백프레셔가 발생하여 처리량이 감소하고 지연 시간이 증가합니다. Foundry의 스트리밍 제품은 높은 처리량을 처리할 수 있도록 최적화되어 설계되었습니다. 그러나 스트리밍 파이프라인을 사용자의 목적지에 쓰도록 설정하는 경우 목적지가 생성된 레코드의 볼륨을 처리할 수 있는지 확인해야 합니다.

고급

  • 데이터 파이프라인에 대한 깊이 있는 이해를 가진 사용자의 경우 스트림 성능의 또 다른 잠재적 병목 현상은 네트워크 대역폭입니다. 최적이 아닌 네트워크 대역폭의 증상으로는 0이 아닌 지연, 예상보다 낮은 처리량 및 레코드가 삭제됩니다. 이러한 증상을 완화하려면 스트림에 데이터 압축을 적용할 수 있습니다. 그러나 이를 수행하기 전에 다음 사항을 염두에 두어야 합니다.
    • 데이터 압축은 반복적인 문자열이 있는 고용량 스트림에서 가장 효과적입니다.
    • 지연 시간을 줄이는 것이 주요 관심사인 낮은 용량 스트림의 경우 데이터 압축을 사용하면 데이터를 최적이 아닌 방식(예: 고유 문자열의 볼륨이 낮은 경우)으로 압축하는 데 걸리는 시간으로 인해 지연 시간이 더욱 증가합니다.