일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- TIL
- 데이터 파이프라인
- Docker
- 데브코스
- 데이터베이스
- 데이터 웨어하우스
- TCP
- 컴퓨터 네트워크
- linux
- dockerfile
- AWS
- 종류
- 데이터 엔지니어링
- redshift
- HADOOP
- S3
- Django
- 운영체제
- Go
- 가상환경
- airflow.cfg
- airflow
- PYTHON
- 데이터엔지니어링
- 정리
- 컴퓨터네트워크
- http
- 자료구조
- sql
- Today
- Total
목록PYTHON (12)
홍카나의 공부방
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/czNSUB/btsABymp6bl/nELleYiiIubZra1ULrLfw1/img.png)
https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/python/index.html airflow.operators.python — Airflow Documentation airflow.apache.org 파이썬 오퍼레이터 docs를 들어가보면 아래와 같이 (templated)라고 붙은 Parameter가 있는 것을 볼 수 있다. 해당 키워드가 붙으면, Jinja Template과 같은 템플릿을 사용할 수 있는 파라미터다. op_args, op_kwargs는 (templated) 태그가 붙어있지 않지만, 아래 template_fields에 해당 파라미터들이 포함되어 있기 때문에, 사실상 템플릿을 사용할 수 있다. 다음은..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kJ7e7/btsAmDXPbB1/pGbfCs3s94g2GLLP7LjkS0/img.png)
from airflow.operators.python import PythonOperator airflow DAG의 위 코드를 해석해보면 airflow > operators > python의 PythonOperator 클래스(또는 함수)를 불러오라 로 해석할 수 있다. DAG에서 외부 함수를 가져오려면 import 경로를 어떻게 해줘야 할까? docker에 있는 airflow container로 들어가서 sys.path 변수에 담겨있는 경로로 파이썬 파일을 집어넣으면 된다. 컨테이너 내부에서 파이썬을 실행시키고 sys.path를 출력해주면 import할 수 있는 여러 경로들이 리스트 형태로 나온다. ' ', 는 실행하는 파이썬 파일과 동일한 경로를 지칭하며, 아래 5가지는 pip로 설정된 경로다. sy..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vsOol/btsitZ3CqVM/w9t9aaNws2qC1WbelbcAKk/img.png)
https://youtu.be/t6I4Gs_VjGU Global Interpreter Lock(GIL)GIL은 여러 개의 쓰레드가 파이썬 바이트코드를 한 번에 하나만 사용할 수 있도록 Lock을 거는 기법을 의미한다.즉, 파이썬이 실행될 때는 특정 시점에 오직 하나의 쓰레드만 실행된다는 것이다.어떻게 보면 OS에서의 쓰레드 개념을 적극적으로 활용할 수 없게 되는 것이다.그래서 멀티쓰레드를 의도하여 프로그램을 설계해도, GIL 때문에 한 번에 하나의 쓰레드만 실행하게 된다는 것이다. 왜 GIL을 쓰나?먼저 파이썬의 메모리 관리 방식을 알아본다.파이썬은 레퍼런스 카운팅 기법을 이용하여 메모리를 관리한다.레퍼런스 카운팅은 Python에서 생성된 객체가, 특정 객체를 가리키는 참조의 수를 추적하는 Count 변..
if __name__=="__main__": # your codes here. if __name__=="__main__"? 해당 모듈이 임포트된 경우가 아니라, 인터프리터에서 직접 실행된 경우에만 if문 이하의 코드를 돌리라는 명령이다. 파이썬 모듈을 실행할 수 있는 방법은 직접 실행하거나 다른 모듈에서 임포트하여 동작시키는 방법 2가지가 있다. 아래 코드를 살펴보자. # main_test.py def func(): print("function working") if __name__ == "__main__": print("직접 실행") print(__name__) else: print("임포트되었음") print(__name__) 아래 명령으로 인터프리터에서 위 코드를 직접 실행시키면 __name__ 변..