Oracle NoSQL Database Analytics Integrator 실행

Oracle NoSQL Database Analytics Integrator 실행 단계입니다.

통합기에 대한 구성 파일 생성

Oracle NoSQL Database Analytics Integrator를 실행하려면 먼저 구성 파일을 생성해야 합니다. 이 구성 파일은 유틸리티를 호출할 때 사용됩니다. 구성 파일에는 아래 예와 같이 JSON 형식의 항목이 있어야 합니다. 다음은 두 가지 샘플 구성 파일입니다. 아래 사용된 일부 매개변수가 필요하지 않습니다. 아래 표에서는 예에서 사용 중인 모든 매개변수에 대해 설명하고 선택적 또는 필수인 경우 강조 표시합니다.

예 1: Oracle Cloud 컴퓨트 인스턴스에서 유틸리티를 실행하고 인스턴스 주체를 사용하여 인증하고자 합니다.
{
    "nosqlstore": {
        "type" : "nosqldb_cloud",
        "endpoint" : "us-ashburn-1",
        "useInstancePrincipal" : true,
        "compartment" : <ocid.of.compartment.containing.nosql.tables>,
        "table" : <tableName1,tableName2,tableName3>,
        "readUnitsPercent" : "90,90,90",
        "requestTimeoutMs" : "5000"
    },
    "objectstore" : {
        "type" : "object_storage_oci",
        "endpoint" : "us-ashburn-1",
        "useInstancePrincipal" : true,
        "compartment" : <ocid.of.compartment.containing.bucket>,
        "bucket" : <bucket-name-objectstorage>,
        "compression" : "snappy"
    },
    "database": {
        "type" : "database_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <profile-for-adw-auth>,
        "databaseName" : <database-name>,
        "databaseUser" : "ADMIN",
        "databaseWallet"” : <path-where-wallet-unzipped>

    }
}
예 2: 고유의 사용자 인증서를 사용하여 인증하거나 Oracle Cloud 외부에서 실행 중이므로 인스턴스 주체 인증을 사용할 수 없습니다.
{
    "nosqlstore": {
        "type" : "nosqldb_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <nosqldb-user-credentials>,
        "table" : <tableName1,tableName2,tableName3>,
        "readUnitsPercent" : "90,90,90",
        "requestTimeoutMs" : "5000"
    },
    "objectstore" : {
        "type" : "object_storage_oci",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <objectstorage-user-credentials>,
        "bucket" : <bucket-name-objectstorage>,
        "compression" : "snappy"
    },
    "database": {
        "type" : "database_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <adw-user-credentials>,
        "databaseName" : <database-name>,
        "databaseUser" : "ADMIN",
        "databaseWallet" : <path-where-wallet-unzipped>
    } 
   "abortOnError" : false
}

구성은 nosqlstore, 객체 저장소 및 데이터베이스의 세 섹션으로 구분됩니다. 이 섹션은 유틸리티가 각 클라우드 서비스(NoSQL Cloud Service, Oracle ObjectStorage 및 Oracle Autonomous Data Warehouse)와 상호 작용하는 방식을 지정하는 데 사용되는 항목입니다.

세 섹션 모두에서 공통되는 몇 가지 매개변수가 있습니다.

테이블 - 모든 섹션에 대한 공통 매개변수

매개변수 이름 매개변수 세부정보
type 현재 이 매개변수는 nosqldb_cloud(nosqlstore 섹션), object_storage_oci(객체 저장소 섹션) 및 database_cloud(데이터베이스 섹션)의 세 가지 값 중 하나를 사용할 수 있습니다.
endpoint 이 항목의 값은 연관된 리소스가 있는 영역으로 설정되어야 합니다. 이 항목에 대해 지정된 값은 리소스에 대한 영역의 API 끝점 또는 영역 식별자일 수 있습니다. 예를 들어, 각 리소스가 미국 동부(애슈번) 지역에 있는 경우 각 섹션의 끝점 항목은 해당 지역의 식별자("US-ashburn-1") 또는 해당 지역의 API 끝점을 사용하여 원하는 서비스에 지정할 수 있습니다.

표 - 구성 파일의 매개변수

매개변수 이름입니다 지정된 섹션 섹션 세부정보
useInstancePrincipal

nosqlstore(선택사항)

objectstore(선택사항)

