콘솔을 사용하여 Oracle NoSQL Database Cloud Service에서 테이블 생성

콘솔에서 Oracle NoSQL Database Cloud Service 테이블 및 인덱스를 생성하고 관리하는 방법을 알아봅니다.

이 문서에는 다음 항목이 있습니다.

구획 생성

When you sign up for Oracle Cloud Infrastructure, Oracle creates your tenancy with a root compartment that holds all your cloud resources. 그런 후 테넌시(루트 구획) 내에서 추가적인 구획을 생성하고, 각 구획의 리소스에 대한 액세스를 제어하기 위해 해당 정책을 생성할 수 있습니다. Oracle NoSQL Database Cloud Service 테이블을 생성하기 전에 Oracle은 테이블이 속할 구획을 설정할 것을 권장합니다.

Oracle Cloud Infrastructure Identity and Access Management(IAM)에서 구획을 생성합니다. Oracle Cloud Infrastructure 설명서테넌시 설정구획 관리를 참조하십시오.

싱글톤 테이블 생성

NoSQL 콘솔에서 새 Oracle NoSQL Database Cloud Service 테이블을 생성할 수 있습니다.

NoSQL 콘솔을 사용하면 Oracle NoSQL Database Cloud Service 테이블을 두 가지 모드로 생성할 수 있습니다.
  1. 단순 입력 모드: 이 모드를 사용하여 DDL 문을 작성하지 않고 NoSQL Database Cloud Service 테이블을 선언적으로 생성할 수 있습니다.
  2. 고급 DDL 입력 모드: DDL 문을 사용하여 이 모드를 사용하여 NoSQL Database Cloud Service 테이블을 생성할 수 있습니다.

싱글톤 테이블 생성: 단순 입력 모드

단순 입력 테이블 생성 모드를 사용하여 NoSQL 콘솔에서 테이블을 생성하는 방법을 알아봅니다.

