본문으로 건너뛰기
버전: v0.1.0

데이터셋

데이터셋은 D.Hub에서 구조화된 테이블 데이터를 관리하는 핵심 리소스입니다. 내부적으로 Delta Lake 포맷을 사용하여 스키마 관리, 버전 추적, 트랜잭션 지원을 제공합니다.

데이터셋 개요

데이터셋은 컬렉션에 포함되는 주요 아이템 유형 중 하나로, 다음과 같은 특징을 가집니다.

  • 스키마 기반 관리: 각 컬럼의 이름, 데이터 타입, 설명을 명확히 정의합니다.
  • 버전 관리: 데이터가 변경될 때마다 새 버전이 자동으로 기록됩니다.
  • Delta Lake 기반: ACID 트랜잭션, 타임 트래블(Time Travel), 스키마 진화(Schema Evolution)를 지원합니다.
  • S3 호환 스토리지: 오브젝트 스토리지에 데이터가 저장됩니다.

데이터셋 유형 (서브타입)

D.Hub 데이터셋은 백엔드 저장 방식에 따라 다음 4개의 서브타입(type)으로 구분됩니다. 이 값은 생성 시 명시적으로 선택해야 하며, 임의 문자열을 보내면 API가 422로 거부합니다.

서브타입 (type)설명
delta파일 업로드 및 파이프라인 기반의 Delta Lake 테이블 (기본 사용 케이스)
kafka실시간 메시지 스트림에서 데이터를 수집하는 스트리밍 데이터셋
rest외부 REST 엔드포인트를 데이터 소스로 노출
object파일/객체 스토리지 자체를 데이터 단위로 등록

이전 버전의 table 서브타입은 폐기되었으며, 매니페스트 레벨 마이그레이션 후에만 신규 생성/수정이 가능합니다.

데이터셋 상세 화면

컬렉션 트리에서 데이터셋을 선택하면 오른쪽 패널에 상세 정보가 표시됩니다.

스키마 탭 (Schema)

스키마 탭에서는 데이터셋의 구조를 확인하고 편집할 수 있습니다.

  • 컬럼 목록: 각 컬럼의 이름, 데이터 타입, 설명이 테이블 형태로 표시됩니다.
  • 타입 정보: Arrow 기반의 정확한 데이터 타입이 표시됩니다 (예: int64, string, timestamp).
  • Nullable 여부: 각 컬럼이 NULL 값을 허용하는지 확인할 수 있습니다.
  • 스키마 편집: 편집 모드에서 컬럼 이름, 타입, 설명을 수정할 수 있습니다.
정보

스키마는 CSV 업로드 시 자동으로 추론되며, 필요한 경우 수동으로 수정할 수 있습니다.

데이터 탭 (Data)

데이터 탭에서는 실제 저장된 데이터를 테이블 형태로 조회하고 분석할 수 있습니다.

  • 페이지네이션: 대량의 데이터를 페이지 단위로 탐색합니다.
  • SQL Scratch Pad: 접을 수 있는 SQL 편집기가 내장되어 있어, 직접 쿼리를 작성하여 데이터를 검색하고 필터링할 수 있습니다.
  • Map View: 지리(위도/경도) 데이터가 포함된 경우 자동으로 지도 시각화 뷰가 활성화됩니다.
  • Chart View: 시계열 데이터가 감지되면 자동으로 차트 시각화 뷰가 활성화됩니다.

버전 탭 (Versions)

데이터셋의 버전 이력을 타임라인 형태로 확인할 수 있습니다.

  • 버전 목록: 각 버전의 수정 시각과 Latest 여부를 표시합니다. 작성자(author) 셀에는 소유자 호버 미리보기가 적용됩니다.
  • 버전 미리보기: 특정 버전을 선택하여 해당 시점의 데이터를 조회합니다.
  • 버전 복원(Restore): 이전 버전을 현재 버전으로 복원할 수 있습니다.

References 탭 (참조)

데이터셋을 backing dataset으로 사용하는 온톨로지 자원(엔티티 타입·관계 타입)을 한눈에 확인할 수 있는 탭입니다.

스크린샷 TODO

Dataset Detail의 References 탭. backing dataset으로 이 데이터셋을 사용하는 EntityType/RelationType 카드가 나열되어야 합니다.

  • 표시 항목: 참조 자원의 종류(엔티티/관계), 별칭, 소속 컬렉션, 소유자, 별칭 ↔ 시스템 이름.
  • 카드 클릭 시 해당 온톨로지 모델·자원 편집 화면으로 이동합니다.
  • 참조가 없으면 빈 상태 안내가 나타납니다.

