개발
-
[Airflow] - 6. Connect Postgresql개발/Airflow 2022. 7. 19. 15:14
지금까지 Psql 관련하여 Volume 설정 및 간단한 쿼리문을 알아보았습니다. 이제 부터는 Airflow를 통해 Postgresql에 DB에 반영하기 위해 Connect 및 DB생성 및 Data Insert 까지 하는 과정을 공유드리려고 합니다. 금일 보여드릴 부분은 DB Cluster 관련된 부분은 반영하지 않습니다. 1. Airflow Setting ( docker-compose.yaml ) docker-compose.yaml docker-compose.yaml 을 열어 아래 부분을 편집하여 줍니다. 1. 먼저 연결할 DB를 설정하여 줍니다. Airflow가 연결된 DB가 SQLite와 같이 Postgresql이 아니라면 아래와 같이 변경하여 줍니다. AIRFLOW__CORE__SQL_ALCHEMY..
-
삼항 연산자(Ternary operator)개발/Python 2022. 7. 18. 22:48
1. 3항 연산자 if-else와 같지만 한 줄로 표현 2. 3항 연산자 Syntax 기존의 if else 문을 통하면 아래와 같습니다. a, b = 100, 200 if a > b: max_num = a else: max_num = b Ternary operator를 사용하여 구현하면 조금 더 직관적으로 구현이 됩니다. # [true] if [expression] else [false] a, b = 100, 200 max_num = a if a > b else b Reference https://www.geeksforgeeks.org/data-types/ Ternary Operator in Python - GeeksforGeeks A Computer Science portal for geeks. It ..
-
[Postgres] - 1.Docker Volume init개발/Postgres 2022. 7. 18. 16:01
저번에 시간에 배운 Volume이라는 개념을 통하여 실제 Psql에 적용하여 보려고 합니다. 실제 Local 영역에 해당되는 Data들을 저장하여 container가 삭제된 후 실행되어도 이상이 없습니다. 앞써, Volume을 잘 모르시거나 이해가 잘 안되시면 참고하고 오시는게 도움이 됩니다. [Docker]-Volume Psql을 Volume을 만들어 반영 후 Container를 제거해본 다음에 다시 실행 시켜볼 것입니다. 1. Volume 생성 $ docker volume create psql 2. Psql 실행 및 User 생성 제 이름으로 된, User를 하나 만들어주었습니다. pw 자리에 원하시는 password를 입력하시면 됩니다. $ docker run -p 5432:5432 --name p..
-
[Docker] - 4.Volume&Bind Mount개발/Docker 2022. 7. 16. 16:16
Docker Container는 어떻게 동작하며, 어떤 방식으로 저장할 수 있는지를 알아보려고 합니다. 1. Docker Container 생명 주기 아래 그림과 같이 생명 주기를 잘 표현해보인 그림이라 가져와보았습니다. 결국 실행되어서 rm 명령어로 처리하지 않는 이상 Data가 존재합니다. 그렇다면 Container가 삭제되거나 Docker가 종료되거나 다시 시작하게 된다면, 해당 Data들은 어디로 가게 될까요? -> Container와 사라지는 동시에 같이 사라집니다. 그렇기 때문에 Local 환경에 Data를 적용시킬 수 있는 방법을 배우려고 합니다. 2. Docker Stored Data Docker는 어떤 방식으로 Data를 저장할 수 있을까요? 제가 알아본 바에 따르면 현재 2가지를 통해서..
-
[Airflow] - 5.Postgresql 설치 및 DB setting개발/Airflow 2022. 7. 13. 17:07
Airflow와 연동하여 사용할 DB = postgresql(psql)에 알아보도록 하겠습니다. docker-compose 내에 있는 파일을 통해서 Build를 하는 것이 아닌 Postgres Image를 통해 빌드하는 내용입니다. Postgresql을 이제부터 psql 이라 칭하여 부르겠습니다. 들어가기 앞써, 설치 및 실제 Docker위에서 실행하는 방법부터 단계적으로 알아보려고 합니다. 1. Psql Install & Docker run 아래와 같은 명령어를 치게 된면 최근의 Psql 이미지를 가져와 실행시켜 줍니다. $ docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password -d postgres Unable to find ima..
-
[Airflow&Python] - 4. Template variable(ts/ds/.. ) & datetime & KST 변경개발/Airflow 2022. 7. 8. 17:54
저번 시간에 이어 Task에 실제 실행되는 시간 및 Airflow는 기본적으로 UST를 지원해줌으로써, KST로 설정 혹은 KST로 값을 변경하는 부분에 대해서 소개해드리려고 합니다. 1. Template Variable https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html 를 참고하면 도움이 됩니다. 각 시간 별로 API를 호출하여 사용하려다 보니 실제 실행될 시간을 인자로 넘겨받기 위해 찾다가 찾은 내용입니다. Airflow 자체적으로 Variable을 전달해주는 것으로 보입니다. 1. {{ ds }} = The DAG run’s logical date as YYYY-MM-DD 2. {{ ts }} = The DAG run'..
-
[Airflow] - 3. Dags(Python operator)개발/Airflow 2022. 7. 8. 17:36
Dag 파일을 만들어보고 Workflow를 Pythonoperator로 구현하는 예시를 보여드릴 예정입니다. 틀린 내용이 있을 수 있으니 상세한 부분 Document를 참고하시는 것을 추천 드립니다. 1. Dag 생성 Dag file을 생성하기 위해서는 일단 Ubuntu의 Dags 폴더 File을 들어갑니다. 왜 Dag 폴더를 이용하는 가는 실제 Docker Container가 실행되면 dags / logs / plugins 폴더를 Mount 하여 가져갑니다. ( 이부분은 Docker Container를 직접 접속하셔서 /opt/airflow/dags 에 들어가시면 확인 할 수 있습니다. ) 후에 Dag를 만들 Test.py 파일을 만듭니다. $ cd /dags $ sudo vi test.py 이제부터는..
-
[Airflow] Why Apache Airflow?개발/Airflow 2022. 7. 6. 23:39
Apache Airflow? Airflow is a platform to programmatically author, schedule and monitor workflows. -> airflow는 workflow를 구축 및 실행할 수 있는 플랫폼입니다. Apache Airflow를 왜 사용하는 이유 Data engineering에서는 ETL(Extract/Transform/Load) 과정을 통해 Data 가공, 적재 ML에서도 학습 데이터 전처리,Train,Prediction 시 사용 위와 같이 Sequential한 로직(Output->Input으로 동작)들을 한번에 관리 할 경우 Apache Airflow 장점 Python 기반으로 만들어졌기 때문에 접근하기 쉽다. Airflow console이 별도로..