테이블을 생성합니다:
  1. 인프라 콘솔에서 NoSQL 콘솔에 액세스합니다. 인프라 콘솔에서 서비스 액세스를 참조하십시오.
  2. 테이블 생성을 누릅니다.
  3. [테이블 생성] 대화상자에서 테이블 생성 모드에 대해 단순 입력을 선택합니다.
  4. 예약된 용량에서 항상 무료 구성을 사용으로 설정하거나 용량 모드를 구성할 수 있습니다. 항상 무료 구성은 현재 피닉스 지역에서만 사용할 수 있습니다.
    • 항상 무료 구성(피닉스 영역에서만 사용 가능):

      토글 단추를 사용으로 설정하여 항상 무료 NoSQL 테이블을 생성합니다. 토글 단추를 사용 안함으로 설정하면 일반 NoSQL 테이블이 생성됩니다. 테넌시에 최대 세 개의 항상 무료 NoSQL 테이블을 생성할 수 있습니다. 테넌시에 항상 무료 NoSQL 테이블이 세 개 있는 경우 항상 무료 SQL 테이블을 생성하는 토글 단추가 사용 안함으로 설정됩니다.

      토글 버튼을 사용으로 설정하여 항상 무료 NoSQL 테이블을 만들 경우 읽기 용량, 쓰기 용량 및 디스크 스토리지 필드에 기본값이 지정됩니다. Capacity 모드가 Provisioned Capacity가 됩니다. 이러한 값은 변경할 수 없습니다.


      일반 테이블을 생성하려면 토글 단추를 사용 안함으로 설정합니다. 테이블에 적합한 용량 값을 입력할 수 있습니다.
      • 읽기 용량(ReadUnits): 읽기 단위 수를 입력합니다. 읽기 단위에 대해 알아보려면 Estimating Capacity을 참조하십시오.
      • 쓰기 용량(WriteUnits): 쓰기 단위 수를 입력합니다. 쓰기 단위에 대해 알아보려면 Estimating Capacity를 참조하십시오.
      • 디스크 저장 영역(GB): 테이블에서 사용할 디스크 공간(GB)을 지정합니다. 스토리지 용량에 대해 알아보려면 Estimating Capacity을 참조하십시오.


    • 용량 모드

      용량 모드에 대한 옵션을 프로비전된 용량 또는 On Demand 용량으로 지정할 수 있습니다. 프로비저닝된 용량 및 On Demand 용량 모드는 함께 사용할 수 없는 옵션입니다. 테이블에 대해 On Demand 용량을 사용으로 설정하는 경우 테이블의 읽기/쓰기 용량을 지정할 필요가 없습니다. 프로비저닝된 사용량이 아닌 실제 읽기 및 쓰기 단위 사용량에 대해 요금이 부과됩니다.

      다음 조건에 해당하는 경우 테이블에 대해 On Demand 용량을 사용으로 설정하는 것이 좋습니다.
      1. 알 수 없는 작업 로드로 새 테이블을 생성합니다.
      2. 예측할 수 없는 애플리케이션 트래픽이 있습니다.
      3. 당신은 당신이 사용하는 것에 대해서만 지불하는 것을 선호합니다.
      테이블에 대해 On Demand 용량을 사용으로 설정하는 제한 사항:
      1. On Demand 용량은 테이블의 용량을 5,000번의 쓰기 및 10,000번의 읽기로 제한합니다.
      2. 테넌트당 On Demand 용량의 테이블 수는 3개로 제한됩니다.
      3. On Demand 용량 테이블 단위에 대해 프로비저닝된 테이블 단위보다 더 많은 비용을 지불합니다.


      On Demand 용량을 선택하면 항상 무료 구성이 사용 안함으로 설정됩니다. 읽기 용량 및 쓰기 용량 입력 상자는 읽기 전용이 되며 On Demand 용량 텍스트를 표시합니다. On Demand 용량 테이블에는 읽기 및 쓰기 용량 열에 On Demand 용량이 표시됩니다. 용량 모드가 On Demand 용량인 경우 항상 무료 제어가 사용 안함으로 설정됩니다.


  5. 이름 필드에 테넌시 내에서 고유한 테이블 이름을 입력합니다.
    테이블 이름은 Oracle NoSQL Database Cloud Service 이름 지정 규칙을 따라야 합니다. Oracle NoSQL Database Cloud Service 제한을 참조하십시오.
  6. 기본 키 열 섹션에서 기본 키 세부정보를 입력합니다.
    • 열 이름: 테이블의 기본 키에 대한 열 이름을 입력합니다. 열 이름 지정 요구사항에 대해 알아보려면 Oracle NoSQL Database Cloud Service 제한을 참조하십시오.
    • 유형: 기본 키 열에 대한 데이터 유형을 선택합니다.
    • 정밀도:TIMESTAMP 입력 열에만 적용할 수 있습니다. 시간 기록 값의 전체 자릿수는 0에서 9 사이의 소수 표시 초입니다. 예를 들어, 자릿수가 0이면 소수 표시 초가 저장되지 않고, 3은 시간 기록이 밀리초를 저장하고, 9는 나노초의 자릿수를 의미합니다. 0은 최소 자릿수이고, 9는 최대값입니다.
    • 샤드 키로 설정: 이 기본 키 열을 샤드 키로 설정하려면 이 옵션을 누릅니다. 샤드 키는 효율성을 높이기 위해 Oracle NoSQL Database Cloud Service 클러스터에 데이터를 배포하고 쉽게 참조하고 액세스할 수 있도록 샤드 키를 로컬에 공유하는 레코드를 포지셔닝하는 것입니다. 샤드 키를 공유하는 레코드는 동일한 물리적 위치에 저장되며 원자적이고 효율적으로 액세스할 수 있습니다.
    • + 다른 기본 키 열: 조합(다중 열) 기본 키를 생성하는 동안 열을 추가하려면 이 단추를 누릅니다.
    • 조합 primary key를 생성하는 동안 위쪽 및 아래쪽 화살표를 사용하여 열 시퀀스를 변경합니다.

  7. 섹션에서 기본이 아닌 열 세부정보를 입력합니다.

    • 열 이름: 열 이름을 입력합니다. Oracle NoSQL Database Cloud Service 제한에 설명된 열 이름 지정 요구사항을 준수해야 합니다.
    • 유형: 열에 대한 데이터 유형을 선택합니다.
    • 정밀도:TIMESTAMP 입력 열에만 적용할 수 있습니다. 시간 기록 값의 전체 자릿수는 0에서 9 사이의 소수 표시 초입니다. 예를 들어, 자릿수가 0이면 소수 표시 초가 저장되지 않고, 3은 시간 기록이 밀리초를 저장하고, 9는 나노초의 자릿수를 의미합니다. 0은 최소 자릿수이고, 9는 최대값입니다.
    • 크기: BINARY 입력 열에만 적용할 수 있습니다. 바이너리를 고정 바이너리로 만들 크기를 바이트 단위로 지정합니다.
    • 기본값: (선택 사항) 열의 기본값을 제공합니다.

      주:

      바이너리 및 JSON 데이터 유형 열에 대한 기본값을 지정할 수 없습니다.
    • 값이 널이 아님: 열에 항상 값이 포함되도록 지정하려면 이 옵션을 누릅니다.
    • + 다른 열: 열을 더 추가하려면 이 단추를 누릅니다.
    • 삭제 아이콘을 누르면 열이 삭제됩니다.
  8. (선택 사항) 고급 옵션을 지정하려면 고급 옵션 표시를 누르고 고급 세부정보를 입력합니다.
    • 테이블 보관 시간(일): (선택 사항) 테이블의 행에 대한 만료 기간(일 수)을 지정합니다. 일 수가 지나면 행이 자동으로 만료되어 더 이상 행을 사용할 수 없게 됩니다. 기본값은 0이며 만료 시간이 없음을 나타냅니다.

      주:

      TTL(테이블 보관 시간)을 업데이트해도 테이블에 있는 기존 데이터의 TTL 값이 변경되지 않습니다. 새 TTL 값은 이 값이 수정된 후 테이블에 추가된 행과 대체 행 특정 값이 제공되지 않은 행에만 적용됩니다.
    태그 섹션에서 다음을 입력합니다.
    • 태그 이름 공간: 선택 목록에서 태그 이름 공간을 선택합니다. 태그 이름 공간은 태그 키의 컨테이너와 같습니다. 대소문자를 구분하지 않으며 테넌시에서 고유해야 합니다.
    • 태그 키: 태그를 참조하는 데 사용할 이름을 입력합니다. 태그 키는 대소문자를 구분하지 않으며 네임스페이스 내에서 고유해야 합니다.
    • 값: 태그에 제공할 값을 입력합니다.
    • + 추가 태그: 더 많은 태그를 추가하려면 누릅니다.

  9. 테이블 생성을 누릅니다.
