목록 보기
데이터 분석 라이브러리 개발기 (1)
백엔드

데이터 분석 라이브러리 개발기 (1)

데브시스터즈
데브시스터즈
2020년 11월 27일

두줄요약

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 분석 코드 적용

다음 읽기

#Python 주제를 이어서 읽기

데이터 분석 라이브러리 개발기 (2) - 통합 테스팅과 문서화를 동시에 잡는 방법

MinIO와 pytest fixture로 S3 의존성 없는 PySpark 통합 테스트 환경을 구축했습니다.\npytest doctest와 Sphinx를 결합해 실행 가능한 API 문서를 유지했습니다.

데브시스터즈
데브시스터즈
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...