daily_weekly_monthly folder
chat-metrics_daily.py
Đây là đoạn mã Python định nghĩa một lớp Handler
, mở rộng từ lớp cơ sở BaseHandler
. Lớp này chịu trách nhiệm thu thập, biến đổi và lưu trữ dữ liệu chỉ số chat từ nền tảng thương mại điện tử Shopee. Dưới đây là phân tích chi tiết mã này:
Các Câu lệnh Import
- json, logging, datetime: Thư viện chuẩn của Python để xử lý JSON, ghi log, và thao tác ngày tháng.
- pandas as pd: Dùng để thao tác dữ liệu.
- core.defs, core.helpers.date, core.models: Các module tùy chỉnh, được cho là một phần của khung ứng dụng lớn hơn.
- crawler.shopee.chat_metrics.model: Dường như là nguồn cho
DataModel
.
Các Hằng Số
- URL, PREFIX, GET_METHOD, POST_METHOD: Định nghĩa các cấu hình hằng số cho điểm cuối API, tiền tố lưu trữ dữ liệu và các phương thức HTTP.
- COLUMNS: Tên các cột được mong đợi trong dữ liệu đã biến đổi.
Lớp Handler
Lớp Handler
chịu trách nhiệm giao tiếp với nền tảng Shopee để thu thập và xử lý dữ liệu chỉ số chat. Các chức năng chính bao gồm:
Thuộc Tính
- id, schedule_interval, start_date, tags, datamodel, is_override_warehouse: Cài đặt cấu hình cho việc lên lịch, cách và thời điểm thực hiện các quá trình thu thập dữ liệu.
Phương Thức
-
__init__
: Khởi tạo handler với cấu hình được thiết lập sẵn, bao gồm chi tiết lịch trình và nhãn cho việc phân loại. -
**_crawl(self, kwargs): Thu thập dữ liệu chỉ số chat từ Shopee bằng cách sử dụng thông tin xác thực của người bán. Phương thức này tính toán thời gian bắt đầu và kết thúc cho việc truy vấn dữ liệu, lấy thông tin tài khoản người bán và sử dụng lớp
SellerCrawler
để thực hiện các yêu cầu API. Dữ liệu sau đó được lưu trữ trong một bucket S3 dưới dạng JSON. -
**get_date(self, kwargs): Xác định ngày thực hiện từ các tham số đã cho hoặc từ ngữ cảnh.
-
get_prefix(self, prefix, day): Tạo đường dẫn lưu trữ dữ liệu bằng cách sử dụng tiền tố và ngày đã cho.
-
**get_out_prefix(self, kwargs): Tạo đường dẫn tiền tố đầu ra cho dữ liệu đã biến đổi, sử dụng cấu hình kho dữ liệu.
-
**transform(self, kwargs): Đọc và xử lý dữ liệu thô đã lưu trước đó từ bucket S3 thành định dạng có cấu trúc, sử dụng phương thức
_parse
. -
_parse(self, binary_obj, key): Chuyển đổi dữ liệu nhị phân thô thành các bản ghi có cấu trúc, sử dụng Pandas. Phương thức này đổi tên các cột cho phù hợp với cấu trúc mong đợi và định dạng một số trường để đảm bảo nhất quán.
Mã Bổ Sung
- Khởi tạo Handler và đăng ký DAG: Ở cuối đoạn mã, một thực thể
Handler
được tạo và có thể tích hợp vào DAG (Directed Acyclic Graph) của Airflow để điều phối quy trình ETL.
Mã này là một phần quan trọng của một tuyến dữ liệu tự động hóa công việc thu thập và xử lý dữ liệu, đảm bảo dữ liệu được định dạng chính xác và sẵn sàng cho các phân tích hoặc báo cáo tiếp theo.