표가 만들어지고 NoSQL 콘솔에 나열됩니다.
현재 페이지에 대한 도움말을 보려면 페이지 상단에 있는 도움말 링크를 누르십시오.

싱글톤 테이블 생성: 고급 DDL 입력 모드

고급 DDL 입력 테이블 생성 모드를 사용하여 NoSQL 콘솔에서 테이블을 생성하는 방법을 알아봅니다.

테이블을 생성합니다:
  1. 인프라 콘솔에서 NoSQL 콘솔에 액세스합니다. 인프라 콘솔에서 서비스 액세스를 참조하십시오.
  2. 테이블 생성을 누릅니다.
  3. 테이블 생성 창에서 테이블 생성 모드에 대해 고급 DDL 입력을 선택합니다.
  4. 예약된 용량에서 항상 무료 구성을 사용으로 설정하거나 용량 모드를 구성할 수 있습니다.
    • 항상 무료 구성(피닉스 영역에서만 사용 가능):

      토글 단추를 사용으로 설정하여 항상 무료 NoSQL 테이블을 생성합니다. 토글 단추를 사용 안함으로 설정하면 일반 NoSQL 테이블이 생성됩니다. 테넌시에 최대 세 개의 항상 무료 NoSQL 테이블을 생성할 수 있습니다. 테넌시에 항상 무료 NoSQL 테이블이 세 개 있는 경우 항상 무료 SQL 테이블을 생성하는 토글 단추가 사용 안함으로 설정됩니다.

      토글 버튼을 사용으로 설정하여 항상 무료 NoSQL 테이블을 만들 경우 읽기 용량, 쓰기 용량 및 디스크 스토리지 필드에 기본값이 지정됩니다. Capacity 모드가 Provisioned Capacity가 됩니다. 이러한 값은 변경할 수 없습니다.


      일반 테이블을 생성하려면 토글 단추를 사용 안함으로 설정합니다. 테이블에 적합한 용량 값을 입력할 수 있습니다.
      • 읽기 용량(ReadUnits): 읽기 단위 수를 입력합니다. 읽기 단위에 대해 알아보려면 Estimating Capacity을 참조하십시오.
      • 쓰기 용량(WriteUnits): 쓰기 단위 수를 입력합니다. 쓰기 단위에 대해 알아보려면 Estimating Capacity를 참조하십시오.
      • 디스크 저장 영역(GB): 테이블에서 사용할 디스크 공간(GB)을 지정합니다. 스토리지 용량에 대해 알아보려면 Estimating Capacity을 참조하십시오.


    • 용량 모드

      용량 모드에 대한 옵션을 프로비전된 용량 또는 On Demand 용량으로 지정할 수 있습니다. 프로비저닝된 용량 및 On Demand 용량 모드는 함께 사용할 수 없는 옵션입니다. 테이블에 대해 On Demand 용량을 사용으로 설정하는 경우 테이블의 읽기/쓰기 용량을 지정할 필요가 없습니다. 프로비저닝된 사용량이 아닌 실제 읽기 및 쓰기 단위 사용량에 대해 요금이 부과됩니다.

      다음 조건에 해당하는 경우 테이블에 대해 On Demand 용량을 사용으로 설정하는 것이 좋습니다.
      1. 알 수 없는 작업 로드로 새 테이블을 생성합니다.
      2. 예측할 수 없는 애플리케이션 트래픽이 있습니다.
      3. 당신은 당신이 사용하는 것에 대해서만 지불하는 것을 선호합니다.
      테이블에 대해 On Demand 용량을 사용으로 설정하는 제한 사항:
      1. On Demand 용량은 테이블의 용량을 5,000번의 쓰기 및 10,000번의 읽기로 제한합니다.
      2. 테넌트당 On Demand 용량의 테이블 수는 3개로 제한됩니다.
      3. On Demand 용량 테이블 단위에 대해 프로비저닝된 테이블 단위보다 더 많은 비용을 지불합니다.


      On Demand 용량을 선택하면 항상 무료 구성이 사용 안함으로 설정됩니다. 읽기 용량 및 쓰기 용량 입력 상자는 읽기 전용이 되며 On Demand 용량 텍스트를 표시합니다. On Demand 용량 테이블에는 읽기 및 쓰기 용량 열에 On Demand 용량이 표시됩니다. 용량 모드가 On Demand 용량인 경우 항상 무료 제어가 사용 안함으로 설정됩니다.


  5. DDL 입력 섹션에서 질의에 대한 테이블 생성 DDL 문을 입력합니다. 명령문이 불완전하거나 결함이 있다는 오류가 나타날 수 있습니다. OCI 콘솔에서 가능한 오류 및 오류 수정 방법에 대해 알아보려면 OCI 콘솔에서 SQL 문 오류 디버깅을 참조하십시오. 테이블 생성 명령문에 대한 예는 개발자 설명서를 참조하십시오.
  6. (선택 사항) 고급 옵션을 지정하려면 고급 옵션 표시를 누르고 고급 세부정보를 입력합니다.
    • 태그 이름 공간: 선택 목록에서 태그 이름 공간을 선택합니다. 태그 이름 공간은 태그 키의 컨테이너와 같습니다. 대소문자를 구분하지 않으며 테넌시에서 고유해야 합니다.
    • 태그 키: 태그를 참조하는 데 사용할 이름을 입력합니다. 태그 키는 대소문자를 구분하지 않으며 네임스페이스 내에서 고유해야 합니다.
    • 값: 태그에 제공할 값을 입력합니다.
    • + 추가 태그: 더 많은 태그를 추가하려면 누릅니다.

  7. 테이블 생성을 누릅니다.
