분류 전체보기 132

초기 스타트업에서 Data Engineer는 어떤 일을 하나요?

이 글은 Medium 회사 블로그에 올린 글을 가져온 글 입니다! 안녕하세요. 저는 Verticah에서 Head of Data로 일하고 있는 Jordan입니다. 회사의 기술 블로그에 첫 번째 글로 초기 스타트업에서 데이터 엔지니어로 어떤 일을 하고 있는지를 소개해 보려고 합니다. 저희 팀은 현재 11명의 구성원으로 이루어진 Seed 투자를 받은 초기 스타트업으로 혁신 성장기업의 자금 조달 방식을 혁신하자는 비전 아래 Revenue Market이라는 미래의 매출을 판매할 수 있는 벤처 대출 플랫폼을 만들고 있습니다. Why an early-stage team needs a data guy 많은 회사들이 데이터 관련 직무를 회사가 어느 정도 성장한 후(A 시리즈 이후)에 채용합니다. 하지만, 데이터와 관련된..

Pandas DataFrame apply 성능 이슈 개선하기

Apply는 dataframe의 각 행이나 열에 User-defined function을 실행할 때 사용하는 흔한 옵션입니다. axis=1로 실행하게 되면 각 row에 대해서 연산을 수행하게 됩니다. 하지만, 데이터 사이즈가 큰 경우 메모리 접근 방식과 및 벡터화 되지 않은 연산으로 성능 문제가 발생하기 쉽습니다. 이 글에서는 성능 이슈가 발생하는 원인과 해결책을 간단하게 정리해봤습니다. apply 함수의 성능 이슈 원인 1. 메모리 접근 패턴 pandas DataFrame은 열(column)-기반의 데이터 저장 구조를 사용합니다. 따라서 열 단위로 데이터에 접근하는 것이 메모리에서 연속적이므로 빠릅니다. 그러나 apply를 사용하여 행(row) 단위로 함수를 적용할 때, 각 행의 데이터는 여러 열에서 ..

코타키나발루 키나발루 마운틴 등산

최근에 차박차박이라는 유투버의 린자니 등산 영상을 보고 예전에 코타키나발루의 키나발루 마운틴 등산을 다녀왔던 추억이 떠올랐다. 그리고 많이~~~ 늦었지만 그 여행을 정리해보고 싶다는 생각이 들어서 이 포스팅을 쓰고 있다. 때는 바야흐로... 2016년 8월.... 문제는 사진도 몇 장 남아있지 않다ㅠㅠ 사진이 다 어디로 갔을까... 당시에 이 사진을 보고 키나발루 마운틴에 가봐야 겠다고 생각을 했다. 그래서 갈 수 있는 방법을 찾아 보던 중에 관광객은 꼭 가이드와 함께 등반을 해야 한다고 해서 어메이징 보르네오 투어라는 회사를 통해 예약을 했다. 당시 가격으로 투어가격 : RM1980 (594,000원) / 1인 (솔로 트래커) 이었는데 무슨 돈이 있다고 신청했는지.... 기억에 남는건 새벽 3~4시에 ..

Pandas DataFrame 조인 및 병합 / pandas merge, join, concat,

