Please enable JavaScript.
Coggle requires JavaScript to display documents.
빅파이 운영 (정규처리 (신규채널 추가하기 (채널이 추가되는 순간부터 ETL 시에 nlog/channel_name 경로에 데이터 생성…
빅파이 운영
정규처리
-
-
신규게임 추가하기
설정 추가하기
-
타임존 설정 추가 (kst인 경우 패스),
타임존 설정을 추가할 때 regdatetime에 대한 클렌징 룰도 추가되어야 함
-
-
-
스케줄 추가하기
스케줄매니저 커맨드 수행 :
/etl/scheduleManager.sh -command create -type etl -path /home/web_admin/airflow/dags -start 2019,3,26 -gameCode banana
-
-
-
기능확장
[ NLog 생성 ]
처리 플로우
extract - cleanse - validate - filter/flat/mapping - formatting(tsv, json, orc..) - save
코드
위 단계 각각은 인터페이스로 연결되어 있고,
각 단계 별 인터페이스를 구현하여 기능 확장 가능함
[ Delivery ]
-
코드
-
ChannelDao, DeliveryService 인터페이스로 동작함
-
-
[원칙]
코드
-
-
-
목적 달성에 필요한 기능 모듈은 최대한 잘게 쪼개고, 플러거블한 상태를 유지하며
-
설계
-
-
메타 데이터에 대한 관리도 전체 요구사항을 포괄할 수 있는 일반적인 용어로 정의하고 관리하기 위해 주의를 기울임
ex) 빅쿼리, MSSQL, MySQL, Hive 등 여러 채널의 공통점 -> 테이블 및 DB에 대한 설정 / 파일 및 스토리지에 대한 설정으로 나뉨
[ Schema/Table ]
기능 / 커맨드
snapshot, create, remove, check, merge 기능으로 구성됨
-
-
check : 스냅샷을 갱신하고, 테이블을 생성 (default : 스냅샷이 있으면 갱신 안하고, 테이블은 없으면 생성)
-
-
-
-
로그 퀄리티 모니터링
-
-
빅파이 처리 방식 :
스키마에 부적합하여 채널 전달 실패되는 값들은 null 처리하여 정상 적재되도록하고,
대신 해당 컬럼을 errorlogkey 필드에 기록하고, invalid_log에 값을 기록함
common pitfalls
명시적인 flat 룰 추가 시 반드시 logid, logdeatilid 포함시켜야 함
cleansing 룰에 logid, logdetailid 추가시 스스로에 대한 저장도 반드시 포함시켜야 함 nmsplatform 케이스 참조
logid, logdetailid가 없으면 filter 단계에서 이상 로그로 판단되어 걸러짐!!!!!!!!
재처리
대용량 마이그레이션
태스크빌더 재처리 템플릿 기반으로
스케줄 생성
고도화 포인트 : 재처리 스케줄도 스케줄매니저를 통해 생성할 수 있는 기능 추가하기 (재처리 방식은 다양할 수 있으므로 사실 의미가 약하여 미진행함)
/etl/scheduleManager.sh -command reprocess -path /home/web_admin/airflow/dags/reprocessing -gameCode banana -s 2018-05-01T00:00:00 -e 2018-05-25T23:50:00 -reprocStartStep nlog_create -reprocChannels -reprocHourly true
-
주의 : concurrency, max_active_runs 설정할 때 아래 작업 병행
airflow 장비, submit 장비, yarn cluster, bigquery slot 리소스 모니터링
처리 대상 기간의 기존 테이블 삭제 (있다면) + 스냅샷 갱신 / 테이블 생성 일괄 수행
주의 : 박파이 커맨드에서 넘기는 일자/시간 파라미터는 무조건 datalake 적재 기준 즉, kst 기준이고, (nlog 가공 전 단계의 regdatetime 값)
이 값을 기반으로 설정값을 읽어오게 되므로 게임별 타임존에 맞게 입력해주어야 함 "아래 구문의 의미는 20180518 09 00 데이터를 적재할 테이블을 제거/생성 한다." 정도로 이해할 수 있음
/etl/deliveryManager.sh -command remove -yyyymmdd 20180518 -hh 09 -mm 00 -srcType hdfs -gameCode banana -channels bigquery
/etl/deliveryManager.sh -command check -yyyymmdd 20180518 -hh 09 -mm 00 -srcType hdfs -gameCode banana -channels bigquery
-
-
[ 빅파이 구성 및 매뉴얼 ]
- 운영에 필요한 모든 상황에 대해
아래 플로우에서 확인하거나 확인할 수 있는 링크를 알 수 있다.
- 서로 다른 브랜치에 중복된 내용이 없다.
- 아래 플로우에서 해소되지 않는 내용은 새롭게 추가한다.