표가 만들어지고 NoSQL 콘솔에 나열됩니다.
현재 페이지에 대한 도움말을 보려면 페이지 상단에 있는 도움말 링크를 누르십시오.

하위 테이블 생성

Oracle NoSQL Database를 사용하면 계층 구조(상위-하위 테이블)로 테이블을 생성할 수 있습니다.

테이블 계층

create table 문을 사용하여 다른 테이블의 하위 테이블로 테이블을 생성하면 새 테이블의 상위 테이블이 됩니다. 이 작업은 하위 테이블에 대한 조합 이름(name_path)을 사용하여 수행됩니다. 조합 이름은 점으로 구분된 식별자의 숫자 N(N > 1)으로 구성됩니다. 마지막 식별자는 하위 테이블의 로컬 이름이고 첫번째 N-1 식별자는 상위 테이블의 이름입니다.
   
           A   
         /   \ 
      A.B    A.G  
       /  
    A.B.C   
     /  
   A.B.C.D

최상위 테이블은 A입니다. 하위 테이블 B는 조합 이름 A.B를 가져옵니다. 다음 레벨의 하위 테이블 C는 조합 이름 A.B.C를 가져옵니다.

하위 테이블의 속성:

  • 하위 테이블을 생성하는 동안에는 읽기 용량, 쓰기 용량 또는 디스크 스토리지 제한을 지정할 수 없습니다. 하위 테이블은 상위 테이블의 해당 값을 공유합니다.
  • 하위 테이블은 테넌시의 총 테이블 수에 대해 계산됩니다.
  • 상위 테이블과 하위 테이블은 항상 동일한 구획에 있습니다.
  • Metric 정보는 상위 레벨에서 수집 및 집계됩니다. 하위 테이블 레벨에서 표시되는 측정항목이 없습니다.
  • 하위 테이블에는 상위 테이블과 별개로 고유한 태그가 있습니다.
  • 또한 하위 테이블은 상위 테이블의 용량 가격 모델을 상속합니다. 예를 들어 상위 테이블이 On Demand 용량으로 구성된 경우 동일한 용량 가격 모델로 하위 테이블을 구성할 수도 있습니다.

