테이블은 데이터의 구조를 정의합니다.

새 데이터를 테이블로 로드하거나 기존 위치의 데이터를 참조할 수 있습니다. 테이블 권한을 생성하여 테이블에 대해 상세한 액세스 제어 권한을 정의할 수 있습니다.

테이블은 External이거나 관리할 수 있습니다.

외부 테이블

외부 테이블은 Oracle AI Data Platform Workbench에서 관리하지 않는 위치에 저장된 데이터의 구조를 정의합니다. AI 데이터 플랫폼 워크벤치에서 외부 테이블을 생성하는 경우 메타데이터 수명 주기는 AI 데이터 플랫폼 워크벤치에서 관리됩니다. External Table을 삭제하면 테이블 정의만 삭제됩니다. 외부 테이블에서 참조하는 데이터가 삭제되지 않습니다.

External Table을 생성하는 데 필요한 다음 IAM 정책이 유저에게 있는지 확인합니다.

allow group <GroupName> to read buckets in compartment id <external-data-CompartmentId>
allow group <GroupName> to inspect objects in compartment id <external-data-CompartmentId>

외부 테이블에 대한 추가 IAM 정책이 필요합니다. 자세한 내용은 Oracle AI Data Platform Workbench에 대한 IAM 정책을 참조하십시오.

관리 테이블

관리형 테이블은 AI 데이터 플랫폼에 저장되며 AI 데이터 플랫폼 워크벤치 사용자만 액세스할 수 있는 데이터의 구조를 정의합니다.

관리 테이블을 삭제하면 테이블 정의 및 테이블 데이터가 삭제됩니다.

지원되는 테이블 형식

형식 설명 사용
콤마로 구분된 값(CSV) 데이터는 데이터를 구조화하기 위해 지정된 행 기반 파일 형식의 텍스트 파일로 저장됩니다. 일반적으로 파일의 첫번째 행은 데이터의 열 이름을 포함하는 머리글 행입니다. 시스템 간에 표 형식 데이터를 교환하는 데 사용됩니다. 파일의 각 행은 테이블의 행입니다.
JSON(JavaScript 객체 표기법) 데이터는 JavaScript 객체 구문을 기반으로 구조화된 데이터를 나타내는 표준 텍스트 기반 형식으로 저장됩니다. JSON은 객체 또는 계층 구조 목록을 지원합니다. 스트림 애플리케이션에서 사용됩니다. JSON은 단일 문서에서 복잡한 관계로 관련 데이터의 저장을 단순화하고 관계형 데이터 모델로의 혼란스러운 목록 변환을 방지합니다. JSON은 분할할 수 없습니다.
Avro 데이터는 행 기반 바이너리 형식으로 저장되고 스키마는 파일 크기를 최소화하고 효율성을 극대화하기 위해 JSON 형식으로 저장됩니다. Avro는 추가, 누락 및 변경된 필드를 관리하여 스키마 진화에 대한 안정적인 지원을 제공합니다. 이것은 오래된 소프트웨어가 새로운 데이터를 읽을 수있게하고, 새로운 소프트웨어는 오래된 데이터를 읽을 수있게합니다. 데이터 직렬화 시스템이라고도 합니다. avro 파일이 분할 가능하고 압축 가능하므로 데이터 저장에 사용됩니다. 직렬화된 행 기반 스토리지는 AI 데이터 플랫폼에 데이터를 삽입하는 등 많은 쓰기 트랜잭션에 이상적입니다. 또한 Avro는 고속 쓰기 작업 중에 스키마 변경이 중요한 경우에도 적합합니다.
Parquet 데이터는 열 형식 데이터 형식으로 저장되며 압축 및 분할이 매우 가능합니다. Parquet는 WORM(Write Once Read Many) 패러다임에 최적화되어 있습니다. 쓰기 속도는 느리지만 읽기 속도가 매우 빠릅니다. 특히 열의 부분 집합에만 액세스할 경우 더욱 그렇습니다. 압축 알고리즘이 열 형식 데이터 형식에서 더 잘 작동하므로 Big Data 문제를 해결하는 데 사용됩니다. 이미지, 비디오, 문서 및 구조화된 데이터 테이블과 같은 다양한 형식으로 빅 데이터를 저장할 수 있습니다. Parquet는 데이터 부분을 읽을 때 많은 워크로드에 적합합니다. 예를 들어, 데이터 집합에 열이 많지만 열의 하위 집합에만 액세스하려는 경우 Spark에 의존하거나 여러 서비스가 오브젝트 스토리지에 저장된 동일한 데이터에 액세스하기를 원할 때 이상적입니다.
최적화된 행 열 형식(ORC) 데이터는 열 형식으로 단일 파일의 행 모음에 저장됩니다. 클러스터 전체에서 행 모음의 병렬 처리에 사용됩니다. 읽기 트랜잭션이 쓰기 트랜잭션보다 많거나 압축 우선 순위가 높은 경우에 이상적입니다.
델타 데이터는 ACID 트랜잭션 및 확장 가능한 메타데이터 처리를 위한 JSON 파일 기반 트랜잭션 로그를 통해 Parquet 데이터 파일을 확장하는 열 형식으로 저장됩니다. 트랜잭션 지원에 사용됩니다.

