스키마
스키마 (Schemas)
아이스버그 테이블이 지원하는 데이터 타입 종류를 한눈에 정리해드릴게요. 이 문서의 타입 표를 보면 boolean부터 구조적인 struct, list, map까지 모든 기본 타입을 확인할 수 있어요. 각 타입이 어떤 제약이나 변환 가능성을 갖는지도 함께 살펴볼게요.
출처: 문서
본문
아이스버그 테이블은 다음 타입들을 지원해요.
| 타입 | 설명 | 참고 |
|---|---|---|
| boolean | 참 또는 거짓 | |
| int | 32비트 부호 있는 정수 | long으로 승격(promote)할 수 있어요 |
| long | 64비트 부호 있는 정수 | |
| float | 32비트 IEEE 754 부동소수점 | double로 승격할 수 있어요 |
| double | 64비트 IEEE 754 부동소수점 | |
| decimal(P,S) | 고정 소수점 decimal; 정밀도 P, 스케일 S | 스케일은 고정되고 정밀도는 38 이하여야 해요 |
| date | 시간대나 시간이 없는 달력 날짜 | |
| time | 날짜와 시간대가 없는 하루 중 시각 | 마이크로초 단위로 저장돼요 |
| timestamp | 시간대가 없는 타임스탬프 | 마이크로초 단위로 저장돼요 |
| timestamptz | 시간대가 있는 타임스탬프 | 마이크로초 단위로 저장돼요 |
| timestamp_ns | 시간대가 없는 타임스탬프, 나노초 정밀도 | 나노초 단위로 저장돼요; v3에서 추가됐어요 |
| timestamptz_ns | 시간대가 있는 타임스탬프, 나노초 정밀도 | 나노초 단위로 저장돼요; v3에서 추가됐어요 |
| string | 임의 길이의 문자 시퀀스 | UTF-8로 인코딩돼요 |
| uuid | 범용 고유 식별자 | |
| fixed(L) | 길이 L의 고정 길이 바이트 배열 | |
| binary | 임의 길이 바이트 배열 | |
| variant | 반정형 데이터 (JSON과 유사) | v3에서 추가됐어요 |
| geometry(C) | CRS 파라미터가 있는 지리 공간 피처 | 선형 가장자리 보간(linear edge-interpolation); v3에서 추가됐어요 |
| geography(C, A) | CRS와 가장자리 알고리즘이 있는 지리 공간 피처 | 비선형 가장자리 보간(non-linear edge-interpolation); v3에서 추가됐어요 |
| unknown | 아직 결정되지 않은 컬럼을 위한 플레이스홀더 타입 | 반드시 optional이어야 해요; v3에서 추가됐어요 |
| struct<...> | 어떤 데이터 타입이든 이름 있는 필드로 구성된 레코드 | |
| list |
어떤 데이터 타입이든 요소로 가진 리스트 | |
| map<K, V> | 어떤 데이터 타입이든 키와 값을 가진 맵 |
아이스버그는 테이블 스키마의 각 필드를 테이블 안에서 절대 재사용되지 않는 ID로 추적해요. 더 자세한 내용은 정확성 보장(correctness guarantees) 문서를 확인해주세요.