DW, DB

more

Coalesce 2022 New Orleans 후기 - Analytics Engineering 그리고 Modern DataStack

영문 글 링크(Link of English version post) Introduction 안녕하세요. 10월 14일부터 10월 21일까지 뉴올리언스에서 열린 Coalesce 2022 - The Analytics Engineering Conference 행사를 다녀왔습니다. Coalesce 2022는 dbt Labs에 주최한 Analytics Engineering Conference입니다. Analytics Engineering에 대해서 아직 알고 계시지 못하신다면 제가 작성한 글인 Analytics Engineer 란? (Feat. Modern Data Stack) 을 한 번 먼저 읽어보셔도 좋을 것 같습니다. 행사는 크게 3가지 방식으로 운영됐습니다. Coalesce New Orleans Coales..

Data Lake, Warehouse 2022.11.14 0

Snowflake 소개(Datawarehouse Solution)

Introduction Snowflake는 Datawarehouse solution의 이름이자 회사의 이름입니다. 아직은 한국에서는 사용하는 회사를 본 적이 없지만, 미국에서는 굉장히 많은 회사에서 이용 중인 솔루션입니다. 최근에 IPO 신청하면서 미국 주식에 투자하는 국내 투자자들과 엔지니어들도 관심을 가지고 있지 않을까 하는 생각이 듭니다. 그래서 이번에 회사에서 Datawarehouse solution을 선정하기 위해서 Snowflake를 Research 및 Test한 내용과 개인적으로 Udemy에서 강의를 들으면서 공부한 내용을 이 글에서 소개하려고 합니다. 먼저 간단하게 Snowflake의 핵심 내용 및 Key Summary를 요약해보면, Snowflake의 가장 큰 특징은 위에서 보는 것과 같..

Data Lake, Warehouse 2020.09.06 4

Data Engineering

more

Airflow Taskflow로 DAG refactoring하기

Introduction 안녕하세요. 이번 글에서는 Taskflow를 사용해서 다른 외부 Operator가 아닌 파이썬 Operator로만 이뤄진 DAG을 리팩토링 한 경험을 공유하려고 합니다 Taskflow란 Taskflow란 Airflow2.0에서 출시된 concept으로 Operator가 아닌 파이썬 로직들로만 이뤄진 DAG의 경우 @task decorator를 활용해서 깔끔하게 로직을 관리할 수 있습니다. 실제로 DB의 incremental data나 API나 크롤링을 통해 진행되는 작은 배치들(수십 MB 이하)은 Pandas의 Dataframe을 통해서도 쉽고 빠르게 조작이 가능합니다. Taskflow의 장점은 Xcoms을 사용하여 return 값을 전달해서 작업 간에 결과를 전달하기 편리합니다...

Data Engineering 2022.11.14 0

Pandas NaN이란 그리고 None 차이

NaN이란 not a number로 비어있는 결측치 데이터를 의미합니다. numpy와 pandas에서는 None이 아닌 NaN을 사용하는데 그 이유는 vectorized 연산이 가능하기 때문입니다. None을 넣으면 pandas를 사용해도 병렬 연산이 불가능해지기 때문에 결측치에 대해서는 np.nan을 사용해야합니다. import numpy as np s = pd.Series(['선화', '강호', np.nan, '소정', '우영']) # 병렬 연산이 가능 s += '테스트' s 0 선화테스트 1 강호테스트 2 NaN 3 소정테스트 4 우영테스트 dtype: object 타입 캐스팅 시 주의할 점. 그리고 np.nan은 다른 데이터들이 숫자인 경우는 float 타입 입니다. 그렇기 때문에 int로 typ..

Data Engineering 2022.11.13 0

Airflow Sensor 정리 (feat. S3 Sensor)

