Data Warehouse
-
[대규모 데이터 모델링] Dimensional Modeling (Fact & Dimension)Data Warehouse 2025. 2. 13. 18:38
들어가며데이터를 다루는 일을 하다 보면, 결국 어떻게 저장하고 어떻게 바라볼 것인가라는 질문으로 귀결됩니다. 특히 분석과 리포팅을 목적으로 하는 시스템에서는 단순히 데이터를 쌓는 것보다, 사람이 이해하기 쉬운 구조로 모델링하는 것이 훨씬 중요해집니다.이번 글에서는 데이터 모델링 기법 중에서도 분석 시스템에서 가장 널리 사용되는 Dimensional Modeling에 대해 정리해보려고 합니다. 데이터 웨어하우스나 데이터 마트 설계 과정에서 한 번쯤은 반드시 만나게 되는 개념이기 때문에, 전체적인 흐름을 차분히 짚어보겠습니다. Dimensional Modeling이란 무엇인가요?Dimensional Modeling은 분석과 조회를 최우선 목표로 하는 데이터 모델링 기법입니다. 트랜잭션 처리(OLTP)를 위한..
-
[DuckDB] DuckDB 와 S3 연동하기Data Warehouse 2023. 9. 7. 07:29
- 목차 들어가며.DuckDB 는 가볍고 빠른 컬럼지향 데이터베이스로, 로컬 환경뿐 아니라 클라우드 데이터까지 직접 쿼리할 수 있는 기능을 제공합니다. 특히 AWS S3 또는 S3 호환 스토리지와의 연동을 통해 버킷에 저장된 CSV, Parquet, JSON 파일을 다운로드 없이 바로 분석할 수 있다는 점이 큰 장점입니다. 이번 글에서는 DuckDB에서 MinIO를 사용해 S3 연동을 설정하는 방법과 실제 사용 예제를 다룹니다. MinIO는 AWS S3 API 와 호환되는 오브젝트 스토리지로, 로컬 환경이나 프라이빗 클라우드에서 S3와 동일한 방식으로 데이터를 관리할 수 있습니다. 글에서는 MinIO 서버를 연동하는 과정, 인증 방식, DuckDB의 s3() 함수를 이용한 쿼리 실행, 다양한 파일 포맷 ..
-
[DuckDB] SET threads에 따른 성능 실험Data Warehouse 2023. 8. 7. 13:31
- 목차 들어가며.대용량 데이터를 분석할 때 쿼리 속도를 결정짓는 핵심 요소 중 하나는 CPU 코어 활용도입니다. DuckDB는 단일 프로세스 기반의 경량 분석 엔진이지만, 멀티코어 환경에서의 병렬 처리를 위해 SET threads 설정을 제공합니다. 특히 Pandas 와 같은 도구는 단일 스레드로 처리하는 경우가 많지만, DuckDB는 설정된 스레드 수만큼 CPU를 적극적으로 활용하여 병렬 연산을 수행합니다. 그렇다면 스레드 수를 늘리는 것만으로 쿼리 속도와 CPU 사용량에 얼마나 큰 차이가 생길까요? 그리고 DuckDB의 Vectorized Execution 파이프라인이 스레드 개수 증가에 따라 어떻게 확장(scale-up) 되는지에 대해서 알아봅니다. 이 글에서는 8억 행(800,000,000 r..
-
[DuckDB] DuckDB 의 다양한 CSV 처리 동작 알아보기Data Warehouse 2023. 4. 12. 16:41
- 목차 Delimiter 에 따른 처리 방법.csv 파일은 기본적으로 콤마 (,) 를 기준으로 데이터를 구분하게 됩니다. 하지만 실제로 데이터를 처리할 때에는 콤마 외에도 여러 구분자를 사용할 수 있습니다. 아래의 스크립트 파일은 Pandas 를 통해서 다양한 구분자를 가지는 CSV 파일들을 생성합니다. 탭, 세미콜론, 파이프 등으로 구성된 CSV 파일들이 생성됩니다. import osimport pandas as pd# 저장 경로output_dir = 'csv_test/data/delimiter_examples'os.makedirs(output_dir, exist_ok=True)# 샘플 데이터records = [ {"id": 1, "name": "Alice", "age": 30}, {"i..
-
[DuckDB] 로컬 파일 처리하기Data Warehouse 2023. 4. 1. 18:24
- 목차 들어가며.데이터 분석을 할 때 가장 흔히 마주치는 상황 중 하나가 바로 로컬 파일, 특히 CSV, Parquet, JSON 같은 데이터셋을 다루는 일입니다. 보통은 이 파일들을 Pandas로 불러와 처리하거나, 대용량일 경우 Spark로 적재해 쿼리를 실행하곤 합니다. 하지만 이 방식들은 작은 데이터셋에는 편리하지만, 파일 크기가 수 GB를 넘어가면 메모리 한계나 속도 문제에 부딪히기 쉽습니다. 이때 등장하는 것이 바로 DuckDB입니다. DuckDB는 “개발자 친화적인 SQLite for Analytics” 라고 불릴 만큼 가볍고 빠른 임베디드 OLAP 엔진입니다. 설치와 설정이 필요 없고, 단일 .duckdb 파일로 모든 데이터를 관리할 수 있습니다. 특히 강력한 점은 ETL 과정 없이도 로..