다음 조건이 충족되는 경우 useInstancePrincipal 항목을 부울 값 true로 지정할 수 있습니다.
  • 유틸리티가 Oracle Cloud 컴퓨트 인스턴스에서 실행됩니다.
  • 구성 중인 섹션은 데이터베이스 섹션이 아닙니다
  • 컴퓨트 인스턴스는 인스턴스 주체로서 구성 중인 섹션에서 참조되는 리소스에 대한 작업을 수행할 수 있는 권한이 부여됩니다.
  • 자격 증명 항목이 지정되지 않음
useInstancePrincipal 항목에 대해 true가 지정되고 인증서 항목도 지정된 경우 인증서 항목이 우선하며 해당 항목의 값에 참조된 사용자 인증서가 연관된 리소스와 상호 작용하는 데 사용됩니다.

주:

ADW에 호스트된 Autonomous Database에는 사용자 인증서가 필요하므로 데이터베이스 섹션에서 사용자 인증서를 지정해야 합니다.
구획

nosqlstore(선택사항)

objectstore(선택사항)

  • useInstancePrincipal 항목에 대해 true가 지정된 경우 해당 리소스를 포함하는 구획의 OCID도 지정해야 합니다.
  • useInstancePrincipal 항목에 대해 false가 지정되거나 인증서 항목이 지정된 경우 구획 항목은 선택사항입니다. 단, 인증서 항목이 참조하는 파일에 지정해야 합니다.
인증서

nosqlstore(선택사항)

objectstore(선택사항)

데이터베이스(필수)

모든 상황에서 데이터베이스 섹션에 인증서 항목이 필요합니다. 다음 상황 중 하나 이상에서 nosqlstore 및 objectstore 섹션에 필요합니다.
  • Either the utility will be executed from outside the Oracle Cloud, or it will be executed from an Oracle Cloud Compute Instance that is not an Instance Principal
  • useInstancePrincipal 항목이 지정되지 않았거나 false로 설정되었습니다.

이 항목에 대해 지정된 값은 연관된 리소스와 안전하게 상호 작용하는 데 사용할 수 있는 사용자 자격 증명을 지정하는 로컬 파일 시스템의 파일을 참조해야 합니다.

credentialsProfile

nosqlstore(선택사항)

objectstore(선택사항)

database(선택사항)

credentialsProfile 항목은 각 섹션에서 선택 사항이며, 지정된 경우에도 해당하는 자격 증명 항목도 지정된 경우에만 적용됩니다.

테이블 nosqlstore(필수)

테이블 항목이 필요하며 nosqlstore 섹션에서 지정해야 합니다. 이 항목의 값은 콤마로 구분된 이름 목록으로 구성된 문자열입니다. 여기서 각 이름은 콘텐츠를 검색하여 Autonomous Data Warehouse로 복사해야 하는 NoSQL Database Cloud Service의 테이블 이름을 참조합니다.

readUnitsPercent nosqlstore(선택사항)

readUnitsPercent 항목은 선택 사항이며 nosqlstore 섹션에만 적용할 수 있습니다. 이 항목의 값은 쉼표로 구분된 정수 목록으로 구성된 문자열로, 1에서 100 사이로 해당 테이블에서 데이터를 검색할 때 사용할 수 있는 읽기 단위의 백분율을 나타냅니다.

이 항목을 사용하면 테이블 항목에서 참조되는 각 테이블에 대해 서로 다른 읽기 단위 백분율을 지정할 수 있습니다. 여기서 목록의 첫번째 백분율은 테이블 리스트의 첫번째 테이블에 해당하고, 두번째 백분율은 두번째 테이블에 해당합니다. 이 목록의 백분율 수가 테이블 리스트의 테이블 수와 같을 필요는 없습니다. 기본값 90%는 이 목록에 해당하는 백분율이 없는 테이블 목록의 테이블에 지정됩니다.

예를 들어, 테이블 항목에 네 개의 테이블 이름이 지정되었지만 readUnitsPercent 항목이 "50,80" 값으로 설정된 경우 이 경우 첫번째 테이블의 데이터는 사용 가능한 읽기 단위의 50%를 사용하여 검색되지만 읽기 단위의 80%는 두번째 테이블에서 데이터를 검색할 때 사용됩니다. 마지막으로 나머지 두 테이블의 경우 각 테이블에서 데이터를 검색할 때 읽기 단위의 90%(기본값)가 사용됩니다.

