데이터 통합파이프라인 빌딩스트리밍 파이프라인Foundry Streaming을 이용한 컴퓨트 사용량

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

Foundry Streaming을 이용한 컴퓨트 사용량

Foundry Streaming은 신규 메시지를 지속적으로 수신하고, 사용자 정의 로직을 적용하고, 파이프라인의 다음 단계로 메시지를 전송하는 고속, 저지연 컴퓨트 형태입니다.

Foundry 스트림은 분산 병렬 작업자 기반 아키텍처에 의존하며, 각 병렬 작업자는 특정 스트리밍 작업을 위해 전용 리소스를 가지고 있습니다. 스트림 리소스 요구사항은 활성 스트림의 최대 처리량과 처리하는 메시지의 총 수에 따라 확장됩니다.

컴퓨트 측정 방법

스트리밍 컴퓨트 사용량은 두 가지 유형으로 나뉩니다:

  • 실시간 처리 컴퓨트: 실시간 데이터에 사용자 정의 변환을 실행하는 프로세스. 이 소스 유형은 "스트리밍"이라고 불립니다.

  • 아카이빙 컴퓨트: 데이터를 스트리밍 레이어에서 Foundry의 저장 레이어로 이동하는 프로세스입니다. 아카이브 컴퓨트는 배치 처리 프로세스이며 "변환"으로 표시됩니다.

Foundry 사용료를 지불할 때, 기본 streaming_usage_rate0.5입니다. 이것은 실시간 데이터에서 사용자 정의 변환을 실행하는 속도입니다. Palantir과 기업 계약이 있는 경우, 컴퓨트 사용량 계산을 진행하기 전에 Palantir 대표와 연락하십시오.

Foundry에서 스트림의 실시간 처리 컴퓨트는 벽시계 시간 동안 전체 기간에 걸쳐 사용하는 컴퓨트 초로 측정됩니다. 따라서 스트리밍 작업에서 더 많은 계산 리소스(예: vCPUs, 메모리, 병렬화)를 사용하면 작업의 비용이 증가합니다. 작업이 실행되는 시간이 길수록 더 많은 컴퓨트를 사용합니다. 스트림은 지속적으로 데이터를 처리하기 위해 지속적으로 실행되도록 설계되었으므로, 사용자가 종료할 때까지 컴퓨트를 계속 사용합니다.

스트림은 정적으로 할당되며; 스트림이 실행되는 동안 벽시계 초당 컴퓨트 초를 일정하게 사용합니다. 스트림은 종종 피크 수요를 충족하기 위해 조정되므로, 스트림에서 컴퓨트 사용량은 가변 데이터 볼륨에 영향을 받지 않습니다. 데이터가 스트림을 통해 이동하지 않아도 스트림은 컴퓨트 초를 사용합니다.

스트림 사용량은 단일 작업 관리자와 많은 작업 관리자에 의해 사용된 총 초의 합계로 계산될 수 있습니다. 각 병렬 작업자가 동일한 계산 리소스를 가질 것임을 유의하세요.

작업 관리자 컴퓨트 초는 다음과 같이 계산됩니다:

  • max(num_vCPU, gib_ram / 7.5) * streaming_usage_rate * stream_duration_seconds

작업 관리자 컴퓨트 초는 다음과 같이 계산됩니다:

  • max(num_vCPU, gib_ram / 7.5) * streaming_usage_rate * stream_duration_seconds * (num_parallel_task_managers + 1)
  • compute_seconds = job_manager compute_seconds + task_manager_compute_seconds

컴퓨트 사용량을 계산하는 데 사용되는 값에 대해 더 알아보려면, 메모리-코어 비율을 참조하십시오.

아카이빙 작업은 각 스트림과 함께 실행되는 배치 처리 작업입니다. 아카이브 작업은 주기적으로 스트림의 핫 스토리지 레이어에서 읽고 데이터를 Foundry 저장소로 이동하여 견고한 지속성과 히스토리 트래킹을 가능하게 합니다. 아카이브 작업은 스트림 자체와 같은 저지연 요구 사항이 없으므로, 일정에 따라 실행되고 아카이브할 데이터가 있을 때만 컴퓨트를 사용합니다.

아카이빙 작업 사용량은 단일 Spark 드라이버를 기반으로 하며 다음 공식으로 계산할 수 있습니다:

  • compute_seconds = max(num_vcpu, gib_ram / 7.5) * num_seconds
    • 아카이브 작업은 작습니다. 아카이버는 항상 1 vCPU와 4 GiB RAM의 최소 프로파일로 실행됩니다.

Foundry Streaming 사용량 조사

스트림의 총 사용량을 보려면, 먼저 리소스 관리 애플리케이션으로 이동합니다. 그런 다음, 자원별 사용량 섹션에서 스트림을 찾고 세부 정보를 선택하여 개별 데이터셋별 사용량을 확인합니다.

streaming-compute-usage

