Data job automation with cron

Submitted by tinhxleev2 on Tue, 10/12/2021 - 10:08

Lịch chạy (scheduler) chạy các công việc đã lên lịch sẵn. Việc này sẽ giúp bạn tự động chạy những công việc phân tích dữ liệu đơn giản. 

Một số công cụ như Airflow, Luigi, Rundeck, ...

cron là một lựa chọn khá tốt: miễn phí, command-line, đơn giản và tạo riêng được (cài sẵn trên MacOS và Linux).

Cron là gì? là lịch chạy dựa trên thời gian, được cài sẵn trên MacOS hay Linux. 

Để cài trên windows thì sử dụng, Cygwin hoặc thay bằng Windows Task Scheduler

Cron được sử dụng nhiều trong việc bảo trì hệ thống, bash script, các việc python.

Crontab là file trung tâm theo dõi các nhiệm vụ của cron. 

Để xem các nhiệm vụ của cron thì gõ lệnh. 

crontab -l

Xem thêm tài liệu hướng dẫn 

man crontab

Có 2 cách để thêm việc vào crontab, bằng sửa file qua nano, hoặc.

echo "*****python_job.py" | crontab

Cách lên lịch cho cron, phổ biến nhất vẫn là theo phút. Ở đây có 5 sao theo hướng dẫn dưới đây.

cron job

Hàng phút, hàng giờ, hàng ngày, hàng tháng, hàng ngày trong tuần.

Xem thêm thông tin ở

https://crontab.guru/

Ví dụ.

5 * * * *python python_job.py Cứ 5 phút sẽ chạy python_job 

5 4 * * * chạy hàng ngày vào lúc 4 giờ, 5 phút sáng

Thương các cron sau khi được hoàn thành sẽ đưa lên server để chạy theo lịch. Để làm điều đó thì server cần được cái các thư viện để chạy cron.

sử dụng pip để cài đặt các thư viện phụ thuộc, các thư viện này được cho vào một file thu_vien.txt thì bạn chỉ cần

pip install -r thu_vien.txt

sau đó chạy

python mau_cron.py

Thêm vào crontab

echo "5 4 * * *python mau_cron.py" | crontab

Kiểm tra xem đã thêm nhiệm vụ chưa

crontab -l

Hoàn thành khóa 

curl, wget, (man curl, wget --help), sử dụng csvkit để xử lý dữ liệu, chuyển đổi file bằng in2csv - xem qua bằng csvlook hoặc csvstat. Lọc dữ liệu bằng csvcut, csvgrep, nhập dữ liệu bằng csvstack. 

Tiếp đó là sử dụng sql2csv và csvsql

Sử dung data pipelines, python package sử dụng pip và cron. 

Learing