

# 데이터베이스 API
<a name="aws-glue-api-catalog-databases"></a>

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

## 데이터 타입
<a name="aws-glue-api-catalog-databases-objects"></a>
+ [데이터베이스 구조](#aws-glue-api-catalog-databases-Database)
+ [DatabaseInput 구조](#aws-glue-api-catalog-databases-DatabaseInput)
+ [PrincipalPermissions 구조](#aws-glue-api-catalog-databases-PrincipalPermissions)
+ [DataLakePrincipal 구조](#aws-glue-api-catalog-databases-DataLakePrincipal)
+ [DatabaseIdentifier 구조](#aws-glue-api-catalog-databases-DatabaseIdentifier)
+ [FederatedDatabase 구조](#aws-glue-api-catalog-databases-FederatedDatabase)

## 데이터베이스 구조
<a name="aws-glue-api-catalog-databases-Database"></a>

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

**필드**
+ `Name` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.
+ `Description` – [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri)과(와) 일치하는 2,048바이트 이하 길이의 설명 문자열입니다.

  데이터베이스에 대한 설명입니다.
+ `LocationUri` – [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri)과(와) 일치하는 1\$11,024바이트 길이의 URI(Uniform Resource Identifier)입니다.

  데이터베이스의 위치(예: HDFS 경로)입니다.
+ `Parameters` – 키-값 페어의 맵 배열입니다.

  각 키는 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255 바이트 길이의 키 문자열입니다.

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

  이러한 키-값 쌍은 데이터베이스의 파라미터와 속성을 정의합니다.
+ `CreateTime` – 타임스탬프입니다.

  메타 데이터베이스가 카탈로그에 생성된 시간입니다.
+ `CreateTableDefaultPermissions` – [PrincipalPermissions](#aws-glue-api-catalog-databases-PrincipalPermissions) 객체의 배열입니다.

  보안 주체에 대한 테이블에서 기본 권한 세트를 생성합니다. AWS Lake Formation에서 사용됩니다. AWS Glue 작업의 일반적인 과정에서는 사용되지 않습니다.
+ `TargetDatabase` – [DatabaseIdentifier](#aws-glue-api-catalog-databases-DatabaseIdentifier) 객체입니다.

  리소스 링크에 대한 대상 데이터베이스를 설명하는 `DatabaseIdentifier` 구조입니다.
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  데이터베이스가 있는 데이터 카탈로그의 ID입니다.
+ `FederatedDatabase` – [FederatedDatabase](#aws-glue-api-catalog-databases-FederatedDatabase) 객체입니다.

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

## DatabaseInput 구조
<a name="aws-glue-api-catalog-databases-DatabaseInput"></a>

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

**필드**
+ `Name` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.
+ `Description` – [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri)과(와) 일치하는 2,048바이트 이하 길이의 설명 문자열입니다.

  데이터베이스에 대한 설명입니다.
+ `LocationUri` – [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri)과(와) 일치하는 1\$11,024바이트 길이의 URI(Uniform Resource Identifier)입니다.

  데이터베이스의 위치(예: HDFS 경로)입니다.
+ `Parameters` – 키-값 페어의 맵 배열입니다.

  각 키는 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255 바이트 길이의 키 문자열입니다.

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

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

  이러한 키-값 쌍은 데이터베이스의 파라미터와 속성을 정의합니다.
+ `CreateTableDefaultPermissions` – [PrincipalPermissions](#aws-glue-api-catalog-databases-PrincipalPermissions) 객체의 배열입니다.

  보안 주체에 대한 테이블에서 기본 권한 세트를 생성합니다. AWS Lake Formation에서 사용됩니다. AWS Glue 작업의 일반적인 과정에서는 사용되지 않습니다.
+ `TargetDatabase` – [DatabaseIdentifier](#aws-glue-api-catalog-databases-DatabaseIdentifier) 객체입니다.

  리소스 링크에 대한 대상 데이터베이스를 설명하는 `DatabaseIdentifier` 구조입니다.
+ `FederatedDatabase` – [FederatedDatabase](#aws-glue-api-catalog-databases-FederatedDatabase) 객체입니다.

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

## PrincipalPermissions 구조
<a name="aws-glue-api-catalog-databases-PrincipalPermissions"></a>

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

**필드**
+ `Principal` – [DataLakePrincipal](#aws-glue-api-catalog-databases-DataLakePrincipal) 객체입니다.

  권한을 부여받는 보안 주체입니다.
+ `Permissions` – UTF-8 문자열의 배열입니다.

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

## DataLakePrincipal 구조
<a name="aws-glue-api-catalog-databases-DataLakePrincipal"></a>

AWS Lake Formation 보안 주체입니다.

**필드**
+ `DataLakePrincipalIdentifier` – 1\$1255바이트 길이의 UTF-8 문자열입니다.

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

## DatabaseIdentifier 구조
<a name="aws-glue-api-catalog-databases-DatabaseIdentifier"></a>

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

**필드**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  데이터베이스가 있는 데이터 카탈로그의 ID입니다.
+ `DatabaseName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  카탈로그 데이터베이스의 이름입니다.
+ `Region` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

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

## FederatedDatabase 구조
<a name="aws-glue-api-catalog-databases-FederatedDatabase"></a>

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

**필드**
+ `Identifier` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1512바이트 길이의 UTF-8 문자열입니다.

  페더레이션된 데이터베이스의 고유 식별자입니다.
+ `ConnectionName` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  외부 메타스토어에 대한 연결 이름입니다.
+ `ConnectionType` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

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

## 운영
<a name="aws-glue-api-catalog-databases-actions"></a>
+ [CreateDatabase 작업(Python: create\$1database)](#aws-glue-api-catalog-databases-CreateDatabase)
+ [UpdateDatabase 작업(Python: update\$1database)](#aws-glue-api-catalog-databases-UpdateDatabase)
+ [DeleteDatabase 작업(Python: delete\$1database)](#aws-glue-api-catalog-databases-DeleteDatabase)
+ [GetDatabase 작업(Python: get\$1database)](#aws-glue-api-catalog-databases-GetDatabase)
+ [GetDatabases 작업(Python: get\$1database)](#aws-glue-api-catalog-databases-GetDatabases)

## CreateDatabase 작업(Python: create\$1database)
<a name="aws-glue-api-catalog-databases-CreateDatabase"></a>

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

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  데이터베이스를 생성할 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `DatabaseInput` – *필수(Required):* [DatabaseInput](#aws-glue-api-catalog-databases-DatabaseInput) 객체입니다.

  데이터베이스의 메타데이터입니다.
+ `Tags` – 50개 이하의 페어로 구성된 키-값 페어의 맵 배열입니다.

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

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

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

**응답**
+ *무응답 파라미터.*

**오류**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `FederatedResourceAlreadyExistsException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## UpdateDatabase 작업(Python: update\$1database)
<a name="aws-glue-api-catalog-databases-UpdateDatabase"></a>

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

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  메타데이터 데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `Name` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

  카탈로그에서 업데이트할 데이터베이스의 이름입니다. 저장될 때 소문자로 저장되어 Hive 호환성을 유지합니다.
+ `DatabaseInput` – **필수(Required): [DatabaseInput](#aws-glue-api-catalog-databases-DatabaseInput) 객체입니다.

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

**응답**
+ *무응답 파라미터.*

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`
+ `AlreadyExistsException`

## DeleteDatabase 작업(Python: delete\$1database)
<a name="aws-glue-api-catalog-databases-DeleteDatabase"></a>

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

**참고**  
이 작업을 완료한 후에는 테이블(및 테이블에 속하는 모든 테이블 버전과 파티션)은 물론 삭제된 데이터베이스에 있는 사용자 정의 함수에 더 이상 액세스하지 못합니다. AWS Glue는 이러한 "분리된" 리소스를 서비스 재량에 따라 적시에 비동기로 삭제합니다  
관련된 모든 리소스가 즉시 삭제되도록 `DeleteDatabase` 호출 전에 `DeleteTableVersion` 또는 `BatchDeleteTableVersion`, `DeletePartition` 또는 `BatchDeletePartition`, `DeleteUserDefinedFunction` 및 `DeleteTable` 또는 `BatchDeleteTable`를 사용하여 데이터베이스에 속하는 모든 리소스를 삭제하십시오.

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `Name` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

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

**응답**
+ *무응답 파라미터.*

**오류**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetDatabase 작업(Python: get\$1database)
<a name="aws-glue-api-catalog-databases-GetDatabase"></a>

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

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  데이터베이스가 있는 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `Name` – *필수(Required):* [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 UTF-8 문자열입니다.

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

**응답**
+ `Database` – [데이터베이스](#aws-glue-api-catalog-databases-Database) 객체입니다.

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

**오류**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetDatabases 작업(Python: get\$1database)
<a name="aws-glue-api-catalog-databases-GetDatabases"></a>

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

**요청**
+ `CatalogId` – [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine)과(와) 일치하는 1\$1255바이트 길이의 카탈로그 ID 문자열입니다.

  `Databases`를 검색할 데이터 카탈로그의 ID입니다. 제공되지 않은 경우 기본적으로 AWS 계정 ID가 사용됩니다.
+ `NextToken` – UTF-8 문자열입니다.

  이것이 지속적으로 호출되면 지속적인 토큰입니다.
+ `MaxResults` – 1\$1100의 숫자(정수)입니다.

  한 번의 응답으로 반환될 최대 데이터베이스 수입니다.
+ `ResourceShareType` – UTF-8 문자열입니다(유효한 값: `FOREIGN` \$1 `ALL` \$1 `FEDERATED`).

  계정과 공유된 데이터베이스를 나열하도록 지정할 수 있습니다. 허용 가능한 값은 `FEDERATED`, `FOREIGN` 또는 `ALL`입니다.
  + `FEDERATED`로 설정하면 계정과 공유된 페더레이션된 데이터베이스(외부 엔터티라고 함)가 나열됩니다.
  + `FOREIGN`으로 설정하면 계정과 공유된 데이터베이스가 나열됩니다.
  + `ALL`로 설정하면 계정과 공유된 데이터베이스와 로컬 계정의 데이터베이스가 나열됩니다.
+ `AttributesToGet` – UTF-8 문자열의 배열입니다.

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

**응답**
+ `DatabaseList` – **필수(Required): [데이터베이스](#aws-glue-api-catalog-databases-Database) 객체의 배열입니다.

  지정된 카탈로그의 `Database` 목록입니다.
+ `NextToken` – UTF-8 문자열입니다.

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

**오류**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `EntityNotFoundException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`