스트림의 비용은 스트림이 생성하는 체크포인트 데이터셋에 할당됩니다. 이 데이터셋은 해당 스트림 처리의 영구 사용 기록 역할을 합니다. 이 데이터셋의 스트리밍 사용량은 리소스 관리 애플리케이션에서 "스트리밍" 카테고리에 속합니다.

스트림이 실행될 때마다 사용자가 스트림을 중지할 때까지 계속 실행됩니다. 사용자가 스트림을 중지하면, 그 실행은 데이터셋의 히스토리 탭에 나타납니다. 각 개별 스트림의 프로파일을 조사하여 과거 스트림 실행의 성능과 컴퓨트 사용량을 이해할 수 있습니다.

각 시간대별 아카이브가 실행될 때마다, 빌드 애플리케이션에서 컴퓨트 측정치를 게시합니다. 빌드 애플리케이션을 사용하여 각 아카이브의 리소스 할당을 조사합니다.

사용량의 주요 요인 이해

스트림의 사용량 주요 요인은 스트림 자체의 컴퓨트 리소스 지문입니다. 이 경우, 컴퓨트 리소스에는 작업 관리자 당 vCPUs 수, 파티션당 GiB RAM, 스트림 내의 파티션 수가 포함됩니다. 이 리소스는 스트림의 프로파일에 설정되며 스트림의 기간 동안 지속됩니다.

  • 스트림 리소스는 들어오는 스트림의 피크 처리량을 충족시키도록 할당되어야 합니다. 들어오는 메시지의 볼륨이 컴퓨트 리소스가 효과적으로 서비스할 수 있는 것보다 높으면, 스트림이 뒤처집니다.
  • 스트림이 사용하는 리소스를 변경하려면, 리소스 프로파일을 변경하고 스트림을 다시 시작해야 합니다.
  • 아카이브 작업 컴퓨트 사용량은 스트림을 통해 이동하는 데이터 양에 따라 확장됩니다. 아카이브 작업은 마지막 아카이브 이후의 모든 데이터를 읽습니다. 스트림된 데이터가 없으면, 아카이브 작업은 0의 컴퓨트를 사용합니다. 아카이브 작업은 스트림이 활성 상태인 동안 10분마다 실행됩니다.

Foundry Streaming으로 사용량 관리하기

특정 워크플로에 대해 스트리밍을 선택할 때와 배치를 선택할 때를 이해하는 것이 중요합니다. 스트리밍은 초단위 지연 시간과 지속적인 컴퓨트를 필요로 하는 워크플로를 위해 설계되었습니다. 데이터가 몇 분마다 실행될 수 있다면, 동일한 양의 데이터를 스트림과 같이 푸시하지만 컴퓨트 초 비용이 줄고 데이터 지연 시간이 훨씬 높은 작은 마이크로 배치 작업을 고려하십시오.

  • 스트림의 크기는 실행 당 사용된 총 컴퓨트 초에 크게 영향을 미칩니다. 스트림은 해당 스트림에 대해 예상되는 최대 동시 부하를 처리할 수 있을 만큼의 리소스로 구성되어야 합니다.
  • 피크 로드를 제공하면서 과도하게 프로비저닝되지 않도록 스트림의 크기를 선택하는 것이 중요합니다. 이는 각 작업의 크기(vCPUs와 메모리)와 스트림의 작업 관리자 총 수를 신중하게 구성하는 것을 포함합니다.
  • 스트림은 중지될 때까지 실행됩니다. 스트리밍 컴퓨트의 소스를 신중하게 모니터링하여 스트림이 필요할 때만 실행되도록 하십시오.

사용량 계산

다음 예는 10분 동안 실행되는 가상의 스트림에 대한 컴퓨트 사용량이 어떻게 계산되는지 보여줍니다. 대부분의 생산 스트림은 지속적으로 실행됩니다.

스트림 프로파일

  • 작업 관리자 vCPUs: 0.5
  • 작업 관리자 gib_ram: 1
  • 작업 관리자 vCPUs: 0.5
  • 작업 관리자 gib_ram: 2g
  • 병렬성: 2
  • gib_ram: 4
  • 스트림 기간: 10분 (600초)
  • streaming_usage_rate: 0.5

계산

  • 작업 관리자 컴퓨트 초 = max(vCPUs, gib_ram / 7.5 gib_ram) * streaming_usage_rate * 600s = max(0.5, 0.133) * 0.5 * 600s = 150 컴퓨트 초
    • 또는 초당 0.25 컴퓨트 초 또는 시간당 900 컴퓨트 초
  • 작업 관리자 컴퓨트 초 = max(vCPUs, gib_ram / 7.5 gib_ram) * (병렬성 + 1) * streaming_usage_rate * 600s = max(0.5, 0.267) * 3 * 0.5 * 600s = 450 컴퓨트 초
    • 또는 초당 0.75 컴퓨트 초 또는 시간당 2700 컴퓨트 초

이 스트림이 10분 동안 실행되는 경우의 총 컴퓨트 사용량은 150 작업 관리자 컴퓨트 초와 450 작업 관리자 컴퓨트 초입니다. Foundry에서 컴퓨트 사용량에 영향을 미치는 요소에 대해 더 알아보십시오.