지원되는 데이터 유형

데이터 유형 설명
바이트 유형 1바이트 부호 있는 정수를 나타냅니다. 숫자 범위는 -128에서 127 사이입니다.
짧은 유형 2바이트 부호 있는 정수를 나타냅니다. 숫자 범위는 -32768에서 32767 사이입니다.
정수 유형 4바이트 부호 있는 정수를 나타냅니다. 숫자 범위는 -2147483648에서 2147483647 사이입니다.
긴 유형 8바이트 부호 있는 정수를 나타냅니다. 숫자 범위는 -9223372036854775808에서 9223372036854775807 사이입니다.
유동 유형 4바이트 단일 정밀도 부동 소수점 수를 나타냅니다.
이중 유형 8바이트 이중 정밀도 부동 소수점 수를 나타냅니다.
십진수 유형 임의의 전체 자릿수 부호 있는 소수 자릿수를 나타냅니다. java.math.BigDecimal에 의해 내부적으로 지원됩니다. BigDecimal은 임의의 소수점 이하 자릿수 배율이 조정되지 않은 값과 32비트 정수 배율로 구성됩니다.
문자열 유형 문자열 값을 나타냅니다.
VarcharType (길이) 길이 제한이 있는 StringType의 변형입니다. 입력 문자열이 길이 제한을 초과하면 데이터 쓰기가 실패합니다.
CharType(길이) 고정 길이인 VarcharType(길이)의 변형입니다. CharType(n) 유형의 읽기 열은 항상 n 길이의 문자열 값을 반환합니다. 특성 유형 열 비교는 짧은 값을 더 긴 길이로 채웁니다.
바이너리 유형 바이트 시퀀스 값을 나타냅니다.
부울 유형 부울 값을 나타냅니다.
일자 유형 시간대 없이 연도, 월 및 일 필드 값으로 구성된 값을 나타냅니다.
시간 기록 유형 로컬 시간대(TIMESTAMP_LTZ)가 포함된 시간기록입니다. 세션 로컬 시간대와 함께 연도, 월, 일, 시, 분 및 초 필드의 값으로 구성된 값을 나타냅니다. 시간 기록 값은 절대 시점을 나타냅니다.
시간기록NTZ 유형 시간대가 없는 시간 기록(TIMESTAMP_NTZ)입니다. 연도, 월, 일, 시, 분 및 초 필드의 값으로 구성된 값을 나타냅니다. 모든 작업은 시간대를 고려하지 않고 수행됩니다.
YearMonthIntervalType(startField, endField) [0..178956970] 범위의 연속된 MONTH 하위 세트, 연도[0..11] 및 연도[0..178956970] 내의 월로 구성된 연도-월 간격을 나타냅니다.
DayTimeIntervalType(startField, endField) [0..59.99999], MINUTE, minutes within hours [0..59], HOUR, hours within days [0..23] 및 DAY, days in the range [0..106751991]의 연속 부분 집합으로 구성된 일 시간 간격을 나타냅니다.
ArrayType(elementType, containsNull) 유형이 elementType인 요소 시퀀스로 구성된 값을 나타냅니다. containsNull은 ArrayType 값의 요소에 널 값이 있을 수 있는지 여부를 나타내는 데 사용됩니다.
MapType(keyType, valueType, valueContainsNull) 키-값 쌍 세트로 구성된 값을 나타냅니다. 키의 데이터 유형은 keyType으로 설명되고 값의 데이터 유형은 valueType으로 설명됩니다. MapType 값의 경우 키는 널 값을 가질 수 없습니다. valueContainsNull은 MapType 값의 값이 널 값을 가질 수 있는지 여부를 나타내는 데 사용됩니다.
구조 유형(필드) StructFields(필드) 시퀀스로 설명된 구조의 값을 나타냅니다.
StructField(이름, dataType, 널 가능) StructType의 필드를 나타냅니다. 필드의 이름은 이름으로 표시됩니다. 필드의 데이터 유형은 dataType으로 표시됩니다. 널 가능은 해당 필드의 값이 널 값을 가질 수 있는지 여부를 나타내는 데 사용됩니다.

