View a markdown version of this page

데이터베이스 API - AWS Glue

데이터베이스 API

데이터베이스 API는 데이터베이스 데이터 형식을 설명하며, 데이터베이스를 생성, 삭제, 위치 지정, 업데이트 및 목록화하는 API를 포함합니다.

데이터 타입

데이터베이스 구조

Database 객체는 Hive 메타스토어 혹은 RDBMS에 있는 테이블의 논리적 그룹을 나타냅니다.

필드
  • Name – 필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.

  • Description – URI address multi-line string pattern과(와) 일치하는 2,048바이트 이하 길이의 설명 문자열입니다.

    데이터베이스에 대한 설명입니다.

  • LocationUri – URI address multi-line string pattern과(와) 일치하는 1~1,024바이트 길이의 URI(Uniform Resource Identifier)입니다.

    데이터베이스의 위치(예: HDFS 경로)입니다.

  • Parameters – 키-값 페어의 맵 배열입니다.

    각 키는 Single-line string pattern과(와) 일치하는 1~255 바이트 길이의 키 문자열입니다.

    각 값은 512000 바이트 이하 길이의 UTF-8 문자열입니다.

    이러한 키-값 쌍은 데이터베이스의 파라미터와 속성을 정의합니다.

  • CreateTime – 타임스탬프입니다.

    메타 데이터베이스가 카탈로그에 생성된 시간입니다.

  • CreateTableDefaultPermissions – PrincipalPermissions 객체의 배열입니다.

    보안 주체에 대한 테이블에서 기본 권한 세트를 생성합니다. AWS Lake Formation에서 사용됩니다. AWS Glue 작업의 일반적인 과정에서는 사용되지 않습니다.

  • TargetDatabase – DatabaseIdentifier 객체입니다.

    리소스 링크에 대한 대상 데이터베이스를 설명하는 DatabaseIdentifier 구조입니다.

  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    데이터베이스가 있는 데이터 카탈로그의 ID입니다.

  • FederatedDatabase – FederatedDatabase 객체입니다.

    AWS Glue Data Catalog 외부의 엔티티를 참조하는 FederatedDatabase 구조입니다.

DatabaseInput 구조

데이터베이스를 생성 및 업데이트할 때 사용되는 구조입니다.

필드
  • Name – 필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.

  • Description – URI address multi-line string pattern과(와) 일치하는 2,048바이트 이하 길이의 설명 문자열입니다.

    데이터베이스에 대한 설명입니다.

  • LocationUri – URI address multi-line string pattern과(와) 일치하는 1~1,024바이트 길이의 URI(Uniform Resource Identifier)입니다.

    데이터베이스의 위치(예: HDFS 경로)입니다.

  • Parameters – 키-값 페어의 맵 배열입니다.

    각 키는 Single-line string pattern과(와) 일치하는 1~255 바이트 길이의 키 문자열입니다.

    각 값은 512000 바이트 이하 길이의 UTF-8 문자열입니다.

    이러한 키-값 쌍은 데이터베이스의 파라미터와 속성을 정의합니다.

    이러한 키-값 쌍은 데이터베이스의 파라미터와 속성을 정의합니다.

  • CreateTableDefaultPermissions – PrincipalPermissions 객체의 배열입니다.

    보안 주체에 대한 테이블에서 기본 권한 세트를 생성합니다. AWS Lake Formation에서 사용됩니다. AWS Glue 작업의 일반적인 과정에서는 사용되지 않습니다.

  • TargetDatabase – DatabaseIdentifier 객체입니다.

    리소스 링크에 대한 대상 데이터베이스를 설명하는 DatabaseIdentifier 구조입니다.

  • FederatedDatabase – FederatedDatabase 객체입니다.

    AWS Glue Data Catalog 외부의 엔터티를 참조하는 FederatedDatabase 구조입니다.

PrincipalPermissions 구조

보안 주체에게 부여된 권한입니다.

필드
  • Principal – DataLakePrincipal 객체입니다.

    권한을 부여받는 보안 주체입니다.

  • Permissions – UTF-8 문자열의 배열입니다.

    보안 주체에게 부여되는 권한입니다.

DataLakePrincipal 구조

AWS Lake Formation 보안 주체입니다.

필드
  • DataLakePrincipalIdentifier – 1~255바이트 길이의 UTF-8 문자열입니다.

    AWS Lake Formation 보안 주체의 식별자입니다.

DatabaseIdentifier 구조

리소스 링크에 대한 대상 데이터베이스를 설명하는 구조입니다.

필드
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    데이터베이스가 있는 데이터 카탈로그의 ID입니다.

  • DatabaseName – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    카탈로그 데이터베이스의 이름입니다.

  • Region – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    대상 데이터베이스의 리전입니다.

FederatedDatabase 구조

AWS Glue Data Catalog 외부의 엔터티를 가리키는 데이터베이스입니다.

필드
  • Identifier – Single-line string pattern과(와) 일치하는 1~512바이트 길이의 UTF-8 문자열입니다.

    페더레이션된 데이터베이스의 고유 식별자입니다.

  • ConnectionName – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    외부 메타스토어에 대한 연결 이름입니다.

  • ConnectionType – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    JDBC, ODBC 또는 기타 지원되는 연결 프로토콜과 같은 페더레이션 데이터베이스 액세스에 사용되는 연결 유형입니다.

운영

CreateDatabase 작업(Python: create_database)

데이터 카탈로그에 새로운 데이터베이스를 생성합니다.

