51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# Excel KV Middleware & Schema Editor
|
|
|
|
복잡한 구조의 엑셀 데이터를 고성능 Key-Value Store(**Microsoft Garnet**)에 적재하고, 표준 스키마를 정의/편집하는 시스템입니다.
|
|
|
|
## 🚀 Key Features
|
|
|
|
### 1. High-Performance Ingestion
|
|
- **Pure .NET 8.0**: Python 등 외부 의존성 없는 단일 플랫폼.
|
|
- **Embedded Garnet**: Redis 호환 고성능 인메모리 스토어 내장.
|
|
- **2D Flattening**:
|
|
- 병합된 Cross-Tab 엑셀 헤더를 논리적 Key로 자동 평탄화.
|
|
- Key Format: `{Sheet}:{LeftAxis}*{TopAxis}` (예: `Station.No1*Concrete.TypeA`)
|
|
|
|
### 2. Smart Schema Management
|
|
- **Interactive Region**: 헤더와 데이터 영역을 동적으로 지정 가능 (`RegionConfig`).
|
|
- **Unmerge & Fill**: 병합된 셀을 자동으로 분리하여 데이터 컨텍스트 유지.
|
|
- **SI Unit System**: 물리적 단위(`m`, `m3`, `kg`)를 코드 레벨(`SiUnit` Enum)에서 엄격하게 관리.
|
|
|
|
### 3. Editor UI (In Progress)
|
|
- **Blazor Web App**: 웹 기반의 협업 가능한 스키마 편집기.
|
|
- **CRDT Sync**: 다수 사용자가 동시 편집 시 충돌 없는 병합 지원 예정.
|
|
|
|
## 🛠 Project Structure
|
|
|
|
- **`ExcelKv.Core`**: 핵심 로직 라이브러리 (SI Unit, ExcelLoader, SchemaRegistry).
|
|
- **`ExcelKvPoC`**: 데이터 파싱 및 적재 검증용 콘솔 앱.
|
|
- **`SchemaEditor`**: 표준 스키마 편집용 Blazor 웹 애플리케이션.
|
|
|
|
## 🚦 Getting Started
|
|
|
|
### Prerequisites
|
|
- .NET SDK 8.0+
|
|
|
|
### Run PoC (Excel Ingestion)
|
|
```bash
|
|
dotnet run --project ExcelKvPoC
|
|
```
|
|
- 실행 시 `sample.txt`에 파싱된 Key-Value 결과가 출력됩니다.
|
|
|
|
### Run Editor (Blazor)
|
|
```bash
|
|
dotnet run --project SchemaEditor
|
|
```
|
|
|
|
## 📝 Roadmap
|
|
- [x] Excel Parsing & 2D Flattening
|
|
- [x] Garnet Integration (Embedded)
|
|
- [x] SI Unit System Definition
|
|
- [ ] Blazor Editor UI Implementation
|
|
- [ ] CRDT Synchronization Layer
|