본문 바로가기

side-project

(4)
Gmarket 데이터 크롤링 ETL(2) - xcom 분기 수정 https://github.com/yeonwoocha앞전에 작성했던 부분에 추가할 부분이 현재는 dag를 하나로 돌린다.하지만 gmarket 페이지의 전체 베스트상품들 카테고리를 보면 2,30개 정도가 된다. 이 dag들을 한개식 잡으면 dag관리가 안될것 같아, 큰 카테고리씩 dag로 잡아서 진행1. 전체 : all.dag2. 신선식품: fresh.dag3. 가공식품: frozen.dag... 전체 카테고리제외 하위 카테고리들 존재 => dummyoperator 활용 하나의 dag에 여러개의 분기로 그룹화 실행되게 적용.def category(group_name, sub_group_name, **context): ... ... ti = context['ti'] # 한 dag에 ..
Gmarket 데이터 크롤링 ETL(1) - airflow, hadoop 1. Airflow가 주기적으로 gmarket Best상품 크롤링2. 크롤링한 데이터 Hadoop에 저장3. spark를 이용해서 Hadoop에 저장된 데이터 분석-> 자원이 마땅치 않다보니, 도커로 구성 생각중... 최종 목표 :분석한 데이터를 DB에 저장해서 Fast-API로 데이터 서빙까지https://github.com/yeonwoocha/crawling-gmarket.git 기존에 공부한다고 작성한 코드인데, 이 코드를 airflow dag형식으로 바꿔서 진행기존 위의 코드를 window에서 실행하였는데, 지금 환경은 리눅스에서 진행하다 보니 삽집을 많이 하였다.제일 삽질 많이 한게 리눅스에서 selenium 환경 세팅이었고, 두번째가 airflow 로그 세팅이었다.일단 selenium으로 크롤..
Side-Project-kaggle data ETL(2) sink-connector 첫번째로 같은 MySQL DB 스키마내에 다른 테이블에 적용현재 Mysql test 데이터베이스 스키마안에 test라는 테이블에 4개의 row가 들어가있습니다.첫번째로 bulk모드로 진행해보도록 하겠습니다.connector 등록은 완료하였습니다.connector 정보를 확인하기 위해서 명령을 날리도록 하겠습니다.connector랑 tasks가 둘다 "running"으로 되있는것을 확인할 수 있습니다. 이제 broker에도 생겼는지 확인해보겠습니다. 과연.... broker에도 적용된거 확인그럼 브로커에 쌓인 메세지들을 target지에 넣어보겠습니다.테스트로 차례대로 진행할 목적으로 일단 첫번째로 같은 DB서버내에 다른 테이블에 적용해보도록 하겠습니다.target 정보입니다. 이제 connector를 붙이..
Side-Project-kaggle data ETL(1) source-connector API를 활용하여 kaggle에서 titanic 데이터를 받아옴Python으로 pandas를 사용하여 csv파일을 source DB인 MySQL DB에 적재Kafka Connector서버에서 jdbc source connector를 활용 DB에 있는 데이터들을 Kafka broker에서 수집Kafka Connector서버에서 jdbc sink connector를 사용하여 Target DB에 적재.import pandas as pdfrom sqlalchemy import create_engine, textimport osimport csvimport glob////MySQL 데이터베이스 연결 설정//DB 정보 입력engine = create_engine('{드라이버이름}://{유저이름}:{password}..