본문 바로가기
728x90

전체 글313

[Airflow] Airflow로 ETL 파이프라인 V2 만들기 (Variables + TaskGroup을 활용한 Task Factory 구현) 이번 포스트에는 저번에 작성했었던 각 작업들을 통합하여 만든 DAG인 ETL 파이프라인 구축하기 V1에서 중복된 태스크는 줄이고, 병렬실행을 도입시켰으며, task를 정의한 Variables 변수에 따라 Dynamic하게 갯수와 이름이 변하게 되게 끔 구성하였습니다. 저번에 작성한 포스트를 보고 싶으시다면 아래의 링크를 확인해주세요. https://spidyweb.tistory.com/506 [Airflow] Airflow로 ETL 파이프라인 만들기(python, EMR, glue crawler, Email, Slack, DB반영) 이번 포스트에는 회사에서 수동으로 처리하고 있던 일회성 ETL작업을 Airflow DAG으로 묶어서 파이프라인을 만든 경험에대해서 소개해드리겠습니다. 기존 업무 처리방식과 A.. 2024. 2. 9.
[Linux] 프로세스 백그라운드로 실행 시키기 - nohub, & 리눅스에서 shell파일,python 파일과 같은 파일을 실행 시킬 때, 세션이 끊어져도(서버가 아닌 ssh로 붙은 개인 pc를 꺼야 하는 상황이라던가) 백그라운드에서 계속 돌게끔 해야 하는 상황이 있을 수 있습니다. 그럴 때 사용하는 백그라운드로 프로세스를 실행 시키는 명령어에 대해서 정리해보겠습니다. 1. nohup(no hang up) 끊지말라는 뜻 nohup으로 실행된 프로세스는 데몬형태로 실행 원하는 프로그램의 앞에 nohup을 붙여주면 됨 nohup ./경로/shellfile이름.sh nohup으로 실행 시킬 파일은 755 권한을 가지고 있어야 2. & 백그라운드로 실행 원하는 프로그램의 뒤에 &를 붙여주면 됨 ./경로/shellfile이름.sh & 프로세스 확인해보기 ps -ef | grep.. 2024. 1. 27.
[회고] 2023년을 마무리하며 회고 엄청 오랜만에 글을 포스팅하는 느낌인데.. 거의 1달만인 것 같습니다. 최근까지도 회사에서 하는 프로젝트며, 대학원 준비 같은 업무들로 바쁜 시간을 보내느라 글 포스팅하는 것이 후순위가 되어버렸습니다. 이번에도 회고록이기 때문에, 생각나는대로 한 해를 정리하면서 생각한 것들에 대해서 포스팅하겠습니다. 1. 생각나는 것들 1) 경조사 이번년도는 유독 경조사가 많았던 한 해였던 것 같습니다. 올해로 3년차, 이제 내년에 4년차가 되는데 이 시기쯤 되니 친구들 무리에서도 처음 결혼하는 친구가 나오고, 여기저기서 소식들이 많이 들려왔던 것 같습니다. 2024년도 예정된 결혼소식들이 많이 들려옵니다. 제 주변에 행복한 일들이 더 많이 생겼으면 좋겠습니다. 그러면서 생각되는게 역시 건강을 최우선 목표로 두어야 행복.. 2023. 12. 29.
[Python] AWS SES + MIME을 이용한 메일 기능 구현 소 AWS SES(Simple Email Service)란? Outbound만 가능한 AWS의 이메일 전송서비스이다. SES를 사용하는 목적은 회원들에게 프로모션 전송, 회원가입 시 이메일 확인 인증, 비밀번호 전송 등을 수행하기 위해서이며, 프리티어 기준 매일 2,000통을 보낼 수 있다. 이처럼 SES는 대량의 이메일을 발송하기에 적절한 서비스이며 발송한 이메일의 수와 데이터 전송에 대해 요금이 부과되기 때문에 저렴한 비용으로 이용이 가능 SMTP를 사용 SMTP(Simple Mail Transfer Protocol)란? 메일 전송 프로그램이 서버로 메일을 보낼 때 사용하는 프로토콜 오직 텍스트만 전송이 가능하다. 스트림 방식을 이용하여 전송한다. 한 개의 메시지를 해당 서버의 여러 수신자에게 보낼 수 .. 2023. 11. 25.
[Python] Boto3 + Airflow로 특정 기간 지난 S3 데이터 삭제하기 업무를 하면서 개인정보 데이터에 대해서 6개월이 지나면 자동으로 파기가 되는 로직을 구현해야되는 일이 있었습니다. 따라서 하루단위 배치로 6개월이 지났는지 검사하고, 지났으면 데이터를 삭제하는 로직을 구현한 것에 대해 정리해보겠습니다. 요구사항, 상세정보 및 코드 사용 라이브러리 : boto3 배치 스케줄링 주기: 매일 00:05 요구사항: 6개월이 지난 개인정보 포함된 데이터는 파기가 되어야 함 해결 방법: s3 uri경로가 s3:bucket/~~/history 혹은 latest로 되어 있고 이후에 stnd_ymd=yyyy-mm-dd 파티션으로 구별 됨 → stnd_ymd 기준 6개월이 지나면 매일매일 검사하여 삭제하는 로직 구현 코드 from airflow import DAG import boto3 .. 2023. 11. 20.
[Python] Logging 라이브러리 정리, Airflow에서 Logging사용하기 Airflow에서 PythonOperator를 실행할 때 로그가 나오지 않아서 테스크가 잘 진행되고 있는지 확인하기가 어려웠던 상황이 있었습니다. logging 라이브러리를 사용해도 airflow UI에서 확인 할 수가 없었는데 관련해서 정리를 해보고자 합니다. 1. Logging The only time that print is a better option than logging is when the goal is to display a help statement for a command line application. Shell과 같은 커맨드 인터페이스에서 --help 옵션을 받아 사용법 도움말을 출력할 때 이외에는 항상 logging이 print보다 낫다는 뜻으로, 사실상 웬만한 상황에서는 prin.. 2023. 11. 20.
[Network] Nslookup & ping 정리 요즘 api서버를 배포하면서 도메인신청을 할 일이 있었는데, 관련해서 네트워크 지식이 많이 필요하단걸 다시 한번 느꼈기 때문에 기본기 정리를 하겠습니다. 1. Nslookup 네트워크 관리 명령 줄 인터페이스 도구로서 많은 컴퓨터 운영 체제에서 사용 가능하며, 도메인 네임을 얻거나 IP 주소 매핑 또는 다른 특정한 DNS 레코드를 도메인 네임 시스템(DNS)에 질의할 때 사용 name server lookup의 준말 위 사진과 같이 wkikipedia.com DNS에 대하여 질의를 했을 경우 응답이 돌아온다면, 해당 DNS는 질의한 클라이언트로부터 열려있다는 것을 알 수 있음 DNS 서버: dns.google이 지정된 DNS서버임 Name 서버: wikipedia.com와 그 주소가 Name 서버에 해당.. 2023. 11. 10.
[Network] 동기 vs 비동기 통신 (Ajax, kafka) 정리 Ajax와 kafka 등 비동기 통신(처리)한다는 용어가 헷갈려 이 기회에 정리해보려고 합니다. 1. 동기 vs 비동기 처음에는 사실 그림을 봐도 크게 와닿지는 않았습니다. 1) 동기(synchronous) 방식 요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행 됨 요청과 결과가 한 자리에 동시에 나타나는 것으로 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다려야 함 장점 : 설계가 간단하고, 직관적 단점 : 요청에 대한 결과가 반환되기 전까지 대기해야 함 2) 비동기(Asynchronous) 방식 요청과 결과가 동시에 일어나지 않는 방식으로 요청과 결과가 동시에 일어나지 않음 동시에 여러 요청을 보낼 수 있음(응.. 2023. 11. 6.
[Network] DNS, A레코드와 CNAME 정리 1. DNS란? DNS(Domain Name System)의 약자로, 사용자가 숫자로 된 인터넷 프로토콜 주소 대신 인터넷 도메인 이름과 검색 가능한 URL을 사용하여 웹사이트에 접속하는 것을 가능하게 함 → 사용자는 93.184.216.34와 같은 IP 주소를 기억하는 대신 www.example.com을 검색할 수 있음 퍼블릭 DNS: 일반적으로 인터넷 서비스 제공업체(Internet service provider, ISP)가 기업에 IP 레코드를 제공하고, 이러한 레코드는 일반 대중에게 제공되며, 사용 중인 디바이스 또는 디바이스에 연결된 네트워크에 상관없이 누구나 액세스할 수 있습니다. 프라이빗 DNS: 프라이빗 DNS는 회사의 방화벽 뒤에 존재하며 내부 사이트의 레코드만을 보관한다는 점에서 퍼블릭.. 2023. 11. 6.
728x90