제한사항

Oracle AI Data Platform의 표에는 다음과 같은 제한 사항이 적용됩니다.

  • 볼륨 내/온 데이터 파일이나 디렉토리에는 외부 테이블을 정의할 수 없습니다.
  • 다른 외부 테이블 또는 외부 볼륨에 이미 사용된 버킷 및/또는 해당 디렉토리에 외부 테이블을 정의할 수 없습니다.
  • 마스터 카탈로그에서 뷰를 보거나 나열할 수 없습니다.

스키마 전개

Oracle AI Data Platform Workbench의 스키마 변화를 통해 노트북에서 SQL을 사용하여 관리형 테이블을 업데이트하는 데 필요한 권한이 있는 사용자가 작업을 수행할 수 있습니다.

이 기능은 새 열, 제거된 열, 이름이 바뀐 열, 분할 영역 변경 또는 데이터 세트를 처음부터 다시 만들지 않고 테이블 이름을 바꾸도록 시간이 지남에 따라 테이블 정의가 변경되는 경우에 유용합니다. 지원되는 형식은 Parquet, Avro 및 Delta입니다.

지원되는 운영

관리 테이블에 대한 다음 스키마 전개 작업이 분석되었습니다.
  • 테이블 이름 바꾸기: 델타, 파케 및 아브로에서 지원됩니다.
  • 열 추가: 델타, 파케 및 아브로에서 지원됨
  • 열 삭제: 델타에 대해 지원되며 Parquet 및 Avro에는 지원되지 않습니다.
  • 열 변경 또는 이름 바꾸기: 델타에 대해 지원되며 Parquet 및 Avro에는 지원되지 않습니다.
  • 열 바꾸기: 델타에만 지원됩니다.
  • 파티션 추가: DDL을 통한 Parquet 및 Avro에 대해 지원되며, 델타의 경우 DDL을 통한 것이 아니라 데이터 삽입 중에 파티션 처리가 지원됩니다.
  • 파티션 삭제: Parquet 및 Avro에 대해 지원됨, Delta의 경우 직접 DDL이 아닌 데이터를 삭제하고 진공 상태로 실행하여 파티션이 제거됨
  • 데이터 유형 변경: Parquet 또는 Avro에는 지원되지 않습니다. 직접 DDL을 통한 Delta에는 지원되지 않으며 CTAS 또는 덮어쓰기 스키마 기반 임시해결책이 필요할 수 있습니다.

