Airflow-WebCrawling
Table of Contents:
ref: 왕초보_가이드
Index
- Data 생성
- Data 긁어오기
- Dag 설정
- 파이프라인 생성
- 결과값 출력
AIRFLOW 설치
- dependency 추가 및 airflow 설치 스크립트
AIRFLOW_VERSION=2.8.1
# Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually.
# See above for supported versions.
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
# For example this would install 2.8.1 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.8.1/constraints-3.8.txt
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
- 환경 변수 추가
echo $PATH
export PATH=$PATH:/home/ubuntu/.local/bin
echo $PATH
- DB init
airflow db init
- 유저 생성
airflow users create -u admin -p admin -f admin -l admin -r Admin -e admin@admin.com
- 포트 연결
airflow webserver -p 8080
- scheduler 실행
Server와 함께 터미널이 실행 되어 있는 상태여야 함
airflow scheduler
"PythonVirtualenvOperator requires virtualenv. please installed it"
- vertualenv 설치
pip install virtualenv
- airflow 프로젝트가 있는 디렉터리로 이동 후 명령어 실행
virtualenv venv
그 외 다른 Dependency: [[0. Project(2024)/4. airflow를 통한 데이터 파이프라인 구축/python resource/cp-dags.py | cp-dags.py]] |
AIRFLOW 적용해보기
command
- task 살펴보기
airflwo tasks list {DAT_NAME} --tree
- task 미리 실행해보기
airflow tasks test {DAG_ID} {TASK_ID} {START_DATE}
전체 순서도
코드가 동작되는 순서를 정리하고, 이에 따라 Task를 구성한다.
- github main homepage에 접속되는지 확인한다.
- 메인페이지에 접속 한다면 selenium으로 container-platform url을 받아와서 csv로 저장한다
- airflow XCom에 csv파일을 저장한다.
- 각 url에 접속해 내용을 긁어와 csv로 저장한다
- url이 저장된 csv를 XCom에 저장한다
- ObjectStroage 종료
예제 샘플 코드가 출력되지 않기 위한 설정 ![[스크린샷 2024-01-25 오후 2.01.21.png]]
- 샘플 데이터 예제: 빅쿼리 공개 데이터셋
REF: 뭔가고수느낌
![[스크린샷 2024-01-25 오후 2.28.33.png]]![[스크린샷 2024-01-25 오후 2.29.48.png]]
Chrome Driver
- chromedriver
# Example of downloading ChromeDriver version 99.0.4844.51
wget https://chromedriver.storage.googleapis.com/99.0.4844.51/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromdirver ~/airflow/dags
Code
cp-dags.py
[[cp-dags.py]]
tasks/tasks.py
[[task.py]]
ref: 왕초보_가이드
Index
- Data 생성
- Data 긁어오기
- Dag 설정
- 파이프라인 생성
- 결과값 출력
AIRFLOW 설치
- dependency 추가 및 airflow 설치 스크립트
AIRFLOW_VERSION=2.8.1
# Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually.
# See above for supported versions.
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
# For example this would install 2.8.1 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.8.1/constraints-3.8.txt
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
- 환경 변수 추가
echo $PATH
export PATH=$PATH:/home/ubuntu/.local/bin
echo $PATH
- DB init
airflow db init
- 유저 생성
airflow users create -u admin -p admin -f admin -l admin -r Admin -e admin@admin.com
- 포트 연결
airflow webserver -p 8080
- scheduler 실행
Server와 함께 터미널이 실행 되어 있는 상태여야 함
airflow scheduler
"PythonVirtualenvOperator requires virtualenv. please installed it"
- vertualenv 설치
pip install virtualenv
- airflow 프로젝트가 있는 디렉터리로 이동 후 명령어 실행
virtualenv venv
그 외 다른 Dependency: 0. Project(2024)/4. airflow를 통한 데이터 파이프라인 구축/python resource/cp-dags.py | cp-dags.py |
AIRFLOW 적용해보기
command
- task 살펴보기
airflwo tasks list {DAT_NAME} --tree
- task 미리 실행해보기
airflow tasks test {DAG_ID} {TASK_ID} {START_DATE}
전체 순서도
코드가 동작되는 순서를 정리하고, 이에 따라 Task를 구성한다.
- github main homepage에 접속되는지 확인한다.
- 메인페이지에 접속 한다면 selenium으로 container-platform url을 받아와서 csv로 저장한다
- airflow XCom에 csv파일을 저장한다.
- 각 url에 접속해 내용을 긁어와 csv로 저장한다
- url이 저장된 csv를 XCom에 저장한다
- ObjectStroage 종료
예제 샘플 코드가 출력되지 않기 위한 설정 !스크린샷 2024-01-25 오후 2.01.21.png
- 샘플 데이터 예제: 빅쿼리 공개 데이터셋
REF: 뭔가고수느낌
!스크린샷 2024-01-25 오후 2.28.33.png!스크린샷 2024-01-25 오후 2.29.48.png
Chrome Driver
- chromedriver
# Example of downloading ChromeDriver version 99.0.4844.51
wget https://chromedriver.storage.googleapis.com/99.0.4844.51/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromdirver ~/airflow/dags
Code
cp-dags.py
cp-dags.py
tasks/tasks.py
task.py
About Hallo. 안녕하세요! 정승혜 입니다. 개발 일지 뿐만 아니라 나의 관심 있는 모든 것을 담을거예요.