Data Management and Distributed Processing Standard v1.3
Cloudflare Workers 환경에 최적화된 NewsFork 데이터 관리 및 분산 처리 표준 v1.3입니다. 파일명에서 날짜를 배제하고, 효율적인 청킹(Chunking)과 병렬 처리를 통해 시스템 가용성을 극대화하는 데 초점을 맞춥니다.
1. 전역 식별자 및 파티션 표준
섹션 제목: “1. 전역 식별자 및 파티션 표준”- ID 체계:
domain_id:<authority>:<country>:<registered_domain>(예:gov:sg:ica.gov.sg)seed_id:<domain_id>::<content_type>(예:gov:sg:ica.gov.sg::news)
- 폴더 구조 (Hive-style): 시계열 정보는 폴더 경로에만 포함, 파일명에는 넣지 않습니다.
- 구조:
[root]/country={cc}/category={cat}/content={nature}/date=YYYY-MM-DD/
- 구조:
2. 파일 네이밍 및 청킹 표준
섹션 제목: “2. 파일 네이밍 및 청킹 표준”| 데이터 유형 | 고정 파일명 규칙 | 권장 청크 크기 | 비고 |
|---|---|---|---|
| Raw Data | raw_NNNN.json | 10MB ~ 20MB | 수집 원본 |
| Cleaned Data | cleaned_NNNN.json | 20MB 내외 | 스키마 정제 완료 |
| Enriched Data | final_NNNN.json | 5MB ~ 10MB | LLM 요약/번역 등 |
| Evidence | robots.txt, index.html | 원본 크기 | 수집 당시 증거 |
| Metadata | raw_metadata.json | < 1MB | 파티션 전체 청크 요약 |
3. Cloudflare Workers 분산 처리 원칙
섹션 제목: “3. Cloudflare Workers 분산 처리 원칙”- 메모리 관리:
JSON.parse()시 메모리 팽창(3~5배)을 고려하여 개별 청크는 20MB 이하로 유지합니다. - 병렬성 (Fan-out): 단일 Worker의 루프 처리를 지양하고, Cloudflare Queues로 여러 Worker가 각 청크를 병렬 처리하도록 설계합니다.
- Streaming: 대용량 파일 접근 시
object.body.getReader()를 통한 Streaming API 사용을 의무화합니다. - 비용 최적화: 너무 작은 파일(1MB 미만)은 R2 API 호출 비용을 증가시키므로, 10MB 단위를 골디락스 존으로 권장합니다.