Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

시계열 질의의 컴퓨트 사용량

Foundry는 시계열 질의에 맞게 최적화한 형식으로 데이터를 디스크에 캐시합니다. 저장량은 Foundry 스토리지로 측정하며, 저장 자체에는 컴퓨트가 들지 않습니다. 시계열을 색인하거나 실제로 질의할 때 컴퓨트를 사용합니다.

질의 사용량 계산

사용량 기반 계약의 기본 질의 사용량은 요청당 4 compute-seconds이며, 읽은 관측점 수에 따른 사용량이 더해집니다. 기업 계약이 있다면 이 기본값으로 계산하기 전에 Palantir 담당자에게 계약 조건을 확인합니다.

compute-seconds = 4 + points_scanned / 25,000

points_scanned는 질의를 평가하는 동안 읽은 관측점 수입니다. 저장된 시계열의 크기뿐 아니라 계산 구조도 영향을 줍니다. 이 식은 Foundry에 저장한 시계열을 조회하는 컴퓨트에 적용하며 색인과 저장 사용량은 별도로 구분합니다.

가상 계산 예에서 질의 세 개가 각각 100,000개 관측점을 스캔하면 다음과 같습니다.

질의 수 = 3
질의당 기본 사용량 = 4 compute-seconds
스캔한 전체 관측점 = 100,000 × 3 = 300,000

전체 사용량 = 3 × 4 + 300,000 / 25,000
            = 24 compute-seconds

사용량이 귀속되는 리소스

Resource Management에서 데이터셋과 관련 리소스의 사용량을 조사합니다. 시계열 질의는 해당 작업을 수행한 도구의 리소스에 귀속됩니다.

실행 경로사용량 귀속
Quiver질의를 시작한 개별 분석 또는 대시보드
Workshop질의를 시작한 앱. Quiver 구성 요소를 삽입한 경우에도 상위 Workshop 앱
FoundryTS를 사용하는 변환해당 변환을 작성한 저장소

사용량을 늘리는 조건

질의 수가 늘면 기본 사용량도 반복해서 발생합니다. 사용자 조작, 여러 Quiver 대시보드의 갱신과 예약된 FoundryTS 빌드가 각각 질의를 시작할 수 있습니다.

같은 집계라도 관측점이 10,000,000개인 시계열은 관측점이 100,000개인 시계열보다 읽을 데이터가 많습니다. 실제 사용량은 질의에 따라 달라지며 각 시계열에 시간 범위를 적용하는 것이 읽을 점을 줄이는 일반적인 방법입니다.

계산을 중첩하거나 여러 시계열을 비교하면 결과를 만들기 위해 더 많은 점과 중간 결과를 읽을 수 있습니다. 최종 DataFrame의 행 수만으로 스캔량을 계산하지 않습니다.

사용량 관리

  • 분석이나 대시보드를 갱신할 때 실행되는 질의 수를 확인합니다. 매개변수 하나가 바뀌어도 모든 질의를 다시 실행하지 않도록 갱신 의존 관계를 나눕니다.
  • FoundryTS 변환의 예약 주기를 실제 데이터 갱신 필요에 맞춥니다.
  • 필요한 시간 범위를 시계열 질의에 적용합니다. 범위를 제한하는 설정 자체에는 컴퓨트가 추가로 들지 않으며 백엔드는 그 범위에 필요한 점만 읽습니다.
  • 업무에 필요한 시간 해상도를 선택합니다. 미리 집계하거나 해상도별 시계열을 따로 두면 가장 세밀한 관측을 매번 읽는 비용을 줄일 수 있습니다. 여러 시계열의 최신 상태를 유지하는 색인 컴퓨트와 추가 저장량도 함께 고려합니다.

계산 구조와 스캔량

다음 코드는 FoundryTS를 설정한 Code Workbook에서 사용합니다. 동기화와 기반 데이터셋을 입력 및 프로젝트 범위에 추가하고, 숫자형 시계열 ID인 series_1과 series_2를 실제 조회 대상에 맞춥니다.

두 시계열의 합

import foundryts.functions as F

series_1, series_2 = F.series("series_1", "series_2")
result = F.dsl(program="a+b")([series_1, series_2]).time_range(
    start="2022-01-01", end="2023-01-01"
)
result_df = result.to_pandas()

계산 구조에는 두 입력 시계열과 그 합을 만드는 수식 노드가 있습니다. to_pandas가 질의를 평가할 때 결과 시계열뿐 아니라 결과를 만드는 두 입력의 해당 시간 범위도 읽습니다.

합과 7일 이동 평균의 차이

import foundryts.functions as F

series_1, series_2 = F.series("series_1", "series_2")
summed = F.dsl(program="a+b")([series_1, series_2])
rolling_mean = summed.rolling_aggregate("mean", "7d")
result = F.dsl(program="a-b")([summed, rolling_mean]).time_range(
    start="2022-01-01", end="2023-01-01"
)
result_df = result.to_pandas()

이 계산의 의존 관계는 다음과 같습니다.

계산 노드입력
최종 차이 수식합 시계열, 7일 이동 평균
합 시계열series_1, series_2
7일 이동 평균합 시계열
이동 평균에 들어가는 합series_1, series_2

이동 평균은 각 관측 시각까지의 7일 구간을 사용합니다. 최종 출력 범위가 1년이어도 질의의 각 계산 노드가 필요한 관측을 읽으므로 단순 합보다 스캔량이 커질 수 있습니다. 실제 사용량에는 최종 결과와 하위 계산에서 스캔한 점을 함께 반영합니다.