서버 부도의 날..1 내가 몸담고 있는 회사에는 데이터 파트 인원도 1명 데이터 서버도 단 1개다.그 3개 중에서도 단 하나의 서버에 메타베이스, 에어바이트, 카프카 등 정보계를 지탱하는 메인 서비스가 몰빵해서 올라와 있다.늘 아슬아슬하게 80-90% 를 치고 있었고, 가끔 100이 치면 컨테이너에 올라간 모든 서비스를 손수 재시작 시켜주었다. 어느 화창한 금요일, 아침에 출근을 하다가 배앓이가 매우 심해 실장님한테 전화를 걸고 발길을 돌려 집에 가고있었다.폰을 하며 폭풍설사를 하고 있던 그때, 정보계 데이터의 주 고객층 마케팅 본부 사람들로부터 항의와 문의가 빗발쳤다. 운영계랑 데이터가 안맞다고. 데이터가 다 안들어왔다고. 보통 모니터링을 출근하자마자 9시 10분쯤 해놓는 편인데 폭풍설사하고 있던 그때는 이미 9시 반쯤이었.. 2025. 1. 25. 쓰레기같은 주소에서 시군구 추출하기 위치기반 개인정보 테이블의 가명화를 위해 시군구만 짤라내서 필드를 만들어야 하는데 주소 형식이 제각각이다. 이를테면 로데이터의 '도로명주소' 필드는 아래와 같이 생겼다. 대구 달성군 논공읍 금포로 75-20서울특별시강남구선릉로 221길서울 구로구 구로동로 148 여기서 나는 아래와 같은 값만 얻고자 한다. 대구 달성군서울특별시강남구서울 구로구 보다 공수가 많이 들지만 정확한 방법( 밖으로 꺼내서 전국 시군구 매핑과 대조하는 등 ) 도 있겠지만노가다 최소화(와 정규표현식 연습)를 위해 DB 안에서 REGEX 쿼리만으로 해결해보았다.SELECT REGEXP_SUBSTR('대구 달성군 논공읍 금포로 75-20', '(서울|대구).*?.([시군구])',1, 1); '시도 부분' 과 '시도의 뒷부분' 으로 값을 .. 2024. 10. 15. 온라인 카드결제 과정, PG사 저번에 구독 결제 관련 쿼리 작성 중 취소된 결제 건을 발라내고자 PG사 결제 테이블을 참조해서 메챠쿠챠 해서 쿼리를 한다. 어제 만났던 어떤 아저씨는 토이프로젝트로 앱 만들고 카드 통해서 돈 받으려면 법인사업자 등록하고 나서 PG사랑 계약해야지 카드결제 도입할 수있어서 비영리단체 등록을 했었다고 한다. 그래서 PG사와 카드사가 무엇인지 앱결제에서 왜 필요한지 궁금해졌다.카드결제의 과정1. 소비자가 카드 결제 버튼 클릭 -> 주문서 작성2. 인증-승인-매입 - 인증 : (카드사 번호, CVC, 유효기간) -> 카드결제 가능한지? 결제하는 사람 카드 보유자인지? - 승인 : 카드사가 소비자의 카드에서 물건 금액 차감 PG사가 VAN사를 통해 결제요청 정보를 카드사에 전달해 카드의 한도를 차감 - .. 2024. 9. 8. [Spark] Join 최적화로 bucketing 쓸때 주의사항 스파크에서 조인 수행 최적화 목적으로 Bucketing을 활용한다.이때 주의할 점이 있다. 두 테이블 모두 같은 수의 버킷으로 bucketing두 테이블은 동일한 열에 bucketing목표 : 셔플/교환을 줄이고 pre- shuffled data 사용하여 테이블을 join 하기두 테이블이 이미 partitioned 되어 있고, shuffle할 필요가 없음을 catalyst optimizer가 깨닫게 만들기 즉 물리적 실행계획상에* SortMergeJoin을 적용하기* 테이블에 broadcast / Hash join 이 적용되지 않게 만들기 Bad CaseNon- bucketed 와 Bucketed를 Join하면 어짜피 교환작업 수행됨2개의 bucketed table을 조인하더라도, bucket colu.. 2024. 7. 7. 이전 1 2 다음