Concept Operator의 한 가지 type으로 wait for something to occur 이라는 한 가지 목적으로 만들어졌다. time-based로 어떤 이벤트 또는 조건이 성사되는 것을 기다린다. 여기서 something은 아래와 같은 것들이 있다. file의 생성여부 external event 그 밖의 다양한 기다릴 수 있는 조건 or event. 기본적으로 해당 event가 일어날 때 까지 기다리다가 발생하면 다음 downstream의 task가 동작할 수 있도록 하는 역할을한다. 즉, 어떤 파일이나 이벤트 기반으로 다음 task를 수행해야 할 때 사용할 수 있다. ex) loader라는 서비스에서 file을 지정된 위치에 저장한 후에 compactor라는 서비스에서 데이터를 comp..

Data Engineering 2022.07.12 0

Django (장고)

more

Python/Django NewRelic 셋업 및 환경 분리하기.

Introduction 이번 글에서는 Python 및 Django에서 NewRelic을 셋업하고 환경 별로 분리하는 방법을 소개합니다. NewRelic은 대표적인 APM (Application Performance Monitoring) 서비스 중 하나입니다. NewRelic을 설치해서 쉽게 어플리케이션의 병목을 확인할 수 있습니다. 대부분의 내용은 공식 문서에 명시되어 있는 내용이고 제 기준으로 이해하기 쉽도록 정리한 글이라고 생각하시면 될 것 같습니다. Set up newrelic 셋업은 굉장히 간단한 편입니다. 대부분의 웹 프레임워크(Django, Flask 등) 및 호스팅 프로그램(WSGI, Gunicorn, uWSGI)등은 기본 Python Agent 설정만 해주면 됩니다. 웹이 아닌 단순 스크립..

Django 2022.06.29 0

Django DB Transaction 3편 - DB Transaction Test 코드 작성하기.

Introduction 안녕하세요. 1편과 2편에 이어서 마지막 편으로 Django에서 DB Transaction과 관련된 코드들의 테스트 코드를 작성하는 방법에 대해서 포스팅 해보려고 합니다. 아직 1편과 2편을 읽지 않으신 분이 계신다면 먼저 읽고 오시는 것을 추천드립니다. Django에서 DB Transaction을 어떻게 사용하는지 그리고 실제 DB에서 어떤 동작이 일어나는지를 이해하시고 이번 글을 읽으시면 이해하기 쉽고 더 도움이 될 거라고 생각합니다. 지난 글 Django DB Transaction(트랜잭션) 1편 - Request와 DB Transaction 묶기(Feat. ATOMIC_REQUESTS) Django DB Transaction 2편 - 명시적으로 transaction 활용하기..

Django 2022.02.02 0

Django DB Transaction 2편 - 명시적으로 transaction 활용하기. (feat. savepoint)

Introduction 안녕하세요. 1편 Django Transaction(트랜잭션) 1편 - Request와 DB Transaction 묶기(Feat. ATOMIC_REQUESTS) Django Transaction(트랜잭션) 1편 - Request와 DB Transaction 묶기(Feat. ATOMIC_REQUESTS) Introduction - Django DB Transaction 안녕하세요. 새해에는 Django와 관련된 글들을 많이 다뤄 보려고 합니다. 첫 번째로 Django에서 DB Transaction을 다루는 방법에 대해서 공부하고 글을 써보려고 합니다... blog.doosikbae.com 에 이어서 2편으로 명시적으로 Django에서 DB transaction을 활용하는 방법에 대해..

Django 2022.01.17 2

Python (파이썬)

more

파이썬 SMTP Gmail app password 설정하기

오랜만에 간단하게Gmail Email Client코드를 작성하려는데 예전에 해놓은 설정이 곧 있으면 지원하지 않는 것을 발견했다. 보안 수준이 낮은 앱의 액세스를 2022년 5월 30일부터 막아서, 2-Step auth를 켜고 App password를 사용해야 Python smtp client로 이메일을 보낼 수 있게된다. (기업용 Google workspace는 계속 지원한다고 한다. 개인 메일만 해당된다.) 이전 설정 그 전에 해놓은 설정은 크게 두 가지 였다. 1) Gmail settings -> Forwarding and POP/IMAP 에서 다른 client들에서 IMAP을 이용해서 메일을 보낼 수 있도록 IMAP을 홝성화. 2) 보안 수준이 낮은 앱을 액세스할 수 있도록 설정. Account의..

