Iceberg REST Catalog API

Iceberg REST Catalog API (Hive Metastore 기반)

Hive Metastore가 제공하는 Iceberg REST Catalog API 엔드포인트에 대한 문서예요. Iceberg 전용 클라이언트가 Hive Metastore의 Thrift API 대신 REST Catalog API로도 Iceberg 테이블에 접근할 수 있게 해 줍니다.

출처: 문서

본문

Hive Metastore는 Apache Iceberg에 네이티브한 클라이언트를 위한 Iceberg REST API 엔드포인트를 제공합니다. 따라서 Iceberg 사용자는 Hive Metastore Thrift API(HiveCatalog 사용) 또는 Iceberg REST Catalog API 중 원하는 방식으로 Iceberg 테이블에 접근할 수 있습니다.

기본 설정 (Basic configurations)

다음 파라미터를 설정해야 합니다.

필수? 기본값
metastore.catalog.servlet.port -1 Iceberg REST API가 수신 대기할 포트 번호

인증 (Authentication)

Hive Metastore의 Iceberg REST API는 네 가지 인증 방식을 지원합니다.

OAuth 2

OAuth 2는 Iceberg 클라이언트 사용자 이름을 인증하는 업계 표준 방식입니다. 예를 들어 Keycloak 같은 Authorization Server와 연동해 Iceberg 리소스를 보호할 수 있습니다. 자세한 내용은 Apache Hive : Setting Up OAuth 2를 참고하세요.

JWT

Hive Metastore는 Authorization 헤더의 bearer 토큰으로 JSON Web Token(JWT)을 받아들이도록 설정할 수 있습니다. metastore.catalog.servlet.auth 의 기본값이 jwt 이므로 기본 인증 메커니즘입니다. JSON Web Key Set(JWKS) 위치는 metastore.authentication.jwt.jwks.url 속성으로 설정해야 합니다. Hive Metastore는 올바르게 서명된 JWT의 sub 클레임에서 사용자 이름을 유도합니다.

Simple

metastore.catalog.servlet.auth=simple 로 설정하면 Hive Metastore는 x-actor-username HTTP 헤더의 값을 인증된 사용자 이름으로 간주합니다. 권한 있는 접근을 테스트할 때 사용할 수 있지만, 운영 환경에서는 권장되지 않습니다.

None

metastore.catalog.servlet.auth=none 으로 설정하면 Hive Metastore는 어떤 인증도 적용하지 않습니다. 이 방식은 테스트 전용으로만 사용해야 합니다.

권한 부여 (Authorization)

Hive Metastore에서 데이터베이스 수준 또는 테이블 수준 권한 부여를 적용할 수 있습니다. 참고: Apache Hive : LanguageManual Authorization.

예를 들어 Apache Ranger를 사용해 Iceberg REST API를 보호할 수 있습니다.

<property>

더 알아보기 (Learn more)