전체 글
-
python multiprocessing Pool을 활용한 데이터 병렬 처리MLOps 2024. 12. 8. 21:59
🍏 배경tfidf 추천 모델의 cosine 유사도 추출 후 추천 결과를 뽑기 위한 단계에서16만건의 유저 데이터를 처리하기 위한 분산처리 및 최적화가 필요했습니다. 🍎 해결방법python의 threading은 GIL(Global Interpreter Lock) 기능 때문에 병렬처리가 어려움으로 여러 작업을 효율적으로 병렬 처리할 수 있는 방식인 multiprocessing.Pool을 활용했습니다. https://ninano1109.tistory.com/294 multithread vs multiprocess (feat. Process, Pool 비교)멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 ..
-
[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.)Creat..
-
multithread vs multiprocess (feat. Process, Pool 비교)IT용어정리 2024. 5. 8. 18:55
멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 프로세스 안에 여러개의 스레드 존재4가지 메모리 영역중 스레드는 고유의 stack을 보유함 > stack은 독립적 함수 호출 가능 > 독립적 실행 흐름 추가 프로세스메모리 내 별도의 주소 공간에서 실행(독립적 구조) 동시성(concurrency) vs 병렬성(parallel) 동시성: 동시에 실행하는 것처럼 보이는 → 각 프로세스 작업을 작게 쪼개어 번갈아 처리 → context switching병렬성: 실제 물리적인 동시 실행 멀티스레드1. 여러개의 스레드가 하나의 프로세스 내에서 실행되며,2. 동일한 메모리 공간을 공유3. context switching..
-
[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 ..