DW, DB

more

데이터 레이크 + 데이터 웨어하우스 = 데이터 플랫폼

근래의 데이터 플랫폼은 다양한 계층(Ingestion, Lake, Data Warehouse, Procssing)을 조합 해 놓은 서비스를 의미한다. 이전에는 단주로 Datawarehouse위주로만 이루어져 있었다면 이제 조금 더 계층이 나뉘어졌다. 단일 데이터 웨어하우스 시스템 Data lake와 Processing Layer를 추가한 데이터 플랫폼 단일 데이터 웨어하우스 시스템만 구축하는 경우와 중간에 data lake를 추가해서 데이터 플랫폼을 구축하는 경우의 차이 - 스키마의 변경을 처리하는 방법. lake에서는 데이터를 파일로 가지고 있기 때문에 서로 다른 schema 데이터를 가지고 있을 수 있다. 즉, Process Layer에서 해당 변경을 처리하는 로직을 가지고 있다면 스키마의 변경에 유..

Data Lake, Warehouse 2022.12.18 2

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

Data Engineering

more

Airflow Error - Triggerer's async thread was blocked for xx seconds, likely by a badly-written

이슈 정리 Sentry에서 Trigger에 Triggerer's async thread was blocked for xx seconds, likely by a badly-written .. 하는 에러가 Sentry를 통해 많이 발생한 것을 확인. 이슈가 발생한 코드 async def block_watchdog(self): """ Watchdog loop that detects blocking (badly-written) triggers. Triggers should be well-behaved async coroutines and await whenever they need to wait; this loop tries to run every 100ms to see if there are badly-wri..

Data Engineering 2023.03.16 0

Pandas dataframe 메모리 사용량 확인하기

Pandas의 dataframe 및 각 column의 메모리를 체크하는 방법은 매우 간단합니다. dataframe 전체 메모리 dataframe.info() 메서드를 이용하면 맨 아래 memory usage가 출력됩니다. >>> df.info() RangeIndex: 173511 entries, 0 to 173510 Data columns (total 47 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 id 173511 non-null int64 1 created_at 173511 non-null datetime64[ns] 2 updated_at 173511 non-null datetime64[ns] 3 deleted_..

Data Engineering 2022.12.02 0

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

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

데이터 관련 직무 정리 (데이터 엔지니어, 분석가, 데이터 사이언티스트, 머신러닝 엔지니어등)

이번 글에서는 데이터와 관련된 직무들을 정리해보려고 합니다. 대부분의 직무들은 Data Warehouse나 Mart를 사용해서 업무가 진행되기 때문에 Data warehouse나 Mart의 특성을 이해하고, 잘 다루는 것은 모든 직무의 기본이 될 것 같습니다. Data Warehouse를 구축한 후에 해당 데이터를 BI, Machine Learning, Data Product등 다양하게 데이터를 활용하게 됩니다. Data Warehouse를 구축하는 부분까지 주로 Data Engineer가 주축으로 진행이되고, 그 이후의 다양한 활용하는 부분에서 데이터 분석가, 머신러닝 엔지니어, 데이터 사이언티스트 다양한 직군이 데이터를 활용하게 됩니다. 이제 각 직무를 하나씩 살펴보도록 하겠습니다. 데이터 엔지니어(..

정보 2023.02.28 0

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

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

정보 2022.11.25 2

남해 워케이션 2주차!

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

반응형