요청
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    데이터베이스를 생성할 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.

  • DatabaseInput – 필수(Required): DatabaseInput 객체입니다.

    데이터베이스의 메타데이터입니다.

  • Tags – 50개 이하의 페어로 구성된 키-값 페어의 맵 배열입니다.

    각 키는 길이가 1~128바이트인 UTF-8 문자열입니다.

    각 값은 256 바이트 이하 길이의 UTF-8 문자열입니다.

    데이터베이스에 할당하는 태그입니다.

응답
  • 무응답 파라미터.

오류
  • InvalidInputException

  • AlreadyExistsException

  • ResourceNumberLimitExceededException

  • InternalServiceException

  • OperationTimeoutException

  • GlueEncryptionException

  • ConcurrentModificationException

  • FederatedResourceAlreadyExistsException

  • FederationSourceException

  • FederationSourceRetryableException

UpdateDatabase 작업(Python: update_database)

데이터 카탈로그에서 기존 데이터베이스를 업데이트합니다.

요청
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    메타데이터 데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.

  • Name – 필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    카탈로그에서 업데이트할 데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.

  • DatabaseInput – 필수(Required): DatabaseInput 객체입니다.

    DatabaseInput 객체는 카탈로그에서 메타데이터 데이터베이스의 새로운 정의를 지정합니다.

응답
  • 무응답 파라미터.

오류
  • EntityNotFoundException

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • GlueEncryptionException

  • ConcurrentModificationException

  • FederationSourceException

  • FederationSourceRetryableException

  • AlreadyExistsException

DeleteDatabase 작업(Python: delete_database)

데이터 카탈로그에서 지정된 데이터베이스를 제거합니다.

참고

이 작업을 완료한 후에는 테이블(및 테이블에 속하는 모든 테이블 버전과 파티션)은 물론 삭제된 데이터베이스에 있는 사용자 정의 함수에 더 이상 액세스하지 못합니다. AWS Glue는 이러한 "분리된" 리소스를 서비스 재량에 따라 적시에 비동기로 삭제합니다

관련된 모든 리소스가 즉시 삭제되도록 DeleteDatabase 호출 전에 DeleteTableVersion 또는 BatchDeleteTableVersion, DeletePartition 또는 BatchDeletePartition, DeleteUserDefinedFunction 및 DeleteTable 또는 BatchDeleteTable를 사용하여 데이터베이스에 속하는 모든 리소스를 삭제하십시오.

요청
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.

  • Name – 필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    삭제할 데이터베이스의 이름입니다. 반드시 모두 소문자로 저장하여 Hive 호환성을 유지하도록 합니다.

응답
  • 무응답 파라미터.

오류
  • EntityNotFoundException

  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • ConcurrentModificationException

  • FederationSourceException

  • FederationSourceRetryableException

GetDatabase 작업(Python: get_database)

지정된 데이터베이스의 정의를 검색합니다.

요청
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.

  • Name – 필수(Required): Single-line string pattern과(와) 일치하는 1~255바이트 길이의 UTF-8 문자열입니다.

    검색할 데이터베이스의 이름입니다. 반드시 모두 소문자로 저장하여 Hive 호환성을 유지하도록 합니다.

응답
  • Database – 데이터베이스 객체입니다.

    데이터 카탈로그에서 지정된 데이터베이스의 정의입니다.

오류
  • InvalidInputException

  • EntityNotFoundException

  • InternalServiceException

  • OperationTimeoutException

  • GlueEncryptionException

  • FederationSourceException

  • FederationSourceRetryableException

GetDatabases 작업(Python: get_database)

주어진 데이터 카탈로그에 정의된 모든 데이터베이스를 검색합니다.

요청
  • CatalogId – Single-line string pattern과(와) 일치하는 1~255바이트 길이의 카탈로그 ID 문자열입니다.

    Databases를 검색할 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.

  • NextToken – UTF-8 문자열입니다.

    이것이 지속적으로 호출되면 지속적인 토큰입니다.

  • MaxResults – 1~100의 숫자(정수)입니다.

    한 번의 응답으로 반환될 최대 데이터베이스 수입니다.

  • ResourceShareType – UTF-8 문자열입니다(유효한 값: FOREIGN | ALL | FEDERATED).

    계정과 공유된 데이터베이스를 나열하도록 지정할 수 있습니다. 허용 가능한 값은 FEDERATED, FOREIGN 또는 ALL입니다.

    • FEDERATED로 설정하면 계정과 공유된 페더레이션된 데이터베이스(외부 엔터티라고 함)가 나열됩니다.

    • FOREIGN으로 설정하면 계정과 공유된 데이터베이스가 나열됩니다.

    • ALL로 설정하면 계정과 공유된 데이터베이스와 로컬 계정의 데이터베이스가 나열됩니다.

  • AttributesToGet – UTF-8 문자열의 배열입니다.

    GetDatabases 호출에서 반환된 데이터베이스 필드를 지정합니다. 이 파라미터는 빈 목록을 허용하지 않습니다. 요청에는 NAME이 포함되어야 합니다.

응답
  • DatabaseList – 필수(Required): 데이터베이스 객체의 배열입니다.

    지정된 카탈로그의 Database 목록입니다.

  • NextToken – UTF-8 문자열입니다.

    목록의 현재 세그먼트가 마지막이 아니면 반환된 토큰 목록에 페이지를 매기는 지속적인 토큰은 반환됩니다.

오류
  • InvalidInputException

  • InternalServiceException

  • OperationTimeoutException

  • GlueEncryptionException

  • EntityNotFoundException

  • FederationSourceException

  • FederationSourceRetryableException