requestTimeoutMs nosqlstore(선택사항)

requestTimeoutMs 항목은 선택 사항이며 nosqlstore 섹션에만 적용할 수 있습니다. 이 항목의 값은 쉼표로 구분된 양수 정수 목록으로 구성된 문자열입니다. 여기서 각 정수는 해당 테이블에 대해 각 데이터 검색 요청이 완료될 때까지 허용되는 밀리초 수를 나타냅니다.

이 항목을 사용하면 테이블 항목에서 참조되는 각 테이블에 대해 서로 다른 시간 초과 값을 지정할 수 있습니다. 이 항목을 지정하지 않거나 이 항목이 테이블의 하위 집합에 대해서만 시간 초과를 지정하는 경우 기본값 5000이 나머지 테이블에 지정됩니다.

버킷 objectstore(필수) 버킷 항목이 필요하며 객체 저장소 섹션에서 지정해야 합니다. 이 항목의 값은 유틸리티가 NoSQL 테이블에서 검색된 데이터를 복사하는 OCI Object Storage 버킷의 이름을 나타내는 문자열입니다.
압축 objectstore(선택사항)
압축 항목은 선택 사항이며 objectstore 섹션에만 적용할 수 있습니다. 이 항목에 대해 지정된 값은 nosqlstore에 지정된 테이블에서 데이터를 검색하는 방법을 나타내는 문자열입니다. 설정하면 객체 스토리지에 복사할 때 테이블 데이터가 압축됩니다. 이 항목에 대해 지정된 값은 다음 중 하나여야 합니다.
  • snappy - snappy 압축용
  • gzip - gzip 압축용
  • none - ObjectStorage에 복사된 테이블 데이터를 압축하지 않습니다.

주:

압축 항목을 지정하지 않으면 snappy 압축이 수행됩니다.
databaseName 데이터베이스(필수) dabaseName 항목은 필수이며 데이터베이스 섹션에서 지정해야 합니다. 이 항목은 값이 Oracle Autonomous Data Warehouse Cloud Service에서 생성된 데이터베이스의 이름인 문자열입니다.
databaseUser database(선택사항)

databaseUser 항목은 선택 사항이며 데이터베이스 섹션에서 지정해야 합니다. 이 항목은 값이 dabaseName 항목에 지정된 Autonomous Database의 사용자 계정 이름인 문자열입니다. 이 항목을 지정하지 않으면 명령행에 값을 제공하라는 메시지가 나타납니다.

databaseWallet 데이터베이스(필수) databaseWallet 항목은 필수이며 데이터베이스 섹션에서 지정해야 합니다. 이 항목은 값이 구성 파일의 databaseUser 항목에 지정된 Autonomous Database 사용자 계정에서 다운로드한 Oracle Wallet의 내용을 포함하는 디렉토리의 파일 시스템 경로인 문자열입니다.
abortOnError 선택사항 오류 발생 시 수행할 작업을 지정합니다. 기본값은 true입니다.

주:

시스템 등록 정보를 section.entry 형식(예: -Dnosqlstore.table=tableName1,tableName3)으로 설정하여 구성 파일의 각 항목을 명령줄에서 대체할 수 있습니다. 항목이 섹션 내에 없는 경우 해당 속성에 사용할 이름은 단순히 항목 자체의 이름입니다(예: -DabortOnError=false.). 이 기능은 정기적으로 유틸리티를 실행하는 스크립트를 테스트하거나 작성할 때 유용할 수 있습니다.

인증서 파일에 구성 정보 지정:

Oracle Cloud Infrastructure에는 구성 파일에 지정할 수 있는 사용자 인증서, 테넌시 OCID 등과 같은 기본 구성 정보가 필요합니다. 이 구성 파일의 기본 위치는 ~/.oci입니다. 이 구성 파일에 여러 사용자 자격 증명 세트를 지정할 수 있습니다.

다음은 샘플 인증서 파일입니다.
[DEFAULT]
user=<ocid.of.default.user>
fingerprint=<fingerprint.of.default.user>
key_file=<path.to.default.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.default.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.default.compartment>

[nosqldb-user-credentials]
user=<ocid.of.nosqldb.user>
fingerprint=<fingerprint.of.nosqldb.user>
key_file=<path.to.nosqldb.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.nosqldb.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.nosqldb.compartment>