Pandas는 Python에서 데이터 조작 및 분석을 위한 강력한 도구로, 특히 DataFrame 객체를 통해 테이블 형식의 데이터를 다루는 데 유용합니다. DataFrame을 조인하는 것은 데이터 분석 및 처리에서 핵심적인 작업 중 하나입니다. 이번 글에서는 Pandas의 DataFrame을 조인하는 다양한 방법과 그 활용법에 대해 정리해보려고 합니다. Concat 함수는 Pandas 라이브러리에서 제공되는 함수로, 여러 개의 DataFrame 또는 Series를 연결(concatenate)하는 데 사용됩니다. 주어진 axis에 따라 객체를 열 또는 인덱스를 기준으로 연결합니다. pd.concat( objs, axis=0, join="outer", ignore_index=False, keys=None,..

ETL과 ELT의 차이, ELT가 더 가치있는 이유 그리고 EtLT

ETL과 ELT의 차이 ETL과 ELT의 차이는 데이터를 소스에서 타켓으로Ingestion하는 과정에서 Transafrom을 언제 하는지에 대한 차이입니다. ETL은 Extract-Transfrom-Load 순으로 진행됩니다. 반면에 ELT는 Extract-Load-Transform순으로 진행됩니다. 많은 글에서 ELT가 데이터를 Transform하지 않은 상태로 DataLake 또는 Data Warehouse에 데이터를 적재하지 않기 때문에 원시 데이터로 부터 다양한 가공이 가능해서 더 데이터를 잘 활용할 수 있다고 설명하는 부분에 집중합니다. 하지만, ELT의 패러다임은 단순히 Transformation 순서만 바뀐 것이 아니라 Ingestion layer와 Transformation layer를 나..

Data Platform이란? / 데이터플랫폼이란

데이터 엔지니어의 가장 중요한 역할 중 하나는 데이터플랫폼을 구축하는 일이라고 생각합니다. 데이터 플랫폼은 기존의 데이터웨어하우스 중심의 시스템에서 벗어나 다양한 데이터를 다루고, 확장 가능하고 더 데이터를 잘 활용할 수 있는 종합적인 플랫폼을 의미합니다. 참고: 데이터 웨어하우스와 데이터플랫폼의 차이 이 글은 데이터 플랫폼의 구성에 대해서 계속 공부하면서 업데이트해나갈 예정입니다. 그리고 각각의 구성요소들을 다른 글에서 계속해서 업데이트를 해나가려고 합니다. 데이터 플랫폼은 다양한 구성요소가 있고, 각각의 구성요소 또한 다양한 서비스와 기술스택으로 구성할 수 있어서 경험을 하고 공부를 하면서 계속 글을 업데이트할 예정입니다. 데이터플랫폼이란? Data Platform은 다양한 대규모의 데이터를 수집, ..

신대방역 노트북 하기 좋은 카페

신대방역 근처 주민으로 노트북하기 좋은 카페를 정리할 목적으로 글을 작성 중입니다. 장소는 발견할 때 마다 추가할 예정입니다. 좋은 장소가 있으면 댓글로 추천해주세요! 시티 스트릿츠 - 방문일자: 2023.05.14 - 전반적인 평: 맛이 괜찮은 편(깔끔한 스타일). 원두가 매주 변경. 가격대는 5~6천원. 강변을 바라보고 있고, 녹색 뷰여서 봄에 창가 자리에 않으면 노트북하다가 밖을 보면 힐링이 되는 카페입니다. 사장님께서는 굉장히 친절하시고 사람이 많은 편은 아니어서 노트북하기 좋은 편이라 주말에 날씨 좋으면 종종 방문하는 카페입니다. 노트북 하기 좋은 카페가 많지 않은 신대방역에서 제가 좋아하는 장소 중 하나입니다. - 자세한 후기: https://blog.naver.com/dmswlqns/2231..

일상/정보 2023.06.18

Airflow CeleryKubernetesExecutor 사용하기

CeleryKubernetesExecutor 는 CeleryExecutor와 KubernetesExecutor 를 동시에 사용합니다. 즉, CeleryExecutor에 필요한 broker인 Redis와 항상 실행중인 celery worker를 사용하는 동시에 필요에 따라서 KubernetesExecutor를 활용할 수 있는 구성입니다. 언제 사용하는 것이 좋은가? Airflow 공식문서에서는 아래와 같은 상황에서의 사용을 권장합니다. 다음의 경우에 CeleryKubernetesExecutor를 고려하는 것을 권장합니다: 최대 수준에서 스케줄링해야 하는 작업의 수가 Kubernetes 클러스터가 편안하게 처리할 수 있는 규모를 초과하는 경우 작업 중 비교적 작은 부분이 런타임 격리를 필요로 하는 경우 Ce..

Github Workflow에서 Python 패키지 설치 시간 단축하기

GitHub에 설정된 다양한 Workflow들의 파이썬 패키지 설치 과정은 파이썬 개발자들에게는 지루한 기다림의 시간입니다. 특히, 배포를 위해 Test Job이 통과하기를 기다리는 것은 Python을 사용하는 개발자들에게 익숙한 상황 중 하나입니다. 이 과정에서 CI(Test, Linter)가 언제 끝나는지 기다리는 시간은 개발 작업의 흐름을 방해하고, 프로젝트의 배포 및 유지 관리를 느리게 만들 수 있습니다. 이 포스팅에서는 GitHub Actions의 Workflow 내에서 Python 패키지 설치 시간을 단축하는 방법을 소개하려고 합니다. 이 방법들은 GitHub에 종속되는 방법뿐만 아니라 독립적으로 사용할 수 있는 방법들도 포함되어 있습니다. 이 글에서는 총 3가지 방법을 소개하며, 이러한 방법..

Aurora MySQL replica lag 이슈 (복제 지연 이슈)

Aurora replica lag이란? writer 인스턴스의 페이지 캐시와 비교한 Aurora replica의 페이지 캐시에 대한 지연 시간. 같은 스토리지를 활용하지만 각 reader computing instance간의 페이지 캐시에 업데이트 하기까지에는 짧지만 lag이 존재한다. 지연이 길어지는 경우 replica에 연결된 connection에서의 data가 sync되지 않아서 이슈가 발생할 수 있기 때문에 lag이 길어지는지 모니터링 할 필요가 있다. replica lag 발생하는 경우 인스턴스가 동일한 사양인지 체크 reader node의 인스턴스 클래스 구성이 Writer보다 너무 작은 경우 변경 데이터의 볼륨이 너무 커서 리더가 캣이의 데이터를 무효화하고 따라잡 수 없게 됩니다. 여러 세션..

반응형