Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

온톨로지 인덱싱 컴퓨팅 사용량

온톨로지 인덱싱(Ontology indexing)은 데이터셋(Dataset)의 자료를 빠르게 조회하고 편집할 수 있는 객체 인덱스로 변환합니다. 이 처리의 연산 사용량은 compute-seconds로 측정합니다. 저장 용량과는 다른 사용량입니다.

배치 작업의 측정

배치 인덱싱은 병렬 Spark 백엔드에서 자료를 읽고 변환합니다. 사용량은 드라이버와 실행기에 할당한 컴퓨팅 자원 및 작업의 전체 경과 시간으로 계산합니다. 작업 크기에 따라 드라이버와 실행기 크기를 자동으로 선택합니다.

Builds에서 인덱싱 대상 객체에 연결된 실행 작업을 확인할 수 있습니다. 병렬 배치 컴퓨팅으로 분류되므로 같은 백엔드의 코드 저장소 변환이나 Contour 질의와 같은 방식으로 측정합니다.

작업목적
Ontology indexing jobs데이터셋을 온톨로지 백엔드의 인덱싱된 객체로 만듭니다.
Ontology export jobs온톨로지에서 직접 편집한 내용을 변환 계층의 데이터셋에 저장합니다. 보통 전체 객체 중 편집한 일부를 다루므로 전체 인덱싱보다 작습니다.

사용량에 영향을 주는 요소

레코드가 많으면 인덱싱할 객체가 늘어납니다. 객체마다 속성을 분석하고 인덱스에 쓰므로 속성 수가 많아도 연산이 증가합니다. 큰 본문이나 복잡한 속성은 간단한 숫자보다 더 많은 분석과 저장 작업을 요구합니다.

업데이트 빈도도 함께 봅니다. 상위 데이터셋에 설정한 일정은 객체의 자동 재인덱싱을 유발할 수 있으므로 객체 자체와 상위 데이터셋의 갱신 주기를 같이 확인합니다.

입력과 변경 기록 최적화

업무에 필요한 입력 레코드, 객체별 속성 수와 속성 크기를 조정하면 인덱싱할 작업량을 줄일 수 있습니다.

변경 기록(Changelog) 전략을 사용하면 기존 객체와 비교하여 이번 작업에서 생성하거나 갱신할 객체 수를 줄일 수 있습니다. 추가 설정과 정해진 업데이트 전략 준수가 필요하지만 전체 자료를 다시 처리하는 방식보다 연산을 크게 줄일 수 있습니다.

compute-seconds 계산 예

다음은 드라이버 1개와 실행기 2개가 각각 10초 동안 실행되는 가상 작업입니다.

구성vCPU메모리수량시간
드라이버16 GiB110초
실행기14 GiB210초

각 구성의 사용량은 max(vCPU, 메모리 GiB / 7.5) × 수량 × 실행 초로 계산합니다.

runtime_seconds = 10

driver_compute_seconds = max(1, 6 / 7.5) * runtime_seconds
executor_compute_seconds = max(1, 4 / 7.5) * 2 * runtime_seconds
total_compute_seconds = driver_compute_seconds + executor_compute_seconds

print(total_compute_seconds)

드라이버는 10 compute-seconds, 실행기 둘은 합쳐 20 compute-seconds이므로 합계는 30 compute-seconds입니다. 전체 경과 시간 10초와 총 컴퓨팅 사용량 30 compute-seconds를 구분합니다.