관리 테이블 생성

관리하는 스키마에 대한 테이블을 생성할 수 있습니다.

  1. 테이블을 생성할 스키마로 이동합니다.
  2. 테이블 탭을 선택합니다.
  3. 테이블 생성 아이콘 테이블 생성을 누릅니다.

    테이블 유형 관리가 선택된 테이블 트레이 생성

  4. 테이블 유형에 대해 관리됨을 선택합니다.
  5. 관리되는 테이블 형식에서 테이블의 형식을 선택합니다.
  6. 테이블 데이터가 있는 파일을 끌어 놓거나 눌러서 파일 위치를 찾습니다.
  7. 테이블에 대한 이름 및 설명을 제공하십시오.
  8. 선택 사항: 분할 영역을 추가하려면 분할 영역 키(선택 사항)를 확장합니다. 분할 영역 추가를 누르고 데이터 열을 선택하십시오.
  9. 선택 사항: 데이터 카탈로그의 메타데이터에 테이블 등록정보를 추가하려면 테이블 등록정보(선택 사항)를 확장합니다. 속성 추가를 누르고 속성 및 해당 값을 제공합니다.
  10. 생성을 누릅니다.

외부 테이블 생성

OCI Object Storage에서 데이터로 외부 테이블을 생성할 수 있습니다.

  1. 테이블을 생성할 스키마로 이동합니다.
  2. 테이블 탭을 선택합니다.
  3. 테이블 생성 아이콘 테이블 생성을 누릅니다.

    테이블 유형 외부가 선택된 상태로 테이블 페이지 열기 생성

  4. 테이블 유형에 대해 외부를 선택합니다.
  5. 데이터가 저장되는 OCI Object Storage에서 컴파트먼트, 버킷 및 폴더를 선택합니다. 선택할 수 있는 객체는 로그인한 사용자의 IAM 권한을 기반으로 합니다.
  6. 테이블에 대한 이름 및 설명을 제공하십시오.
  7. 선택 사항: 데이터 카탈로그의 메타데이터에 테이블 속성을 추가하려면 테이블 속성(선택 사항)을 확장합니다. 속성 추가를 누르고 속성 및 해당 값을 제공합니다.
  8. 생성을 누릅니다.

테이블 편집

관리하는 테이블의 세부 정보를 수정할 수 있습니다.

주:

Oracle AI Data Platform Workbench에서 만든 외부 카탈로그 테이블에 대한 편집은 원격 카탈로그로 푸시되지 않습니다.
  1. 스키마로 이동합니다.
  2. 테이블 탭을 선택합니다.
  3. 편집할 테이블 옆에 있는 작업 3 점 아이콘 작업을 누릅니다.
    • 이름 바꾸기를 눌러 테이블 이름을 변경합니다. 신규 이름을 입력한 후 입력을 누르십시오.
    • 테이블의 설명을 변경하려면 설명 편집을 누릅니다. 새 설명을 입력하고 저장을 누릅니다.

테이블 세부정보 보기

스키마의 테이블에 대한 세부 정보를 볼 수 있습니다.

  1. 스키마로 이동합니다. 테이블 탭을 누릅니다.
  2. 세부정보를 보려는 볼륨의 이름을 누릅니다. 볼륨 옆에 있는 작업 3 점 아이콘 작업을 누른 다음 보기를 누를 수도 있습니다.
  3. 세부정보 탭을 누릅니다.

테이블 삭제

관리하는 스키마에서 테이블을 삭제할 수 있습니다.

  1. 테이블을 삭제할 스키마로 이동합니다.
  2. 테이블 탭을 누릅니다.
  3. 삭제할 테이블 옆에 있는 작업 3 점 아이콘 작업을 누르고 삭제를 누릅니다.
  4. 삭제를 누릅니다.