데이터셋
데이터셋은 D.Hub에서 구조화된 테이블 데이터를 관리하는 핵심 리소스입니다. 내부적으로 Delta Lake 포맷을 사용하여 스키마 관리, 버전 추적, 트랜잭션 지원을 제공합니다.
데이터셋 개요
데이터셋은 컬렉션에 포함되는 주요 아이템 유형 중 하나로, 다음과 같은 특징을 가집니다.
- 스키마 기반 관리: 각 컬럼의 이름, 데이터 타입, 설명을 명확히 정의합니다.
- 버전 관리: 데이터가 변경될 때마다 새 버전이 자동으로 기록됩니다.
- Delta Lake 기반: ACID 트랜잭션, 타임 트래블(Time Travel), 스키마 진화(Schema Evolution)를 지원합니다.
- S3 호환 스토리지: 오브젝트 스토리지에 데이터가 저장됩니다.
데이터셋 유형
D.Hub은 두 가지 유형의 데이터셋을 지원합니다.
| 유형 | 설명 |
|---|---|
| Delta Dataset | 파일 업로드 및 파이프라인 기반의 일반 테이블 데이터셋 |
| Kafka Dataset | 실시간 메시지 스트림에서 데이터를 수집하는 스트리밍 데이터셋 |
데이터셋 상세 화면
컬렉션 트리에서 데이터셋을 선택하면 오른쪽 패널에 상세 정보가 표시됩니다.
스키마 탭 (Schema)
스키마 탭에서는 데이터셋의 구조를 확인하고 편집할 수 있습니다.
- 컬럼 목록: 각 컬럼의 이름, 데이터 타입, 설명이 테이블 형태로 표시됩니다.
- 타입 정보: Arrow 기반의 정확한 데이터 타입이 표시됩니다 (예:
int64,string,timestamp). - Nullable 여부: 각 컬럼이 NULL 값을 허용하는지 확인할 수 있습니다.
- 스키마 편집: 편집 모드에서 컬럼 이름, 타입, 설명을 수정할 수 있습니다.
정보
스키마는 CSV 업로드 시 자동으로 추론되며, 필요한 경우 수동으로 수정할 수 있습니다.
데이터 탭 (Data)
데이터 탭에서는 실제 저장된 데이터를 테이블 형태로 조회하고 분석할 수 있습니다.
- 페이지네이션: 대량의 데이터를 페이지 단위로 탐색합니다.
- SQL Scratch Pad: 접을 수 있는 SQL 편집기가 내장되어 있어, 직접 쿼리를 작성하여 데이터를 검색하고 필터링할 수 있습니다.
- Map View: 지리(위도/경도) 데이터가 포함된 경우 자동으로 지도 시각화 뷰가 활성화됩니다.
- Chart View: 시계열 데이터가 감지되면 자동으로 차트 시각화 뷰가 활성화됩니다.
버전 탭 (Versions)
데이터셋의 버전 이력을 타임라인 형태로 확인할 수 있습니다.
- 버전 목록: 각 버전의 수정 시각과 Latest 여부를 표시합니다.
- 버전 미리보기: 특정 버전을 선택하여 해당 시점의 데이터를 조회합니다.
- 버전 복원(Restore): 이전 버전을 현재 버전으로 복원할 수 있습니다.
메타데이터
상세 화면 상단에서 데이터셋의 메타데이터를 확인하고 편집할 수 있습니다.
| 필드 | 설명 |
|---|---|
| Name | 데이터셋의 고유 식별자 (영문 소문자, 숫자, 언더스코어) |
| Alias | 사용자에게 표시될 별칭 |
| Category | 리소스 분류 (기본값: dataset) |
| Type | 데이터셋 유형 (사용자 정의) |
| Tags | 검색 및 분류를 위한 태그 목록 |
| Comment | 데이터셋에 대한 설명 |
CSV 업로드
D.Hub은 CSV 파일을 통한 간편한 데이터 업로드를 지원합니다.
업로드 절차
- 파일 선택: 데이터셋 상세 화면에서 Upload 버튼을 클릭하고 CSV 파일을 선택합니다.
- 스키마 자동 추론: 시스템이 CSV 파일의 헤더와 데이터를 분석하여 각 컬럼의 데이터 타입을 자동으로 추론합니다.
- 데이터 타입 확인: 추론된 스키마를 검토하고 필요한 경우 타입을 수정합니다.
- 업로드 실행: 확인 후 Upload 버튼을 클릭하면 데이터가 Delta Lake 테이블로 변환되어 저장됩니다.
팁
CSV 파일의 첫 번째 행은 반드시 컬럼 헤더여야 합니다. 헤더가 없는 파일은 업로드 시 자동으로 column_0, column_1과 같은 기본 이름이 부여됩니다.
업로드 시 주의사항
- 파일 인코딩: UTF-8 인코딩을 권장합니다.
- 구분자: 쉼표(
,)가 기본 구분자이며, 파일 내용에 따라 자동 감지됩니다. - 데이터 크기: 대용량 파일의 경우 업로드 시간이 길어질 수 있습니다.
경고
업로드 중 브라우저를 닫거나 페이지를 이동하면 업로드가 중단될 수 있습니다. 업로드 완료 메시지를 확인한 후 다른 작업을 수행하세요.
지원 데이터 타입
D.Hub 데이터셋은 Apache Arrow 기반의 다양한 데이터 타입을 지원합니다.
기본 타입
| 타입 | 설명 | 예시 |
|---|---|---|
string | 문자열 (UTF-8) | "Hello", "서울" |
large_string | 대용량 문자열 | 긴 텍스트 데이터 |
boolean | 참/거짓 | true, false |
정수 타입
| 타입 | 범위 | 설명 |
|---|---|---|
int8 | -128 ~ 127 | 8비트 정수 |
int16 | -32,768 ~ 32,767 | 16비트 정수 |
int32 | -2^31 ~ 2^31-1 | 32비트 정수 |
int64 | -2^63 ~ 2^63-1 | 64비트 정수 |
uint8 | 0 ~ 255 | 부호 없는 8비트 정수 |
uint16 | 0 ~ 65,535 | 부호 없는 16비트 정수 |
uint32 | 0 ~ 2^32-1 | 부호 없는 32비트 정수 |
uint64 | 0 ~ 2^64-1 | 부호 없는 64비트 정수 |
실수 타입
| 타입 | 정밀도 | 설명 |
|---|---|---|
float16 | 반정밀도 | 16비트 부동소수점 |
float32 | 단정밀도 | 32비트 부동소수점 |
float64 | 배정밀도 | 64비트 부동소수점 |
날짜/시간 타입
| 타입 | 설명 | 예시 |
|---|---|---|
date32 | 날짜 (일 단위) | 2025-01-15 |
date64 | 날짜 (밀리초 단위) | 2025-01-15 |
time32 | 시간 (초/밀리초) | 14:30:00 |
time64 | 시간 (마이크로/나노초) | 14:30:00.123456 |
timestamp | 타임스탬프 (타임존 지원) | 2025-01-15T14:30:00+09:00 |
duration | 시간 간격 | 경과 시간 |
복합 타입
| 타입 | 설명 |
|---|---|
list | 동일 타입 요소의 배열 |
struct | 여러 필드를 가진 구조체 |
binary | 바이너리 데이터 |
large_binary | 대용량 바이너리 데이터 |