[objectstorage-user-credentials]
user=<ocid.of.objectstorage.user>
fingerprint=<fingerprint.of.objectstorage.user>
key_file=<path.to.objectstorage.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.objectstorage.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.objectstorage.compartment>

[adw-user-credentials]
user=<ocid.of.adw.user>
fingerprint=<fingerprint.of.adw.user>
key_file=<path.to.adw.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.adw.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.adw.compartment>
dbmsOcid=<ocid.of.autonomous.database.in.adw>
dbmsCredentialName=<OCI$RESOURCE_PRINCIPAL or NOSQLADWDB_OBJ_STORE_CREDENTIAL>

주:

위의 구성 파일에는 nosql-db-user, objectstorage-user 및 adw-user에 대한 세 가지 개별 항목이 있습니다. 필수는 아니며 DEFAULT 프로파일이 하나만 있는 구성 파일이 존재할 수 있습니다. 그러나 DEFAULT 프로파일에서 모든 파라미터를 결합하는 대신 별도의 프로파일을 갖는 것이 좋습니다.

테이블 - 인증서 파일의 매개변수

매개변수 이름 매개변수 세부정보
user 사용자의 OCID
지문 기본 사용자에 대해 더 긴 공개 키를 식별하는 데 사용되는 짧은 바이트 순서입니다.
키 파일 기본 사용자의 개인 키를 포함하는 파일의 경로/파일 이름
테니스 테러리즘
영역 영역의 끝점
구획 기본 사용자의 구획 이름 또는 OCID
dbmsOcid Autonomous Database의 OCID
dbmsCredentialName

ADW 데이터베이스가 오브젝트 스토리지로 인증하는 데 사용할 인증서의 이름입니다. OCI$RESOURCE_PRINCIPAL(리소스 주체 인증을 사용하도록 선택한 경우) 또는 사용자나 시스템 관리자(예: NOSQLADWDB_OBJ_STORE_CREDENTIAL)가 DBMS_CLOUD.CREATE_CREDENTIAL 프로시저를 실행할 때 생성되는 AUTH_TOKEN 인증서의 이름입니다.

도구 실행

필요한 Oracle Cloud 서비스(NoSQL 데이터베이스, 오브젝트 스토리지 및 Autonomous Data Warehouse) 사용에 대한 모든 요구사항이 완료되고 적합한 구성 파일이 생성된 후 명령행에 명령을 입력하면 Oracle NoSQL Database Analytics Integrator를 실행할 수 있습니다.
  • 설치 디렉토리 (/home/opc/nosqlanalytics-<version>) 아래의 nosqlanalytics 디렉토리로 이동합니다.
    cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
  • 다음 명령을 사용하여 유틸리티를 호출합니다. 구성 파일 oci-nosqlanalytics-config.json는 홈 디렉토리 내의 .oci 디렉토리 아래에 있습니다.
    java -Djava.util.logging.config.file=./src/main/resources/logging/java-util-logging.properties
    -Dlog4j.configurationFile=file:./src/main/resources/logging/log4j2-analytics.properties
    -jar ./lib/nosqlanalytics-1.0.1.jar
    -config ~/.oci/oci-nosqlanalytics-config.json

주:

실행 중 사용되는 로거를 구성하는 시스템 등록 정보는 선택 사항입니다. 이러한 시스템 등록 정보를 지정하지 않으면 유틸리티가 로깅 출력을 생성하지 않습니다.

로깅

Oracle NoSQL Database Analytics Integrator는 여러 타사 라이브러리에서 소프트웨어를 실행합니다. 여기서 각 라이브러리는 네임스페이스가 서로 다른 고유한 로거 집합을 정의합니다. 편의상 Oracle NoSQL Database Analytics Integrator는 릴리스의 일부로 두 개의 로깅 구성 파일을 제공합니다. 하나는 java.util.logging를 기반으로 로깅 방식을 구성하고 다른 하나는 Log4j2를 기반으로 로거를 구성합니다.

주:

기본적으로 유틸리티와 함께 제공되는 로거 구성 파일은 유틸리티가 실행될 때 출력을 최소화하도록 설계되었습니다. 그러나 유틸리티가 사용하는 다양한 구성 요소의 상세 정보 출력을 보려면 분석할 동작이 있는 특정 로거의 로깅 레벨을 높여야 합니다.