상위-하위 테이블의 트랜잭션

상위 테이블과 하위 테이블은 동일한 샤드 키를 공유합니다. 하위 테이블을 사용하면 다음 두 가지 간단한 단계를 통해 여러 객체에 걸쳐 ACID 트랜잭션을 수행할 수 있습니다.
  • 테이블을 다른 테이블의 하위로 선언합니다.
  • writeMutliple API를 사용하여 상위 및 하위 테이블에 대한 작업을 추가합니다.
하위 테이블이 없는 경우 여러 객체에서 ACID 트랜잭션을 달성하는 것은 지루한 절차입니다. 하위 테이블이 없으면 다음을 수행합니다.
  • 트랜잭션에 포함할 모든 객체에 대한 샤드 키 값을 찾습니다.
  • 모든 객체의 샤드 키가 동일한지 확인하십시오.
  • writeMutliple API를 사용하여 모든 객체를 모음에 추가합니다.

하위 테이블을 사용하여 여러 객체에서 ACID 트랜잭션을 쉽게 수행할 수 있습니다.

하위 테이블의 권한 부여:

테이블을 소유하지 않고 이 테이블에서 읽거나 삭제하거나 이 테이블에 삽입하려는 경우 다음 두 가지 조건이 충족되어야 합니다.
  • 하위 테이블에 대한 특정 권한(READ/INSERT/DELETE)이 있습니다.
  • 계층에 있는 특정 하위 테이블의 상위 테이블에 대해 동일한 권한 또는 최소한 읽기 권한이 있습니다.

자세한 내용은 권한 부여를 위한 IAM 정책을 참조하십시오.

예를 들어, 소유하지 않은 하위 테이블 myTable.child1에 데이터를 삽입하려면 하위 테이블에 대한 INSERT 권한과 myTable에 대한 READ 및/또는 INSERT 권한이 있어야 합니다. 하위 테이블에 권한을 부여하는 것은 상위 테이블에 권한을 부여하는 것과 별개입니다. 즉, 상위 테이블에 동일한 권한을 부여하지 않고 하위 테이블에 특정 권한을 부여할 수 있습니다. 모든 상위/하위 조인 query에는 query에 사용된 모든 테이블에 대한 관련 권한이 필요합니다. 자세한 내용은 상위-하위 테이블에 왼쪽 포괄 조인 사용을 참조하십시오.

하위 테이블 생성

  • 상위 테이블을 눌러 세부정보를 표시합니다. 상위에 대해 이미 있는 하위 테이블 목록이 표시됩니다.
  • 왼쪽 탐색 메뉴의 리소스 아래에서 하위 테이블을 누릅니다.

  • 단순 입력 메소드 또는 고급 DDL 입력 메소드를 선택하여 하위 테이블을 생성할 수 있습니다.
  • 하위 테이블의 이름을 지정하십시오. 자동으로 상위 테이블 이름 앞에 점이 붙습니다. 열 및 기본 키 열 목록을 지정합니다.



  • 하위 테이블이 최상위 레벨 상위 테이블에서 해당 샤드 키를 상속하므로 샤드 키로 설정 체크 박스는 하위 테이블을 생성하는 동안 표시되지 않습니다.

주:

하위 테이블이 최상위 레벨 테이블에서 이러한 제한을 상속하므로 Read Capacity, Write Capacity 및 Disk Storage 필드가 지정되지 않았습니다. 최상위 테이블에 대해 설정된 제한은 하위 테이블에 자동으로 적용됩니다.

하위 테이블의 세부 정보 보기

하위 테이블이 생성된 후 하위 테이블의 세부 정보를 볼 수 있습니다.