-
Big Data 스파크 배치를 성능개선하다 (리팩토링)
최근에 Big Data 처리 배치 성능개선에 대한 고민을 할 기회가 있었다.전체 소요시간을 3시간 이상 줄여야하는 도전적인 과제였는데, 결국 성공했다...! (뿌듯) 데이터 입수 상황 1) 원본 소스 데이터세트는 10개 가량이다. 2) 1차 마트 데이터를 만드는 dag은 원본 소스 데이터 10개의 완료시점을 계속 감지하고 있다. (sensor 존재)센서가 10개 다 성공하면, 10개 데이터에 여러가지 필터를 적용하여 1차 마트 데이터를 만든다. 3) 2차 마트 데이터는 1차 마트 데이터를 기반으로 만드는데, 이벤트 시간을 주요 검색 key로 사용한다. 리팩토링 방법 A. 센서 병렬화이것은 아주 단순한 아이디어였는데, 크게 효과가 있었다.센서 10개가 다 성공한 후 전체 데이터를 만들지 말고..
-
데이터 엔지니어링에서 최종 파일 용량 줄이는 tip
컬럼 정렬 수행1) “정렬”이 왜 도움이 되나? (컬럼 기준 정렬)Parquet는 컬럼 단위 인코딩 + 페이지/딕셔너리 인코딩 + 압축을 사용해.값이 뭉쳐 있을수록(= 같은 값이 길게 반복되거나 가까이 모여 있을수록)RLE(런-렝스), 딕셔너리 인코딩 적중률 ↑ → 압축률이 올라가고 파일 크기 ↓.따라서, 쿼리 필터/파티션 키/중복도가 높은 컬럼을 우선 정렬하면 효과가 좋다.그리고 길이가 긴 string 데이터일 수록 효과가 좋았다. 압축량이 커지기 때문이다.주의: 전체 셔플이 필요하므로 쓰기 비용↑. 하지만 장기적으로는 읽기 성능 + 용량 절감의 이득을 볼 수 있었다.3) 파티셔닝과 파일 개수의미 있는 정렬키로 프루닝 + 정렬 효과를 극대화.데이터 양이 적은 경우 order by, 많은 경우 sort ..
-
가용성과 신뢰성의 개념 정확히 이해하기
가용성과 신뢰성, Reliability와 Availability의 개념이 헷갈릴 때가 많았다.그래서 복습을 하고, 구체적인 예시로 적어두려고 한다. 신뢰성이 낮다는 것은 결함이 많다는 것이다. 그러나 결함 != 장애이다.결함은 사양에서 벗어나서 동작하는 것이고, 장애는 시스템 전체가 멈춘 것이다. 결함이 장애로 이어지지 않도록 설계할 수 있다. 요약하면 신뢰성은 결함과 연결되고, 가용성은 장애와 연결된다.신뢰성이 낮더라도(결함이 많더라도) 가용성이 높게 설계된 시스템은 사용자가 이상을 인지하지 못한다. 다음은 가용성과 신뢰성의 차이에 대한 실제적이고 구체적인 예시들이다. GPT의 도움을 받았다. (고마워... 이해가 쏙쏙..) ✅ 1. Kafka 클러스터Reliability (신뢰성)Kafka 브로..
-
[Hive] insert overwrite 중에 데이터가 없어도 파티션이 생겼으면 할 때
[요건 정의]Hive 테이블의 특정 파티션에 대해 insert overwrite로 데이터 재생성중이다. 이 때 row가 없어도 파티션 폴더는 생겼으면 함 [문제 상황]row가 없는 경우에 물리적 파티션 폴더가 생기지 않고, 사라져 버림... [해결 방법]1. 해당 파티션을 ALTER 테이블 DROP PARTITION 쿼리로 메타스토어에서 삭제한다2. 삭제한 후 insert overwrite 수행한다3. 그러면 row가 없어도 파티션 폴더가 생긴다. 데이터 재생성시 발생하는 hive serde 오류인 것 같다.파티션이 없는 상태에서 최초 실행시에는 디렉토리가 생기는데, 파티션이 있는 상태에서 재실행하면 디렉토리가 사라져버린다; 파티션이 없는 상태에서, 최소 실행이어야 row가 없어도 파티션 폴더가 생기..
-
[스파크 스트리밍] Structured Streaming 구조적 스트리밍 개발하기 (기본)
스파크 구조적 스트리밍 Structured Streaming은 스파크 엔진에 구축되어, 대용량 데이터에 대한 스트리밍 애플리케이션과 파이프라인을 구축할 수 있도록 개발되었으며 다음과 같은 특징이 있다. DataFrame과 Dataset API 기반으로 설계되었다. 즉, Input Data를 정해진 스키마에 맞게 구조화하여 처리한다는 뜻이다.이를 통해 SQL 쿼리나 DataFrame 연산을 스트리밍 데이터에도 동일하게 적용할 수 있다. 마이크로배치 + 연속 처리 모드를 지원.마이크로배치는 일정 시간 단위로 데이터를 배치처럼 처리하고 연속 처리 모드를 사용하면 거의 실시간에 가까운 처리를 함 End-to-End Exactly-once 보장데이터 유실, 중복 없이 정확히 한 번만 처리 Structu..
리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
일본 우체국 국내 우편 이용 방법/봉투/발송후기일본 살이 Tip 2019.07.28 14:27
발송 방법 우체국 발송 : 창구에서 접수하고 요금을 지불합니다. 이 때에는 우표 대신 소인 도장을 찍어 줍니다. 우체통 투입 : 도심의 우체통에 우편물을 투입하는 형식으로 접수할 수 있습니다. 사전에 구입한 우표가 반드시 붙어 있어야하며, 우표는 우체국, 그리고 로손・세븐일레븐・패밀리마트 전국 편의점에서 요금별로 구입이 가능합니다. 우체통에 투입구는 일반 우편물[왼쪽]과 특급 우편물[오른쪽]으로 나누어집니다. 이 포스트에서 다루는 편지 형 일반우편물의 경우, 우체통의 [왼쪽]에 투입하게 됩니다. 우편 요금 (일반) 정형 우편물 (定形郵便物) 규격: 세로 14 ~ 23.5cm, 가로 9 ~ 12cm, 두께 1cm 이내 무게 가격 25g 이내 82 엔 50g 이내 92 엔 * 일반 봉투에 편지지 3~4장를 ..
-
[파이썬/Python] 티켓팅 자동화 매크로 개발해보기Python 2019.07.01 14:27
처음에 블로그를 개설할 때는, 유익한 IT블로그를 만들겠다는 야심찬 포부가 있었는데, IT 포스트로 유입이 거의 전혀 없다시피 하다보니, 아무래도 잘 하지 않게 됩니다. 물론 유입이 없는 건 제 포스팅 역량 부족 + 개발 역량 부족 때문이지만서도요...ㅎㅎㅎ 무튼 개인적 호기심으로 만들어 보았던 티켓팅 자동화 매크로 코드입니다. 저는 업무외에 혼자서 코딩할때에는 거의 파이썬으로 합니다. 구현 알고리즘 티켓팅 자동화를 구현하기 위해서 3가지 방법을 고려할 수 있습니다. 1. 좌표를 설정하여 자동화 구현 2. 각 엘리멘트를 바로 실행시키는 웹 자동화 형식 3. 서버단에 예매정보 패킷 전송 좌표 설정법은, UI적으로 위치적 변화가 있을 경우 작동하지 않는다는 단점이 있습니다. 웹 자동화 형식은 좌표 변화에는 ..
-
맥 Numbers 앱에서 환율 / 주식 함수 사용하기 (STOCK, CURRENCY)ETC 2021.05.08 10:30
Overview 맥북 사용자라면 모두 Numbers, Pages와 같은 앱을 디폴트로 가지고 있다. 생산성 면에서 월등히 앞서는 구글 시트, 엑셀 때문에 사용자가 무척 적은 것 같다. 이 함수에 대한 설명을 찾기가 어려웠던 걸 보면... 그렇지만 Number 앱에서도 엑셀에서처럼 환율, 주식 함수를 사용할 수 있다! 주식 함수 사용하기 코스피에 상장된 휠라홀딩스라는 종목의 가격, 배당을 확인하고 싶다면? 1. 빈 셀에 특수문자 = (equals) 를 입력한다. 그러면 아래와 같은 함수 팝업창이 나타난다. 2. 함수 팝업창에 아래 코드를 입력한다. STOCK("{종목코드}.{시장코드}",0) 휠라홀딩스의 종목코드는 081660이고 코스피에 상장되어 있으므로, 이렇게 입력한다. STOCK("081660.KS..
-
[일본 완전 귀국] 일본생활 정리 매뉴얼일본 살이 Tip 2020.01.08 19:06
목차 1. 집 렌트 계약 해지 2. 인터넷 해약 신청 3. 가구 처분 (중고 판매 & 메루카리) 4. 쓰레기 처리 5. 핸드폰 해약 신청 6. 신용카드 정리 & 해약 신청 7. 귀국 비행기 예약 8. 은행/증권 계좌 정리 9. 전기/가스/수도 공공요금 해지 신청 10. 한국으로 짐 보내기, 우체국 픽업 신청 11. 주민세 일괄 납부 처리 12. 납세 대리인 신청 13. 전출 신고 14. 경력증명 서류 발급 15. 우편물 부재지 배달 신청 16. 정기권 환불 17. 연금 탈퇴 일시금 환급의 우편 접수 18. 재류카드 무효화 1. 집 렌트 계약 해지 계약 해지 통보 무엇보다 가장 먼저 해야 할 일은 살고 있는 집에 대한 계약 해지 통보이다. 집 계약할 때 받았던 계약서 사본을 확인하면, 계약 해지 시에 통보..
-
[Kafka] 카프카 보안 프로토콜과 내부 메커니즘Data - Kafka 2025.01.03 16:46
오늘은 패킷 보안 및 인증에 사용되는 카프카 4가지 보안 프로토콜(Security Protocol) 타입을 정리해 보겠다. 1. PLAINTEXT설명:기본 프로토콜로, 데이터를 암호화하지 않고 전송합니다.인증 및 데이터 암호화 기능이 없습니다. 메커니즘:없음: 보안 설정이 필요하지 않고, 모든 데이터는 평문으로 전송됩니다. 2. SSL (Secure Sockets Layer)설명:데이터 전송 시 암호화를 제공하여 전송 중 데이터의 기밀성과 무결성을 보장합니다. SSL 메커니즘:암호화: 데이터 암호화.서버 인증: 클라이언트는 서버의 인증서를 확인하여 신뢰성을 보장.클라이언트 인증(옵션): 서버가 클라이언트의 인증서를 요청할 수 있음 (양방향 인증).구성 요소:ssl.keystore.location..