Datasets API
데이터셋(Dataset)은 D.Hub에서 관리되는 데이터의 저장소 단위입니다. Delta Lake 형식을 기반으로 하며, 스키마와 파티션 옵션 등을 관리합니다.
1. List Datasets
모든 데이터셋 목록을 조회합니다.
Request
GET /datasets/
Response
{
"items": { ... },
"token": "..."
}
2. Create Dataset
새로운 데이터셋을 생성합니다.
Request
POST /datasets/
Body Schema (Dataset)
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | 데이터셋 이름 |
alias | string | No | 별칭 |
type | string | No | 데이터셋 유형 (예: table, stream) |
schema | object | Yes | 데이터 스키마 정의 (JSON Schema 형식) |
options | object | No | Delta Lake 설정 옵션 |
tags | array[string] | No | 태그 목록 |
Options Object
| Field | Description |
|---|---|
partitions | 파티션 컬럼 목록 (콤마로 구분된 문자열) |
log_retention_duration | 로그 보관 기간 (예: interval 30 days) |
deleted_file_retention_duration | 삭제된 파일 보관 기간 |
Example
{
"name": "customer_transactions",
"type": "table",
"schema": {
"type": "struct",
"fields": [
{"name": "id", "type": "string", "nullable": false, "metadata": {}},
{"name": "amount", "type": "double", "nullable": true, "metadata": {}},
{"name": "trans_date", "type": "string", "nullable": true, "metadata": {}}
]
},
"options": {
"partitions": "trans_date",
"log_retention_duration": "interval 7 days"
}
}
3. Update Dataset
데이터셋 메타데이터를 수정합니다. (주의: 스키마 변경은 호환성 검토가 필요할 수 있습니다.)
Request
PUT /datasets/{dataset_id}
Body Schema (DatasetUpdate)
| Field | Type | Description |
|---|---|---|
schema | object | 스키마 변경 |
options | object | 옵션 변경 |
tags | array[string] | 태그 변경 |
| ... | ... | (기타 기본 필드) |
4. Delete Dataset
데이터셋을 삭제합니다. (실제 데이터 파일 삭제 여부는 정책에 따름)
Request
DELETE /datasets/{dataset_id}