전체 글
-
[Airflow] Airflow db 업그레이드 에러 해결(feat. 2.10.0 버전)Airflow 2024. 10. 29. 21:35
airflow db upgrade 명령어 실행 시,(airflow 2.7.0 대 버전 부터 airflow db upgrade -> airflow db migrate)[SQL: ALTER TABLE dag_run ADD COLUMN clear_number INTEGER DEFAULT '0' NOT NULL]ERROR: column "clear_number" of relation "dag_run" already exists위와 같은 에러가 발생함db 접속 후 해당 컬럼을 삭제해주고(저는 metadata db로 postgresql을 사용했습니다)> ALTER TABLE dag_run DROP COLUMN IF EXISTS clear_number;다시 airflow db upgrade 명령어를 실행하면,ALT..
-
Debezium - Oracle 접속 실패CDC Pipeline 2024. 9. 26. 21:12
데이터 변화 감지(CDC)를 위해 debezium과 oracle(aws rds) 연동 시 oracle DB 접속에 실패하는 에러가 발생했습니다. 1. oracle-connector error{"error_code":400,"message":"Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Failed to resolve Oracle database version}먼저 oracle-connector로 REST API를 생성할 때 나타난 에러이고, 실행 중이던 kafka connect에 나타난 에러를 보면 다음과 같습니다. 2. kafka connect errorCaused by: java..
-
[Datahub] slack notification 연동하기(feat. docker-compose.yml env 적용)DDP 플랫폼/Datahub 2024. 7. 25. 20:17
Datahub 내 발생하는 변동 및 업데이트 사항에 대해 slack 알림을 받을 수 있는 설정을 해보려고 합니다. 먼저 공식문서에 나와 있는 링크를 참고합니다.https://datahubproject.io/docs/actions/actions/slack/ Slack | DataHub| | |datahubproject.io 공식문서에서 확인할 수 있듯이 Adding or Removing a tag from an entity (dataset, dashboard etc.)Updating documentation at the entity or field (column) level.Adding or Removing ownership from an entity (dataset, dashboard, etc.)Crea..
-
[Airflow] Airflow dag 추가 에러 현상Airflow 2024. 2. 24. 14:04
Airflow에 새로운 DAG를 추가할 때 db 관련 에러가 발생하여 db 업그레이드 진행 시 에러발생> airflow db upgraderaise sa_exc.PendingRollbackError(sqlalchemy.exc.PendingRollbackError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (psycopg2.errors.NotNullViolation) null value in column "m..
-
[Linux] ec2 방화벽 port 설정 명령어(feat. firewall-cmd)개발Tip 2024. 2. 1. 22:27
방화벽 등록 리스트 확인 $ sudo firewall-cmd --list--all 방화벽 상태 check $ sudo firewall-cmd --state 방화벽 port 등록 $ sudo firewall-cmd --permanent --add-port={port number}/tcp => 바로 반영 안됨 방화벽 리로드 $ sudo firewall-cmd --reload 당신이 어떤 것을 할머니에게 설명해주지 못한다면, 그것은 진정으로 이해한 것이 아니다. - A.Einstein
-
나의 인생 첫 오픈소스 컨트리뷰트 성공 후기개발Tip 2023. 12. 17. 21:54
예전부터 오픈소스 컨트리뷰터라고 하면 몬가 "찐개발자" 같다는 생각을 하곤 했다.그래서 나의 버킷리스트이기도 했던 꿈의 오픈소스 컨트리뷰트를 예상치 못한 시점(?)에얼떨결에 하게 되었다는,,😅 후기를 남겨보려고 합니다. 때는 바야흐로.. 데이터 디스커버리 플랫폼(A.K.A DDP)인 Datahub를 구축하고,내부 기능들을 살피던 중 코드 커스텀화를 위해 공식문서와 github 코드들을 리뷰하던 때였다. datahub의 metadata-ingestion source를 tableau로 활용했기 때문에,tableau recipe 코드를 탐색하던 중 config에 뭔가 빠져있는 듯한 허전한 느낌이었다. 그래서 내가 짰던 recipe 코드와 비교해보니 token값이 빠져있는 것을 발겼했고,저의 경우 token ..
-
[Airflow] Airflow DAG runs 개수 주기적으로 삭제하기Airflow 2023. 8. 1. 00:06
Airflow 각 DAG의 Runs 기록을 보면 매일 DAG run 개수가 누적되어 쌓이고 있었다. Airflow.cfg 내부 설정에서 개수 제한 관련 설정이 있는지 찾아봤지만, 딱히 찾지 못해서 자체 삭제 스크립트를 개발하기로 했다. 주기를 설정하여 특정 날짜만큼의 run 개수만 유지하도록 하는 로직으로 매일 배치 스케줄을 걸어 해당 주기 이전의 데이터는 삭제하도록 했다. 이렇게 하면 log 저장에 따른 DB 용량 과부하를 관리할 수 있을 것으로 예상. 1. 필요한 모듈 import from airflow import DAG, settings from airflow.models import DagRun from airflow.operators.python import PythonOperator fro..
-
[DB] RDS postgres DB 백업 및 복원하기(feat. pg_dump)DataBase 2023. 7. 17. 23:18
*RDS를 사용하게 된 계기: RDS는 이번에 airflow를 컨테이너에 올리면서 처음 사용해 보았습니다. ECS에서 airflow db용으로 mysql을 컨테이너로 띄웠다가, 컨테이너 서비스가 죽으면서 데이터를 다 날려먹은 멘붕😱의 사건을 겪고.. db는 절대 컨테이너로 띄우지 말자!는 교훈과 함께 다른 db 활용 방안에 대해 폭풍 리서치에 돌입했습니다. 그 중 AWS에서 DB를 대신 관리해주는 RDS가 대안책이 될 수 있다는 결론을 내렸고, 회사 내 다른 부서에서도 잘 사용하고 계시고 또 사용을 권장하셔서 RDS 테스트를 시작했습니다. 기존에는 airflow용 db로 mysql을 사용했지만, 공식문서에서 pg를 권장하기에 RDS에서는 pg를 사용했습니다. * RDS 설정 시 challenge한 요소..