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

연산 사용량: 온톨로지 색인화

Foundry의 온톨로지는 오브젝트를 온톨로지 색인, 즉 빠른 접근에 최적화된 저장 형식에 저장합니다. Foundry 데이터셋의 데이터는 어떤 크기나 형식이라도 될 수 있으므로, 데이터셋 데이터를 온톨로지 색인에 저장하기 위한 데이터 변환이 필요합니다. 이 과정을 온톨로지 색인화라고 하며, 임의의 크기의 데이터셋과 오브젝트에 적용할 수 있습니다. 온톨로지 색인화의 처리 비용은 연산-초로 측정됩니다. 이 문서에서는 온톨로지 색인화가 연산을 어떻게 사용하며 연산 사용량을 어떻게 관리하는지에 대해 설명합니다.

온톨로지 색인화로부터의 연산 사용량 측정

온톨로지 색인화는 병렬화된 Spark 백엔드를 사용하여 임의의 크기의 데이터 세트를 읽고 이를 온톨로지 형식으로 변환합니다. 색인 작업을 실행하는 데 사용되는 연산량은 연산 자원(드라이버 및 실행기)의 양과 색인 작업 자체의 총 벽시계 지속 시간에 기반합니다.

Spark 사용량이 어떻게 연산-초로 번역되는지에 대한 자세한 정보는 주요 사용 유형 문서를 참조하십시오. 아래에서는 온톨로지 색인화에 의해 사용된 연산-초에 대한 계산 예를 찾을 수 있습니다.

온톨로지 색인화로부터의 사용량 조사

온톨로지 색인화 작업은 Foundry의 빌드 애플리케이션에 노출되며 색인화되는 오브젝트에 연결됩니다. 온톨로지 색인화 작업은 Spark 작업이므로 병렬화된 배치 연산으로 분류됩니다. 따라서 온톨로지 색인화 작업은 Code Repositories 변환 및 Contour 쿼리와 같은 백엔드의 다른 작업과 동일한 방식으로 측정될 수 있습니다.

색인화 작업은 그것들이 어떻게 트리거되는지에 기반하여 분류될 수 있습니다.

  • 온톨로지 색인화 작업은 데이터셋을 온톨로지 백엔드에 색인화합니다. 이 연산은 데이터셋에서 색인화된 오브젝트를 생성하는 데 사용됩니다.
  • 온톨로지 내보내기 작업은 온톨로지에서 직접 수행된 편집을 Foundry 변환 프레임워크의 데이터셋에 유지합니다. 이들 작업은 일반적으로 편집을 처리하고 있으므로 전체 오브젝트셋의 엄격한 하위집합인 것들이므로 전체 색인화 작업보다 작습니다.

온톨로지 색인화에 대한 사용량의 원인

온톨로지 색인화 작업은 색인화가 필요한 모든 데이터를 읽어야 하며, 이를 온톨로지 백엔드가 빠르게 저장, 검색, 편집할 수 있는 형식으로 변환해야 합니다.

데이터를 읽고 색인화할 때의 연산 사용량은 다음 요인에 의해 주도됩니다:

  • 오브젝트당 레코드 수
    • 색인화되는 데이터셋의 레코드 수가 증가함에 따라 오브젝트의 수가 증가합니다. 각 오브젝트는 색인화를 위해 일정 수의 연산을 필요로 하므로, 오브젝트의 수를 증가시키면 색인화를 위한 연산 사용량이 증가합니다.
  • 오브젝트당 속성 수
    • 각 오브젝트의 각 속성은 색인 작업에 의해 개별적으로 분석되어야 하며, 그런 다음 오브젝트 색인에 기록되어야 합니다. 분석하고 색인화할 속성이 더 많으면 더 많은 연산이 사용됩니다.
  • 각 속성의 크기
    • 일부 속성은 다른 속성보다 훨씬 큽니다. 예를 들어, 많은 내용을 포함하는 텍스트 속성은 간단한 숫자 속성보다 더 많은 공간과 연산을 분석하는 데 필요합니다. 더 크고 복잡한 속성 유형을 가진 오브젝트는 색인화를 위해 더 많은 연산을 필요로 합니다.

색인화 빈도도 온톨로지 업데이트에 대한 연산 사용량에 큰 역할을 합니다. 상류 데이터셋에 설정된 일정은 오브젝트의 자동 재색인을 트리거합니다. 오브젝트를 최신 상태로 유지하는 사용량의 영향을 검토할 때, 해당 오브젝트와 그 상류 데이터셋에 대한 업데이트 일정을 고려하십시오.

온톨로지 색인화 연산 관리

온톨로지 색인화 작업은 연산 사용량을 줄이기 위해 최적화될 수 있습니다. 최적화의 첫 번째이자 가장 간단한 방법은 색인의 입력 데이터의 크기를 줄이는 것으로, 작업을 완료하는 데 필요한 작업량을 줄입니다. 이는 가능한 한 다음을 수행하는 것을 포함합니다:

  • 입력 레코드 수 관리
  • 오브젝트당 속성 수 관리
  • 오브젝트당 각 속성의 크기 관리

또 다른 최적화 방법은 온톨로지 색인 작업을 색인화를 위해 변경 로그 전략을 사용하도록 설정하는 것입니다. 변경 로그 색인화는 작업을 실행하기 전에 기존 오브젝트와 작업을 비교함으로써 색인화 작업당 생성 또는 업데이트해야 하는 오브젝트의 수를 크게 줄입니다. 변경 로그 색인화는 더 많은 구성과 업데이트 전략을 준수하는 데 필요하지만, 성능과 효율성이 수백 배 높아질 수 있습니다.

예제 색인화 연산 계산

색인화 작업은 병렬화된 Spark 작업의 형태를 취하고 빌드 애플리케이션에서 볼 수 있습니다. 색인화 작업에 대한 다음 예를 참조하십시오. 작업의 크기에 따라 온톨로지 색인화 작업이 드라이버와 실행기의 크기를 자동으로 선택할 것이라는 점에 유의하십시오.

Driver:
    num_vcpu: 1
    GiB_RAM: 6
Executors:
    num_vcpu: 1
    GiB_RAM: 4
    num_executors: 2
Total Runtime: 10 seconds

계산: 

# 드라이버 컴퓨팅 시간 계산
driver_compute_seconds = max(num_vcpu, GiB_RAM / 7.5) * runtime_in_seconds
                       = max(1vcpu, 6GiB / 7.5) * 10sec
                       = 1 * 10 = 10 컴퓨팅-초

# 실행기 컴퓨팅 시간 계산
executor_compute_seconds = max(num_vcpu, GiB_RAM / 7.5) * num_executors * runtime_in_seconds
                         = max(1vcpu, 4GiB / 7.5) * 2executors * 10sec
                         = 1 * 2 * 10 = 20 컴퓨팅-초

# 총 컴퓨팅 시간 계산
total_compute_seconds = driver_commpute_seconds + exeucutor_compute_seconds
                      = 10 컴퓨팅-초 + 20 컴퓨팅-초
                      = 30 컴퓨팅-초