
데이터 분석 라이브러리 개발기 (1)
두줄요약
PySpark 분석의 경로·설정 관리와 Notebook·batch 환경 차이를 DevPlay Analytics로 추상화했습니다. SQL 인터페이스와 문서화·테스트를 제공해 일일 200종 이상 테이블 적재에 활용했습니다.
문제 상황
- S3 데이터 경로와 계층별 입출력 위치를 분석가가 직접 기억·관리해야 하는 부담
- credential을 포함한 설정값의 안전한 관리 필요
- Jupyter Notebook과 Airflow batch 간 공통 유틸 부재로 길어진 개발·배포 사이클
해결 방법
- 데이터 계층과 테이블 이름 기반으로 로드·저장하는 DevPlay Analytics 라이브러리 개발
- SQL 모듈에서 계층별 테이블을 Spark SQL temp table로 등록해 SQL 질의 지원
- Vault 기반 설정 계층으로 환경별 경로와 credential을 코드에서 분리
구조와 흐름
- SQL 계층이 데이터 계층을 호출하고, 데이터 계층이 IO·설정 계층을 통해 S3 입출력 수행
- 게임·환경 맥락을
devplay_analytics객체에 보관해 환경별 설정 로드 - 공통 저장 옵션과 분석 유틸을 라이브러리화해 Notebook·batch 환경에서 동일하게 활용
성능/운영 포인트
- 저장 전 적절한 파티션 수를 계산해 repartition 처리
- Sphinx docstring 문서와 pytest doctest로 API 예시의 실행 가능성 검증
- 1.0 릴리즈 후 일일 200종 이상의 테이블 적재와 대부분의 DevPlay 분석 코드 적용


