Chuyển đổi tệp nhật ký sang khung dữ liệu python

Trong hướng dẫn ngắn này, tôi muốn hướng dẫn sử dụng Python Pandas để phân tích tệp nhật ký CSV để phân tích giảm tải. Đây là trường hợp sử dụng điển hình mà tôi gặp phải tại Akamai

Tiểu sử

Python Pandas là một thư viện cung cấp khả năng khoa học dữ liệu cho python. Sử dụng thư viện này, bạn có thể sử dụng các cấu trúc dữ liệu như DataFrame. Cấu trúc dữ liệu này cho phép bạn lập mô hình dữ liệu giống như cơ sở dữ liệu trong bộ nhớ. Bằng cách đó, bạn sẽ có được các khả năng giống như truy vấn trên tập dữ liệu

Trường hợp sử dụng

Giả sử chúng ta có một báo cáo URL được lấy từ nhật ký máy chủ Akamai Edge hoặc báo cáo Cổng thông tin Akamai. Trong trường hợp này, tôi đang sử dụng báo cáo Cổng thông tin Akamai. Trong luồng công việc này, tôi đang cố gắng tìm các URL hàng đầu có khối lượng giảm tải dưới 50%. Tôi đã đính kèm tệp mã ở cuối. Tôi sẽ xem qua từng dòng mã. Dưới đây là các tên cột trong tệp CSV để tham khảo

URL,OK Volume,Error Volume,Ok Hits,0xx,200,206,2xx,302,304,3xx,404,4xx,Offloaded Hits,Origin Hits,Origin OK Volume [MB],Origin Error Volume [MB]

Khởi tạo thư viện

Bước đầu tiên là khởi tạo thư viện pandas. Trong hầu hết các tài liệu tham khảo, thư viện này được nhập dưới dạng pd. Chúng tôi sẽ làm theo cùng một quy ước

import pandas as pd

Đọc CSV dưới dạng DataFrame

Bước tiếp theo là đọc toàn bộ tệp CSV vào DataFrame. Lưu ý rằng chức năng đọc CSV này cũng có các tùy chọn để bỏ qua các hàng đầu, hàng theo sau, xử lý các giá trị bị thiếu, v.v. Hiện tại tôi không sử dụng các tùy chọn này

urls_df = pd.read_csv['urls_report.csv']

Pandas tự động phát hiện các định dạng dữ liệu phù hợp cho các cột. Vì vậy, URL được coi là một chuỗi và tất cả các giá trị khác được coi là giá trị dấu phẩy động

Tính toán giảm tải khối lượng

Báo cáo URL mặc định không có cột Giảm tải theo Khối lượng. Vì vậy, chúng ta cần tính toán cột mới này

urls_df['Volume Offload'] = [urls_df['OK Volume']*100] / [urls_df['OK Volume'] + urls_df['Origin OK Volume [MB]']]

Chúng tôi đang sử dụng các cột có tên Khối lượng OK và Khối lượng gốc OK [MB] để đạt được % giảm tải

Lọc dữ liệu

Tại thời điểm này, chúng ta cần có toàn bộ tập dữ liệu với % giảm tải được tính toán. Vì chúng tôi quan tâm đến các URL có mức giảm tải thấp, chúng tôi thêm 2 bộ lọc

  • Xem xét các hàng có khối lượng giảm tải dưới 50% và ít nhất phải có một số lưu lượng truy cập [chúng tôi không muốn các hàng không có lưu lượng truy cập]
  • Chúng tôi cũng sẽ xóa một số mẫu đã biết. Điều này dựa trên ngữ cảnh của khách hàng nhưng về cơ bản chỉ ra các URL không bao giờ được lưu vào bộ đệm

low_offload_urls = urls_df[[urls_df['OK Volume'] > 0] & [urls_df['Volume Offload']

Chủ Đề