8-4. Data Pipeline on the Command Line

가짜연구소 dsf-2기로 활동중이며, 데이터 엔지니어 8코스-4) Data Pipeline on the Command Line 를 수강하고 그에 관련 내용을 적어보았다.

사례 연구로 Python을 사용하여 명령줄에서 Python을 실행하고, 패키지 관리자 pip를 사용하여 종속성을 설치하고, 명령줄을 사용하여 전체 모델 파이프라인을 빌드하는 방법을 배웁니다.

🌱 출처 : Datacamp data enigneering track
모르는 부분이나 헷갈렸던 부분은 계속 추가될 수 있다!

Data Pipeline on the Command Line
1. Python on the command line
2. Python package installation with pip
3. Data job automation with cron
4. Course recap

1. Python on the command line

데이터 처리가 명령줄에서 더 생산적이지만, 예측 모델링과 같은 복잡한 데이터 작업은 여전히 Python이 더 유용합니다.

명령줄에서 python을 실행하여 두 장점을 결합하는 방법을 배웁니다.

Python

  • 파이썬은 MaxOS, Linux에 사전 설치되어 제공되지만, Windows은 따로 설치해야 함.
  • 파이썬과 상호작용하는 일반적인 방법은 Jupyter와 같은 GUI 인터페이스를 사용하는 것임.
  • 더 효율적인 방법은 명령줄에서 직접 python에 엑세스 하는 것

문서 밑 옵션 플래그를 호출합니다.

man python

python --version 파이썬 버전에 따라 구문이 다르기 때문에 파이썬 버전을 체크해 줍니다.

which python을 사용하여 사용중인 파이선을 볼 수 있습니다.

명령줄에서 python과 상호작용하기 위해,
python을 입력하여 python 작동하여 줍니다. >>> 이 나오면 세션안에 있음을 알 수 있습니다.

exit() 세션 종료 하여 $가 나오면 python에서 나온것이다.

스크립트가 짧은 경우 아래와 같이 명령 에코하고 python 파일로 리디렉션할 수 있다.

echo "print('hello world") >hello_world.py

이 방법은 명령줄을 절대 벗어나지 않아 워크플로에 대한 중단이 적다는 것입니다.

2. Python package installation with pip

python 의 표준 패키지 관리인 pip을 알아봅시다.

python은 특정 패키지 경우 사용자가 직접 설치해야 합니다. pip을 통해 처리됩니다.

pip -h

  • pip --version을 사용하여 pip 버전 확인 가능하다. 파이썬 버전과 맞추는 것이 중요!

  • pip install --upgrade pip 사용하여 pip 업그레이드 진행할 수 있다.

  • pip list 사용하여 파이썬 패키지 확인 가능

pip install은 항상 최신의 버전을 다운받습니다. 이전 버전을 설치하여려면 <설치할 패키지>==<버전 지정>을 사용할 수 있습니다.

  • -r <파일이름> 옵션을 사용하여 지정된 파일에서 패키지를 설치 가능하다.

<파일이름>에 설치할 패키지를 적어두고, -r 인수로 한번에 설치하는 것입니다.

Exercise

# Add scikit-learn to the requirements.txt file
echo "scikit-learn" > requirements.txt

# Preview file content
cat requirements.txt

3. Data job automation with cron

여태까지 한 전체 프로세스를 자동화하는 마지막 단계입니다.

스케줄러

  • 스케줄러는 미리 결정된 일정에 따라 작업을 실행하고 데이터 파이프라인을 자동화할 수 있음
  • Airflow, Luigi, Rundeck 등 다양한 솔루션 있음
  • cron
    • 간단하고 무료
    • 사용자 정의 가능
    • 유닉스 계열에 사전설치됨 => MacOS, Linux에는 존재하지만 Windows에서는 존재하지 않음.
    • cron은 bash스크립트, python 파일가지 다양한 작업에 활용 가능

crontab

관리하는 작업, 실행 시기 및 일정과 관련된 기타 지침 등을 기록한 중앙 파일입니다.

  • crontab -l 명령어로 cron을 통해 예약된 모든 작업(있는 경우)이 표시됨.
man contrab

crontrab에 작업을 추가하는 방법

  1. text editor로 crontab 파일을 수정
  2. echo command로 스케줄러 명령을 crontab에 직접 반영
echo "* * * * * python create_model.py" | crontab

crontab -l

올바르게 작업이 예약되었는지 확인할 수 있다.

작업을 예약할 때 미세조정에 대해 알아보면,
cron에는 60초 단위 제한이 있습니다. 우리가 예약할 수 있는 가장 빈번한 작업은 1분에 한 번 실행된다는 것을 의미합니다.

5개의 시간 구성 요소는 아래와 같습니다.

* * * * * python create_model.py

위의 의미는 매월, 매일, 매주, 매분마다 해당 스크립트를 실행하는 것을 의미합니다.

즉, 1분마다 영원히 실행되는 것 입니다.

더 알아보려면 👉🏻 https://crontab.guru/

4. Course recap

배운 내용을 복습합시다!

  • curl wget 명령어를 통해 데이터 파일을 다운로드
  • 데이터 다운로드 -> 데이터 처리의 방법을 배움 csvkit
  • sql2csv, csvsql 등을 추가로 해움
  • 명령줄에서 python 실행, 스케줄링 등록을 배움.

좋은 웹페이지 즐겨찾기