- 인쇄
- PDF
Table
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
테이블(Table)은 데이터의 상세 정보와 스키마를 가진 메타데이터 정의입니다. 스캐너를 통해 테이블을 생성하거나 사용자가 직접 스키마를 정의하여 테이블을 생성할 수 있습니다. Table 메뉴에서는 테이블을 생성 및 관리하고 수집한 메타데이터를 확인할 수 있습니다.
Table 화면
Data Catalog 이용을 위한 Table 메뉴의 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 메뉴명 | 현재 확인 중인 메뉴명, 조회 중인 테이블 수 |
② 기본 기능 | Table 메뉴 최초 진입 시 표시되는 기능
|
③ 생성 후 기능 | 테이블 생성 후 활성화되는 기능 |
④ 검색창 | 데이터베이스 명, 테이블 명, 위치, 테이블 타입, 데이터 포맷, 태그로 검색할 수 있으며 순서 정렬가능 |
⑤ 테이블 목록 | 조회 중인 테이블 목록으로, 클릭하여 상세 정보 확인 |
⑥ 정보 탭 | 각 탭을 클릭하여 해당 정보 확인 |
테이블 생성
원하는 방식으로 테이블을 생성할 수 있습니다. 생성 방법은 다음과 같습니다.
- 스키마 수동 정의 테이블 생성: 데이터베이스 및 스키마를 직접 설정하여 테이블 생성
- 스캐너를 통한 테이블 생성: 스캐너를 통해 스키마를 자동으로 정의하여 테이블 생성
스키마 수동 정의 테이블 생성
데이터베이스 및 스키마를 직접 설정하여 테이블을 생성할 수 있습니다.
스키마 수동 정의 테이블을 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Catalog 메뉴를 차례대로 클릭해 주십시오.
- Table 메뉴를 클릭해 주십시오.
- [테이블 생성] 버튼을 클릭해 주십시오.
- 스키마 수동 정의 테이블 생성을 클릭해 선택한 후 [다음] 버튼을 클릭해 주십시오.
- 기본 정보를 입력해 주십시오.
- 데이터베이스: 드롭다운 메뉴를 클릭하여 테이블을 연결할 데이터베이스를 선택
- [데이터베이스 생성] 버튼을 클릭하여 데이터베이스를 생성할 수 있습니다.(데이터베이스 생성 참조)
- 테이블 이름: 테이블 이름 입력
- 위치: 테이블의 데이터가 존재하는 위치
- 설명: 테이블 설명 입력
- 테이블 유형
- Catalog Default : Data Catalog에서 제공하는 기본 Hive Table 유형 입니다.
- Apache Iceberg : 방대한 분석 데이터 세트를 위한 개방형 테이블 형식으로서, ACID 트랜잭션, 스키마 진화,Time Travel 쿼리 등을 지원하며 Spark, Trino, Hive에서 동시에 안전하게 작업 가능합니다
- 데이터베이스: 드롭다운 메뉴를 클릭하여 테이블을 연결할 데이터베이스를 선택
- 데이터 형식을 선택해 주십시오.
- Apache Iceberg 테이블 유형을 선택한 경우는 선택하지 않습니다
- csv 선택 시, 구분 기호, 데이터 인식 기호, 제거 문자를 선택 또는 입력할 수 있습니다. 또한 제외할 헤더 라인 수를 입력할 수 있습니다.
- xml 선택 시, Row Tag를 입력할 수 있습니다.
- [추가] 버튼을 클릭한 후 스키마 정보를 입력하여 사용자 정의 스키마를 추가해 주십시오.
- 데이터 유형에 대한 자세한 내용은 스키마 데이터 유형을 참조해 주십시오.
- 스키마의 체크 박스를 클릭한 후 [삭제] 버튼을 클릭하여 추가한 스키마를 삭제할 수 있습니다.
- 사용자 정의 스키마를 추가하지 않으면 필드 이름이 'default'인 스키마가 자동으로 추가됩니다.
- 파티션 키 입력이 필요한 경우 파티션영역을 클릭한 후 파티션 키를 추가해 주십시오.
- [추가] 버튼을 클릭한 후, 입력란에 파티션 키 명을 입력하면 파티션 키가 추가됩니다.
- 파티션 의 체크 박스를 클릭하여 선택한 후 [삭제] 버튼을 클릭해 파티션 키를 삭제할 수 있습니다.
- Apache Iceberg 테이블 유형은 파티션을 입력하지 않습니다.
- 태그가 필요한 경우, 태그 설정 영역을 클릭한 후 태그를 추가해 주십시오.
- [추가] 버튼을 클릭한 후, 입력란에 태그 정보를 입력하면 태그가 추가됩니다.
- 데이터 유형에 대한 자세한 내용은 태그 데이터 유형을 참조해 주십시오.
- 태그의 체크 박스를 클릭하여 선택한 후 [삭제] 버튼을 클릭해 태그를 삭제할 수 있습니다.
- [태그 템플릿 불러오기] 버튼을 클릭하면 태그 템플릿 불러오기 팝업 창이 나타납니다.
- 태그 템플릿을 클릭하여 선택한 후 [추가] 버튼을 클릭하면 해당 태그 템플릿의 태그를 추가할 수 있습니다.
- 태그 템플릿에 대한 자세한 내용은 Tag Template을 참조해 주십시오.
- [추가] 버튼을 클릭한 후, 입력란에 태그 정보를 입력하면 태그가 추가됩니다.
- [생성] 버튼을 클릭해 주십시오.
스키마 데이터 유형
수동으로 정의할 수 있는 스키마의 데이터 유형과 유형별 설명은 다음과 같습니다.
데이터 유형 | 설명 | Catalog Default 지원 여부 | Apache Iceberg지원 여부 |
---|---|---|---|
tinyint | 정수형 데이터(1 Byte) | Y | N |
smallint | 정수형 데이터(2 Byte) | Y | N |
int | 정수형 데이터(4 Byte) | Y | Y |
bigint | 정수형 데이터(8 Byte) | Y | N |
long | 정수형 데이터(8 Byte) | N | Y |
float | 부동 소수형 데이터(4 Byte) | Y | Y |
double | 부동 소수형 데이터(8 Byte) | Y | Y |
decimal | 고정 소수형 데이터 | Y | Y |
string | 문자열 데이터 | Y | Y |
char | 고정 길이 문자형 데이터 | Y | N |
varchar | 가변 길이 문자형 데이터 | Y | N |
boolean | true 또는 false 값을 갖는 데이터 | Y | Y |
binary | char 형태의 이진 데이터 | Y | Y |
timestamp | 날짜와 시간 표현 데이터, 타임스탬프 | Y | Y |
time | N | Y | |
datetime | 날짜, 시간 표현 데이터(YYYY-MM-DD HH:MM:SS) | Y | N |
date | 날짜 표현 데이터(YYYY-MM-DD) | Y | Y |
fixed | 고정된 길이의 byte array | N | Y |
uuid | 고유성이 보장되는 ID (Universally Unique IDentifier) | N | Y |
list | 동일한 유형의 데이터의 집합체 | N | Y |
array | 동일한 유형의 데이터의 집합체 | Y | N |
map | 키와 값의 쌍으로 이루어진 데이터 | Y | Y |
struct | 다양한 유형의 데이터와 연관 스키마를 포함한 데이터 | Y | Y |
uniontype | 여러 구조체 데이터 타입을 저장할 수 있는 타입 | Y | N |
데이터 유형별 상세 설정 입력 예시는 다음과 같습니다.
- <예시> array 유형의 상세 설정
ARRAY < STRUCT < place: STRING, start_year: INT > >
- <예시> map 유형의 상세 설정
MAP < STRING, ARRAY<STRING> >
- <예시> struct 유형의 상세 설정
STRUCT < place: STRING, start_year: INT >
- <예시> uniontype 유형의 상세 설정
UNIONTYPE < INT, DOUBLE, ARRAY<STRING>, STRUCT<a:INT,b:STRING> >
- <예시> list 유형의 상세 설정
LIST < STRUCT < place: STRING, start_year: INT > >
- Data Catalog 콘솔에서 Iceberg 테이블 생성 시 Object Storage에 사용자가 선택한 필드 타입으로 저장되지만, 콘솔에서 테이블 조회 시 Metastore에 저장된 정보를 조회하기 때문에 Hive에서 지원하지 않는 데이터 타입은 변환된 타입으로 조회됩니다.
- 변환 타입: list -> array, long -> bigint, time -> string, fixed -> binary, uuid -> string
- 파티션 최신화
- 파티션 키를 가진 테이블을 생성했을 경우, 파티션 값이 없기 때문에 파티션 최신화 정보 작업을 해야 합니다. 해당 작업은 다음과 같이 수행할 수 있습니다.
- Data Query: call data_catalog.system.sync_partition_metadata('{데이터베이스명}','{테이블명}','ADD') 구문 수행
- Cloud Hadoop Hive: msck repair table {table name}
- 2025년 하반기에 Data Catalog에서 해당 기능을 직접 사용할 수 있도록 제공할 예정입니다.
- 파티션 키를 가진 테이블을 생성했을 경우, 파티션 값이 없기 때문에 파티션 최신화 정보 작업을 해야 합니다. 해당 작업은 다음과 같이 수행할 수 있습니다.
스캐너를 통한 테이블 생성
스캐너를 통해 스키마를 자동으로 정의하여 테이블 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Catalog 메뉴를 차례대로 클릭해 주십시오.
- Table 메뉴를 클릭해 주십시오.
- [테이블 생성] 버튼을 클릭해 주십시오.
- 스캐너를 통한 테이블 생성을 클릭해 선택한 후 [다음] 버튼을 클릭해 주십시오.
- 스캐너 생성 화면으로 이동합니다.
- 스캐너를 생성하고 실행하면 자동으로 테이블이 생성됩니다.
- 테이블 이름은 소스 데이터의 이름을 바탕으로 자동 설정됩니다.
- 스캐너 생성 및 실행에 대한 자세한 내용은 Scanner를 참조해 주십시오.
테이블 검색 및 정보 확인
생성한 테이블을 검색하고 정보를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Catalog 메뉴를 차례대로 클릭해 주십시오.
- Table 메뉴를 클릭해 주십시오.
- 원하는 검색 조건을 입력한 후
을 클릭하여 테이블을 검색해 주십시오.
- 테이블을 클릭하여 정보를 확인해 주십시오.
- 데이터베이스: 테이블이 속한 데이터베이스 이름
- 테이블: 테이블 이름
- 위치: 테이블의 데이터가 존재하는 위치
- 테이블 유형: 테이블 유형
- 데이터 포맷: 스캔한 데이터의 형식
- 생성 일시: 테이블을 처음 생성한 일시
- 업데이트 일시: 가장 최근에 테이블 정보를 변경한 일시
- [스키마] 탭: 클릭하여 테이블에 등록된 스키마 확인
- 데이터 유형에 대한 자세한 내용은 스키마 데이터 유형을 참조해 주십시오.
- [파티션] 탭: 클릭하여 테이블에 등록된 파티션 확인
- [스키마 버전] 탭: 클릭하여 스키마 버전 목록 확인, 버전을 클릭하여 해당 버전의 스키마 확인
- [태그] 탭: 클릭하여 테이블에 등록된 태그 확인
- [속성 정보] 탭: 클릭하여 테이블 및 소스 데이터의 속성 정보 확인
- 속성 키에 대한 자세한 내용은 속성 정보를 참조해 주십시오.
- [통계] 탭 : 클릭하여 필드/파티션 단위의 통계 정보를 확인
- Data Catalog 서비스 구독시 통계 기능을 수행하고 조회할 수 있으며, 필드단위 최솟값, 최대값, 평균등 통계 데이터를 추출합니다.
- 지원하는 데이터 타입 : parquet, avro, orc, csv, json
- 모든 필드에 대해 통계를 수행한 후 일부 필드에 대해 통계를 재수행해도 모든 필드의 통계 데이터가 업데이트 됩니다.
- 일부 필드만 통계 데이터를 추출 하려면 처음부터 일부 필드에 대해서 통계 수행을 해야 합니다.
주의- 고유값은 평균 5%의 오차 범위 내에서 데이터의 대략적인 수를 추정합니다
- CSV 파일은 null 개수, true/false 개수를 추정할 수 없습니다.
속성 정보
테이블 상세 정보 영역에서 [속성 정보] 탭을 클릭하면 테이블 및 소스 데이터의 속성 정보를 확인할 수 있습니다. 정보 항목과 항목별 설명은 다음과 같습니다.
속성 키 | 설명 |
---|---|
EXTERNAL | 외부 저장 |
clusterNo | 스캔된 Cloud Data Base 상품의 클러스터 번호 |
connectionId | 테이블을 생성한 스캐너의 커넥션 ID |
connectionName | 데이터 스캔을 위해 이용한 커넥션 이름 |
created_time | 테이블 생성 일시의 유닉스 시간 표기 |
dataFormat | 데이터 소스의 형식 |
dataType | 데이터 소스의 유형 |
delimiter | 소스 데이터가 CSV 파일인 경우 구분 기호 |
inputFormat | File을 Object로 읽기 위한 Format 형식 |
isDirectory | 스캔 대상이 디렉터리인 경우 TRUE 표시 |
last_modified_time | 테이블 업데이트 일시의 유닉스 시간 표기 |
numFiles | 스캔 대상이 디렉터리인 경우 스캔한 총 파일 수 |
objectstorageContentLength | 스캔된 Object Storage Content 디렉토리 내 파일들의 ContentLength 합 |
objectstorageContentType | 스캔된 Object Storage 디렉토리의 공통된 ContentType |
objectstorageLastModified | 스캔된 Object Storage 디렉토리 내 가장 최근 수정 파일의 수정시간 |
outputFormat | Object를 File로 쓰기 위한 Format 형식 |
rowTag | 행을 정의하는 XML 태그 |
scannerId | 테이블을 생성한 스캐너 ID |
scannerName | 테이블을 생성한 스캐너 이름 |
serializationLib | Serializer and Deserializer Library |
serde.separatorChar | 데이터의 스키마를 결정하기 위한 구분 기호 |
serde.quoteChar | 문자열을 데이터로 인식할 기호 |
serde.escapeChar | 데이터로 인식된 문자열 값 안에 포함된 문자를 제거하기 위한 문자 |
skip.header.line.count | 제외할 헤더 라인 수 |
totalSize | 스캔 대상이 디렉터리인 경우 스캔한 총 데이터 용량 |
transient_lastDdlTime | 테이블 DDL 마지막 변경 일시의 유닉스 시간 표기 |
mysqlCollation | MySQL 테이블의 문자열 정렬 설정 |
mysqlDataSize | MySQL 테이블의 데이터 크기 |
mysqlIndexSize | MySQL 테이블의 인덱스 크기 |
mysqlIndexes | MySQL 테이블의 인덱스 수 |
mysqlRows | MySQL 테이블의 저장된 행(레코드) 수 |
mysqlTableSize | MySQL 테이블의 총 크기 |
mssqlCollation | MSSQL 테이블의 문자열 정렬 설정 |
mssqlDataSize | MSSQL 테이블의 데이터 크기 |
mssqlIndexSize | MSSQL 테이블의 인덱스 크기 |
mssqlIndexes | MSSQL 테이블의 인덱스 수 |
mssqlRows | MSSQL 테이블의 저장된 행(레코드) 수 |
mssqlTableSize | MSSQL 테이블의 총 크기 |
postgresqlCollation | PostgreSQL 테이블의 문자열 정렬 설정 |
postgresqlDataSize | PostgreSQL 테이블의 데이터 크기 |
postgresqlIndexSize | PostgreSQL 테이블의 인덱스 크기 |
postgresqlIndexes | PostgreSQL 테이블의 인덱스 수 |
postgresqlRows | PostgreSQL 테이블의 저장된 행(레코드) 수 |
postgresqlTableSize | PostgreSQL 테이블의 총 크기 |
mongodbAvgObjSize | MongoDB 컬렉션의 평균 문서 크기 |
mongodbFreeStorageSize | MongoDB 데이터베이스에서 사용 가능한 여유 저장 공간 크기 |
mongodbIndexSize | MongoDB 컬렉션의 인덱스 크기 |
mongodbIndexes | MongoDB 컬렉션에 있는 인덱스의 수 |
mongodbRowCount | MongoDB 컬렉션에 저장된 문서(레코드)의 수 |
mongodbSize | MongoDB 데이터베이스의 크기 |
mongodbStorageSize | MongoDB 데이터베이스의 저장소 크기 |
mongodbTotalSize | MongoDB 데이터베이스의 총 크기 |
compressionType | 스캔한 파일이 압축파일인 경우 압축 파일 확장자 |
테이블 수정
생성한 테이블의 정보를 수정하거나, 스키마의 버전을 선택하는 방법은 다음과 같습니다.
테이블 이름과 테이블이 속한 데이터베이스는 수정할 수 없습니다.
Iceberg 유형의 테이블은 스키마를 수정할 수 없습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Catalog 메뉴를 차례대로 클릭해 주십시오.
- Table 메뉴를 클릭해 주십시오.
- 수정할 테이블을 클릭하여 선택한 후 [수정] 버튼을 클릭해 주십시오.
- 테이블 수정 화면에서 테이블의 정보를 수정해 주십시오.
- 소스 데이터의 위치, 테이블 설명, 소스 데이터 포맷, 스키마, 태그를 수정할 수 있습니다.
- 스키마 영역의 버전 드롭다운 메뉴를 클릭하면 수정할 스키마 버전을 선택할 수 있습니다.
- 각 정보 항목에 대한 자세한 내용은 테이블 생성을 참조해 주십시오.
- [저장] 버튼을 클릭해 주십시오.
테이블 삭제
생성한 테이블을 삭제하는 방법은 다음과 같습니다.
- 삭제를 누르면 테이블의 버전 정보, 태그, 프로퍼티 등 관련된 모든 메타 정보가 삭제됩니다.
- 속성 정보에 EXTERNAL=true 값이 없는 경우(Managed table인 경우) Object Storage의 실제 데이터가 삭제될 수 있습니다.
- 삭제한 테이블 및 데이터는 복구할 수 없습니다.
Iceberg 유형의 테이블을 삭제해도 실제 Object Storage의 데이터는 지워지지 않습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Catalog 메뉴를 차례대로 클릭해 주십시오.
- Table 메뉴를 클릭해 주십시오.
- 삭제할 테이블을 클릭하여 선택한 후 [삭제] 버튼을 클릭해 주십시오.
- 알림 팝업 창이 나타나면 주의 사항을 확인한 후 [삭제] 버튼을 클릭해 주십시오.