References 탭은 온톨로지 정의가 변경될 때 영향 범위를 빠르게 파악하는 용도입니다.

메타데이터

상세 화면 상단에서 데이터셋의 메타데이터를 확인하고 편집할 수 있습니다.

필드설명
Name데이터셋의 고유 식별자 (영문 소문자, 숫자, 언더스코어)
Alias사용자에게 표시될 별칭
Category리소스 분류 (dataset 고정)
Type서브타입: delta / kafka / rest / object 중 하나
Tags검색 및 분류를 위한 태그 목록
Description데이터셋에 대한 설명

CSV / JSON 업로드 — 미리보기 + AI 컬럼 명명

D.Hub은 CSV/JSON 파일을 통한 간편한 데이터 업로드를 지원합니다. 업로드 흐름은 미리보기 → 검토 → 적용의 3단계입니다.

업로드 절차

  1. 파일 선택: 데이터셋 상세 화면에서 Upload 버튼을 클릭하거나, 컬렉션 트리/폴더 위에 파일을 드래그 앤 드롭합니다.
  2. 헤더 편집 가능한 미리보기: 시스템이 헤더와 데이터를 분석하여 컬럼 타입을 추론하고, 첫 N행 프리뷰를 보여줍니다. 컬럼명/타입은 즉시 수정 가능합니다.
  3. AI 컬럼 명명: 헤더가 모호하거나 비어 있을 때 AI로 컬럼명 생성 버튼을 누르면 LLM이 데이터를 분석해 컬럼명을 제안합니다.
  4. append 검토 단계: 기존 데이터셋에 추가(append)하는 경우, 기존 스키마와 새 파일의 컬럼/타입 차이가 별도 단계에서 표시됩니다. 충돌 컬럼은 빨간색으로, 새 컬럼은 파란색으로 강조됩니다.
  5. 업로드 실행: 확인 후 업로드 버튼을 누르면 데이터가 Delta Lake 테이블로 변환되어 저장됩니다.

CSV 파일의 첫 번째 행은 반드시 컬럼 헤더여야 합니다. 헤더가 없는 파일은 업로드 시 자동으로 column_0, column_1과 같은 기본 이름이 부여되며, 미리보기 단계에서 AI 명명으로 의미 있는 이름을 받을 수 있습니다.

컬럼명 규칙

컬럼명은 다음 규칙을 통과해야 합니다(통과하지 않으면 빨간 인라인 에러로 표시됨).

  • 빈 이름 금지
  • 영문/숫자/언더스코어/한글 허용. /, \ 등 경로 문자와 제어 문자는 거부
  • SQL 예약어와 충돌하지 않음 (예약어를 사용하려면 별칭으로만 사용 권장)
  • 같은 스키마 안에서 컬럼명 중복 금지

플레이스홀더 헤더(예: Column 1, Untitled)는 그대로 두면 안내 가이드 메시지가 유지되어 사용자가 잊지 않도록 합니다.

업로드 시 주의사항

  • 파일 인코딩: UTF-8 인코딩을 권장합니다.
  • 구분자: 쉼표(,)가 기본 구분자이며, 파일 내용에 따라 자동 감지됩니다.
  • 데이터 크기: 대용량 파일의 경우 업로드 시간이 길어질 수 있습니다.
경고

업로드 중 브라우저를 닫거나 페이지를 이동하면 업로드가 중단될 수 있습니다. 업로드 완료 메시지를 확인한 후 다른 작업을 수행하세요.

지원 데이터 타입

D.Hub 데이터셋은 Apache Arrow 기반의 다양한 데이터 타입을 지원합니다.

기본 타입

타입설명예시
string문자열 (UTF-8)"Hello", "서울"
large_string대용량 문자열긴 텍스트 데이터
boolean참/거짓true, false

정수 타입

타입범위설명
int8-128 ~ 1278비트 정수
int16-32,768 ~ 32,76716비트 정수
int32-2^31 ~ 2^31-132비트 정수
int64-2^63 ~ 2^63-164비트 정수
uint80 ~ 255부호 없는 8비트 정수
uint160 ~ 65,535부호 없는 16비트 정수
uint320 ~ 2^32-1부호 없는 32비트 정수
uint640 ~ 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대용량 바이너리 데이터

다음 단계