공간 테이블 생성 및 관리
개요
공간 테이블은 데이터 개발 플랫폼의 핵심 자산으로, 현재 워크스페이스의 작업 플로우에서 바로 사용할 수 있는 데이터 범위입니다. 즉 데이터 개발 플랫폼의 개발과 데이터베이스 테이블에서 직접 생성한 테이블(Table) 또는 뷰(View)로, 개발 환경과 운영 환경에 존재합니다. 이중 환경 배포와 라이프사이클 관리, 콜드/핫 데이터 분리 등의 기능을 지원하므로 주 데이터 저장소로 적합합니다.
5.1 버전에서 기존 공간 테이블, 기존 시스템 테이블, 직접 연결 뷰가 통합되어 표시됩니다.
이 장에서는 공간 테이블의 생성·삭제·수정·조회 기능을 자세히 소개하여 공간 테이블 생성과 라이브러리/테이블 관리를 빠르게 익힐 수 있도록 돕습니다.
데이터베이스 테이블 이해하기
새로운 데이터베이스 테이블 페이지에는 기능 전환 영역, 사전 영역, 탭 영역, 페이지 콘텐츠 영역, 드로어 영역의 다섯 가지 기능 영역이 있습니다.
각 영역의 기능 소개는 데이터베이스 테이블을 참조하십시오.
공간 테이블 생성
먼저 데이터베이스 테이블 페이지로 이동해야 합니다. 이 페이지에서는 세 가지 방법으로 공간 테이블을 생성할 수 있습니다.
- 사전 영역 상단의 + 버튼으로 생성
- 탭 영역 끝의 + 버튼으로 생성
- 페이지 콘텐츠 영역 오른쪽 상단의 +테이블 버튼으로 생성
새 공간 테이블 페이지로 이동
관리 모드는 기본적으로 공간-작업 테이블이며, 테이블 타입을 선택할 수 있습니다.
- 테이블: 물리 테이블의 테이블 구조, 스토리지 포맷, 스토리지 방식 등을 정의할 수 있습니다.
- 뷰: 공간 작업 테이블, 시스템 테이블, 직접 연결 소스 등의 기본 테이블을 기반으로 뷰를 생성할 수 있습니다.
참고: 공간 데이터베이스 테이블 페이지 콘텐츠 영역에서 뷰 아이콘에는 👁️ 표시가 있어 쉽게 구분할 수 있습니다.
데이터베이스 테이블에서는 생성 시 기본적으로 개발 환경에 들어가며, 배포 및 라이브 후 운영 환경에 들어갑니다. 테이블이나 뷰를 배포 및 라이브한 후에는 편집을 클릭하여 개발 환경으로 전환할 수 있습니다.
테이블(Table) 생성
새 공간 테이블에서 테이블 타입으로 테이블을 선택한 후 다음을 클릭하면 새 테이블 페이지(개발 환경)로 이동합니다
모드 전환
테이블은 가이드 방식과 DDL 모드 두 가지 생성 방식을 지원하며, 테이블 Schema는 상호 해석됩니다. 즉 가이드 방식에서 DDL을 미리 볼 수도 있고, DDL 모드에서 해석한 후 가이드 방식으로 돌아가 다시 편집할 수도 있습니다.
- 가이드 방식 과 DDL 방식 은 하나의 설정을 보는 두 가지 관점이며, 두 관점은 같은 설정을 공유합니다
- 내부 테이블 / 외부 테이블을 직접 선택하여 생성할 수 있습니다(주의: 테이블을 한 번 생성하면 테이블 타입 정의를 변경할 수 없음)
- 외부 테이블 경로는 한 번 저장하면 변경할 수 없습니다
- DDL 모드에서는 반드시 해석한 후에야 가이드 방식으로 전환할 수 있습니다
테이블 설정 정보
| 테이블 기본 정보 | |
|---|---|
| 필드 이름 | 설명 |
| 비고 | 테이블의 비고 정보 |
| 라이프사이클 | 현재 공간 테이블의 관리 가능한 라이프사이클 |
| 담당자 | 해당 공간 테이블의 담당자 |
| 기본 정보 | |
| 필드 이름 | 설명 |
| 테이블 이름 | 공간 내에서 고유해야 하며, 소문자로 시작하고 소문자, 숫자, 밑줄을 포함할 수 있으며 길이는 80자를 넘을 수 없음 |
| 타입 | 테이블, 뷰(뷰는 아직 선택할 수 없음) |
| 테이블 설명 | 테이블의 표시 이름 comment |
| 테이블 구성 | |
| 파티션 타입 |
|
| 스토리지 타입 |
배포 및 라이브한 후에는 테이블 타입을 변경할 수 없습니다 |
| 스토리지 방식 |
|
| 스토리지 포맷 | orc, parquet, text, csv, json 등 다양한 스토리지 포맷 지원 |
| 스토리지 경로 |
|
주의: 테이블을 한 번 저장하면 테이블 스토리지 타입, 테이블 스토리지 경로 등이 확정되어 변경할 수 없습니다.
커스텀 테이블 속성
유저는 일부 테이블 속성을 직접 정의할 수 있으며, 화이트리스트는 다음과 같습니다.
"format"
"partitioned_by"
"external_location"
"location"
"bucket_count"
"bucketed_by"
"sorted_by"
"bucketing_version"
이 중 format, partitioned_by, external_location, location은 시스템이 해석합니다.
저장 방식
- 가이드 방식 선택: 가이드 방식으로 필드 설정을 마친 후 오른쪽 상단의 DDL 미리보기 버튼을 클릭하면 해당 테이블의 테이블 생성문을 보고 테이블 구조를 확인할 수 있습니다.
- DDL 방식 선택: 테이블 생성문을 작성한 후 오른쪽 상단의 해석을 클릭하고 페이지 오른쪽 하단의 필드 영역에서 테이블 구조를 확인할 수 있습니다. 가이드 방식으로 돌아가 직접 수정할 수도 있습니다.
마지막으로 공간 테이블 설정을 마친 후 페이지 오른쪽 상단의 저장만 또는 배포 및 라이브 버튼을 클릭하여 공간 테이블을 생성할 수 있습니다. 두 버튼의 차이는 다음과 같습니다.
- 저장만: 개발 환경의 공간 테이블만 생성하며, 이후 설정이 확정되면 운영 환경의 공간 테이블을 배포합니다
- 배포 및 라이브: 개발 환경과 운영 환경의 공간 테이블을 동시에 생성합니다. 저장 후 배포하는 것과 같으며, 모든 설정을 마친 후 사용하기에 적합합니다.
뷰(View) 생성
AE Trino에 마운트된 커스텀 Catalog의 테이블을 기본 테이블로 삼아 워크스페이스에서 사용할 수 있는 뷰를 생성할 수 있습니다. 뷰는 개발 플랫폼의 여러 모듈에서 사용할 수 있으며, 예를 들어 작업 플로우에서 조회하거나 AE 분석 모듈에 권한을 부여할 수 있습니다.
뷰는 개별 생성과 일괄 생성 방식을 지원합니다.
개별 생성
새 공간 테이블에서 테이블 타입으로 뷰를 선택한 후 다음을 클릭합니다
새 뷰 페이지(개발 환경)로 이동합니다.
뷰는 두 가지 방식으로 생성할 수 있습니다.
-
테이블 생성문을 직접 입력하여 생성한 후 디버깅을 클릭합니다
-
오른쪽 상단의 사전 버튼을 클릭하여 구문 작성을 보조합니다
- 사전 영역에서 데이터 디렉토리, 소스 라이브러리, 소스 테이블을 선택합니다(또는 테이블의 전체 정규화된 이름을 입력하여 해석)
참고: 데이터 디렉토리 드롭다운 메뉴에는 직접 연결에 사용할 수 있는 Catalog의 표시 이름(설정 시 정의 가능), Catalog 타입, 해당 Logo가 표시됩니다. 직접 연결하려는 Catalog가 드롭다운 메뉴에 없으면 ThinkingAI 담당자에게 설정을 요청하십시오.
- 이어서 필요한 필드를 체크하고 테이블 필드 오른쪽 상단의 쿼리문 생성을 클릭하면 구문이 클립보드에 자동으로 복사됩니다. 또는 테이블 생성 구문 생성을 클릭하여 클립보드에 복사한 후 테이블 생성문 IDE에 붙여 넣어 디버깅합니다
디버깅에 성공하면 필드 미리보기, 데이터 미리보기, 소스 기반 표가 표시되어 확인할 수 있습니다.
더 복잡한 뷰 구조는 SQL 문을 작성하여 구현할 수 있습니다.
마지막으로 해당 뷰의 이름을 다시 지정해야 합니다. 생성된 구문의 기본 이름은 VIEW + 소스 테이블 이름이므로 필요에 따라 구문에서 수정하십시오
주의: 새로 만든 뷰도 해당 워크스페이스의 공간 테이블로 취급되므로 기존 공간 테이블과 이름이 같을 수 없습니다.
위 작업을 모두 마친 후 페이지 오른쪽 상단의 저장만 또는 배포 및 라이브 버튼을 클릭하여 뷰를 생성할 수 있습니다. 두 버튼의 차이는 다음과 같습니다.
- 저장만: 개발 환경의 공간 테이블만 생성하며, 이후 설정이 확정되면 운영 환경의 공간 테이블을 배포합니다
- 배포 및 라이브: 개발 환경과 운영 환경의 공간 테이블을 동시에 생성합니다. 저장 후 배포하는 것과 같으며, 모든 설정을 마친 후 사용하기에 적합합니다.
일괄 생성
현재 뷰 일괄 배포, 일괄 삭제 등의 작업을 지원합니다.
이 버전에서는 직접 연결 관리에서 추가 작업을 해야 합니다. 참조: 직접 연결 뷰 일괄 생성
라이브러리/테이블 관리
페이지 콘텐츠 영역에는 현재 워크스페이스의 모든 공간 테이블(테이블과 뷰)이 표시되며, 테이블을 빠르게 찾고 효율적으로 사용할 수 있도록 다양한 작업 기능을 제공합니다.
- 상단의 깔때기 버튼을 클릭하여 필터링할 수 있으며, 현재 지원하는 필터 조건은 다음과 같습니다.
- 변경 사항 있음
- 내가 담당하는
- 곧 만료 예정
- 라이브 전
- 관리 모드: 공간-작업 테이블, 공간-IDE 테이블, 시스템 테이블, 외부 공간 권한 테이블
- 테이블 타입: 물리 테이블, 뷰
- 소속 주체
- 담당자
- 일괄 작업을 할 수 있습니다.
리스트 오른쪽 상단의 일괄 작업 버튼에 마우스를 올리면 일괄 작업 메뉴가 펼쳐집니다. 현재 일괄 기간 연장, 일괄 발행 및 온라인 배포, 일괄 회수 작업을 지원합니다.
일괄 작업 중 하나를 선택하면 리스트에 해당 작업을 할 수 있는 공간 테이블이 표시됩니다.
참고: 뷰는 기간을 연장할 필요가 없습니다
- 검색 기능으로 테이블 이름, 테이블 설명을 검색하여 해당 공간 테이블을 찾을 수도 있습니다
공간 테이블 상세 정보 페이지
라이브러리/테이블 관리의 페이지 콘텐츠 영역에서는 두 가지 방법으로 공간 테이블의 구체적인 정보를 확인할 수 있습니다.
- 해당 공간 테이블의 빈 영역을 클릭하면 드로어 영역이 열리며, 미리보기, 기간 연장, 회수와 일부 기본 정보(테이블 설명, 담당자, 비고)의 빠른 편집을 할 수 있습니다. 편집을 클릭하면 상세 정보 페이지로 이동합니다.
- 데이터 테이블 이름을 클릭하면 상세 정보 페이지로 이동하며, 테이블 타입과 상태에 따라 다른 페이지가 표시됩니다. 표준 공간 테이블을 예로 들면 상세 정보 페이지에는 다음 핵심 정보가 포함됩니다.
- 기본 정보: 테이블 이름, 소속 환경, 스토리지, 데이터 디렉토리, 데이터베이스 등
- 필드 구조: 열 이름, 타입, 주석
- DDL 구문: 테이블 생성문
- 데이터 미리보기: 상위 N행 데이터
- 파티션 상세(파티션 테이블인 경우): 파티션 데이터양 및 스토리지 크기
다른 테이블 타입에서는 표시되는 필드가 다를 수 있습니다.
Hive 외부 파티션 테이블은 파티션 자동 동기화 또는 수동 동기화도 설정할 수 있습니다. 자세한 작업은 파티션 테이블 동기화를 참조하십시오.
- 다음은 테이블 관리에 표시되는 내용입니다.
| 열 이름 | 설명 |
|---|---|
| 테이블 이름 | 공간 테이블의 테이블 이름으로, 클릭하면 공간 테이블 상세 정보 페이지로 이동 |
| 테이블 설명 | 유저가 직접 작성한 테이블 설명 |
| 스토리지 이름 | 공간 테이블이 속한 스토리지의 이름 |
| 데이터 디렉토리 이름 | 공간 테이블이 속한 데이터 디렉토리의 이름 |
| 데이터베이스 이름 | 공간 테이블이 속한 데이터베이스의 이름 |
| 라이브 상태 | 공간 테이블의 배포 상태로, 라이브됨과 라이브 전 두 가지 상태가 있음 |
| 관리 모드 | 기본값은 공간-작업 테이블 |
| 연결된 작업 이름 | 공간 테이블에 연결된 작업 |
| 소속 주체 이름 | 공간 테이블이 속한 공간 주체 |
| 스토리지 타입 | 내부 테이블 또는 외부 테이블 |
| 스토리지 포맷 | 공간 테이블의 스토리지 포맷(예: ORC) |
| 스토리지 방식 | 공간 테이블의 스토리지 방식(예: HDFS) |
| 스토리지 경로 | 공간 테이블의 스토리지 경로 |
| 라이프사이클 상태 | 공간 테이블의 라이프사이클 상황으로 정상과 곧 만료 예정 두 가지 상태가 있으며 필터링 가능(남은 라이프사이클 일수가 7일 미만인 테이블은 곧 만료 예정 상태가 되며, 해당 테이블의 라이프사이클 (일) 상한이 7일 미만이면 계속 곧 만료 예정 상태로 유지됨) |
| 라이프사이클 (일) | 기간 연장 가능 |
| 담당자 | 공간 테이블의 담당자 |
| 비고 | 사용자 정의 비고 |
| 생성자 | 공간 테이블의 생성자 |
| 생성 시간 | 공간 테이블의 생성 시간 |
| 마지막 배포자 | 공간 테이블의 마지막 배포자 |
| 마지막 배포 시간 | 공간 테이블의 마지막 배포 시간 |
| 필드 미리보기 | 공간 테이블의 필드 리스트 |
| DDL | 공간 테이블에 대응하는 DDL 구문 |
| 데이터 미리보기 | 공간 테이블 내 데이터를 표시하며 새로고침 지원 |
| 사용 시나리오(기본적으로 숨김) | 해당 공간 테이블을 앱 모듈의 어떤 시나리오에서 사용할 수 있는지 |
| 생성 시간(기본 숨김) | 공간 테이블의 생성 시간 |
| 작업-편집 | 클릭하면 공간 테이블 편집 페이지로 이동 |
| 작업-기간 연장 | 클릭하면 공간 테이블의 기간을 수동으로 연장하여 라이프사이클 (일)을 갱신 |
| 작업-배포 | 클릭하면 변경 사항이 있거나 배포되지 않은 공간 테이블을 배포 가능 |
| 작업-회수 | 클릭하면 해당 공간 테이블을 회수 가능. 회수된 공간 테이블은 공간 테이블 휴지통에서 확인할 수 있으며, 휴지통에서 복구 또는 영구 삭제 가능 |
- 다음은 뷰 관리에 표시되는 내용입니다.
| 열 이름 | 설명 |
|---|---|
| 뷰 이름 | 생성한 뷰의 이름으로, 이동 버튼을 클릭하면 뷰 상세 정보 페이지로 이동 |
| 테이블 설명 | 유저가 직접 작성한 뷰 설명 |
| 스토리지 이름 | 공간 테이블이 속한 스토리지의 이름 |
| 데이터 디렉토리 이름 | 공간 테이블이 속한 데이터 디렉토리의 이름 |
| 데이터베이스 이름 | 공간 테이블이 속한 데이터베이스의 이름 |
| 라이브 상태 | 뷰의 배포 상태로, 라이브됨과 라이브 전 두 가지 상태가 있음 |
| 관리 모드 | 기본값은 공간-작업 테이블 |
| 담당자 | 뷰의 담당자 |
| 비고 | 사용자 정의 비고 |
| 라이프사이클 상태 | 공간 테이블의 라이프사이클 상황으로, 뷰는 기본적으로 정상 |
| 생성자 | 공간 테이블의 생성자 |
| 생성 시간 | 공간 테이블의 생성 시간 |
| 마지막 수정자 | 공간 테이블의 마지막 수정자 |
| 마지막 수정 시간 | 공간 테이블의 마지막 수정 시간 |
| 필드 미리보기 | 공간 테이블의 필드 리스트 |
| DDL | 공간 테이블에 대응하는 DDL 구문 |
| 데이터 미리보기 | 공간 테이블 내 데이터를 표시하며 새로고침 지원 |
| 소스 기반 표 | 소스 기본 테이블의 전체 정규화된 이름으로, 클릭하면 테이블 상세 정보 페이지로 이동 |
| 작업-편집 | 클릭하면 직접 연결 뷰의 편집 페이지로 이동 |
| 작업-배포 | 클릭하면 배포되지 않은 직접 연결 뷰를 배포 가능 |
| 작업-회수 | 클릭하면 해당 직접 연결 뷰를 회수 가능. 회수된 뷰는 개발 모듈의 공간 테이블 휴지통에서 확인할 수 있으며, 복구 또는 영구 삭제 가능 |