Python 2022.05.18 0

파이썬은 얼마나 똑똑한가?

Python은 얼마나 똑똑한가? 제목만 보면 먼가 AI와 관련된 글 같지만 사실 이 글은 파이썬의 데이터 모델에 대한 철학에 대한 이야기입니다... (여기까지 속아서 들어왔으니 끝까지 읽어보시는 게 어떠실까요?..) 이 글에서 2개의 class를 정의하고 이를 통해서 파이썬이 얼마나 똑똑한지 증명해보려고 합니다. 아래와 같이 Foo 라는 class가 있고, 이 Foo라는 clsss는 __getitem__() 이라는 메서드 하나만 구현되어 있습니다. class Foo: def __getitem__(self, position): return range(0,30,10)[position] f = Foo() # output이 어떻게 나올거라고 예상하시나요 for i in f: print(i) 아마 결과가 0 10..

Python 2020.04.14 5

여행/워케이션

more

신대방역 수영장 - 조원초등학교 수영장

안녕하세요. 최근에 신대방역으로 이사 후에 수영을 시작했습니다. 개인적으로는 가격대비 시설 및 강습에 만족하면서 다니고 있어서 간략하게 수영장 정보를 소개합니다. 위치 신대방역에서 2번출구로 나와서 신도브래뉴 아파트쪽으러 오시는 길에 있습니다. 도보로 10분이면 충분합니다. 시설 수영장 내부 주차장 -공간 충분합니다. CCTV-부모님들을 위해서 있는걸로 보입니다. 라커룸 후문 쪽에 라커룸이 존재합니다! 가격 및 시간표 기본적으로 주4회 12만원 정도입니다. 신대방역 조원초 수영장 가격, 위치, 시설 정보를 간단하게 소개드렸습니다! 추천 할인이 있으니 댓글주시면 소개드리겠습니다.

정보 2022.11.25 0

남해 워케이션 2주차!

벌써 남해에서 서울로 돌아온지 일주일이 거의 되어간다... 원래 하루에 하나의 포스팅을 하려고 했지만 2주차에는 주로 일을 많이 하느라 다른 활동을 한게 많지 않다....그래서 하루 하루 기억에 남는 것들 위주로 짧게 정리해 보려고 한다. 7월 11일 월요일 (9일 차) - 남해 최고 지압원, 문어라면! 월요일에는 오후에 업무가 끝나고 남해에 유일한 마사지샵인 남해 최고 지압원에 갔다. 나만의 힐링 방법 중에 하나가 마사지이기 때문에 새로운 곳을 여행하면 항상 마사지샵에 방문하는데 남해에는 마사지샵이 거의 없었다. 한 군데는 조금 이상해(마사지 샵이 아닌 것 같아서...) 남은 한 곳인 최고 지압원에 방문을 해봤다. 후기가 거의 없어서 살짝 불안했는데 마사지사분이 기부를 했다는 기사를 보고 방문을 했다...

남해 워케이션 7,8일차 (서핑x패러글라이딩)

워케이션 첫 주말인 7,8일 차! 토요일에는 서핑을 했고, 일요일에는 패러글라이딩을 했다!! 스포츠 위크!! 일주일이 지났지만 사진과 영상을 다시 보면 추억이 새록 새록 떠오른다.. 벌써 추억이 되어버렸다... 7일차 아침에 느긋하게 일어나서 커피 한 잔을 하고 오전에는 개인적인 프로젝트를 진행했다. 오후에는 다 같이 서핑을 하러가기로 해서 오전에는 개인적인 일들을 진행했다. 서핑 고고!! 점심은 머먹었는지 기억이 안난다...ㅠㅠ 혼자 어색해 하는 유튜버 아닌 블로거... 3일차에 방문했던 남해서핑스쿨에 다시 방문했다. https://www.instagram.com/namhae_surfing_school/ 3일차에 강습을 받아서 이 날은 회원권 30,000원을 구입하고 보드를 15,000원에 2시간 빌렸..

반응형