💭 Quản lý chất lượng dữ liệu, DuckDB và CI
Để quản lý chất lượng dữ liệu một cách hiệu quả và dễ dàng, chúng tôi đã tạo ra một GitHub Action để cài đặt duckdb. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng DuckDB kết hợp với tiện ích mở rộng http_client để xác thực các tài khoản GitHub trong quy trình CI, đảm bảo rằng dữ liệu của chúng ta luôn chính xác.
🦆 Quản lý chất lượng dữ liệu dễ dàng với DuckDB trên GitHub ♾️
Tại sao cần quản lý chất lượng dữ liệu?
Quản lý chất lượng dữ liệu là một bước quan trọng trong bất kỳ quy trình phát triển phần mềm nào. Chất lượng dữ liệu không chỉ ảnh hưởng đến kết quả của các phân tích và báo cáo mà còn ảnh hưởng đến quyết định kinh doanh. Việc xác thực dữ liệu từ các nguồn web như GitHub là một phần không thể thiếu trong quy trình CI.
Thách thức gặp phải trong CI
Gần đây, tôi đã phải đối mặt với một thách thức khác: trong quy trình CI của chúng tôi, tôi cần xác thực rằng một tài khoản GitHub thực sự tồn tại (ví dụ, để tránh lỗi chính tả). Việc này rất quan trọng để đảm bảo rằng các dữ liệu được lưu trữ là chính xác và có thể sử dụng được.
🍿 Tóm tắt nội dung
Trong bài viết này, tôi sẽ hướng dẫn bạn cách sử dụng DuckDB với tiện ích mở rộng http_client để xác thực các tài khoản GitHub đã lưu trong một bảng dữ liệu, giúp kiểm tra tính hợp lệ của dữ liệu trong quy trình CI. Chúng ta sẽ sử dụng một tập lệnh SQL đơn giản và các ràng buộc CHECK để thực hiện điều này.
🔖 Tài nguyên tham khảo
🕹️ Thực hiện công việc với SQL
Cài đặt tiện ích mở rộng
Đầu tiên, hãy cài đặt tiện ích mở rộng:
sql
INSTALL http_client FROM community;
LOAD http_client;
Tạo bảng dữ liệu mẫu
Tiếp theo, tạo một bảng với một số dữ liệu mẫu:
sql
CREATE OR REPLACE TABLE person_gh_member
(
sam_accountname VARCHAR PRIMARY KEY,
gh_member VARCHAR NOT NULL
);
-- Chèn dữ liệu vào bảng
INSERT INTO person_gh_member (sam_accountname, gh_member)
VALUES
('adriens', 'adriens'),
('jdoe', 'johndoe'),
('asmith', 'annasmithRRRRR');
Kiểm tra trạng thái tài khoản GitHub
Cuối cùng, chạy một truy vấn để kiểm tra trạng thái của từng tài khoản GitHub:
sql
CREATE OR REPLACE VIEW v_person_gh_status AS
SELECT
sam_accountname,
gh_member,
'https://github.com/' || gh_member AS gh_url,
CAST(http_get(gh_url).status AS INTEGER) AS http_gh_status
FROM person_gh_member;
Để kiểm tra dữ liệu, chúng ta có thể thêm một điều kiện kiểm tra xem trạng thái có khác 200 không:
sql
SELECT *
FROM v_person_gh_status
WHERE http_gh_status <> 200;
Tạo bảng kiểm tra tài khoản GitHub
sql
CREATE OR REPLACE TABLE lint_gh_handle(
gh_handle VARCHAR PRIMARY KEY,
gh_url VARCHAR NOT NULL UNIQUE CHECK (gh_url LIKE 'https://github.com/%'),
gh_status INTEGER CHECK (gh_status = 200)
);
INSERT INTO lint_gh_handle(
gh_handle,
gh_url,
gh_status)
SELECT
gh_member,
'https://github.com/' || gh_member AS gh_url,
CAST(http_get(gh_url).status AS INTEGER) AS gh_status
FROM person_gh_member;
Thực hành tốt nhất
- Kiểm tra định kỳ: Thực hiện kiểm tra định kỳ các tài khoản GitHub để đảm bảo dữ liệu luôn chính xác.
- Sử dụng ràng buộc CHECK: Ràng buộc CHECK giúp bảo vệ dữ liệu và đảm bảo rằng chỉ những tài khoản hợp lệ mới được chèn vào bảng.
Cạm bẫy thường gặp
- Lỗi chính tả: Đảm bảo rằng không có lỗi chính tả trong tên tài khoản GitHub để tránh việc xác thực không thành công.
- Giới hạn số lượng yêu cầu: Lưu ý rằng GitHub có giới hạn số lượng yêu cầu API, vì vậy hãy tối ưu hóa số lượng truy vấn của bạn.
Mẹo tối ưu hóa hiệu suất
- Sử dụng bộ nhớ cache: Nếu có thể, hãy sử dụng bộ nhớ cache để giảm thiểu số lần gọi API đến GitHub.
- Tối ưu hóa truy vấn SQL: Đảm bảo rằng các truy vấn SQL của bạn được tối ưu hóa để tăng tốc độ thực thi.
Giải quyết sự cố
Nếu gặp phải lỗi trong quá trình thực hiện, hãy kiểm tra:
- Kết nối Internet: Đảm bảo rằng bạn có kết nối Internet ổn định để truy cập GitHub.
- Quyền truy cập API: Kiểm tra xem tài khoản của bạn có đủ quyền truy cập vào API của GitHub hay không.
Kết luận
Quản lý chất lượng dữ liệu là một phần quan trọng trong quy trình phát triển phần mềm. Sử dụng DuckDB kết hợp với tiện ích mở rộng http_client giúp xác thực các tài khoản GitHub một cách đơn giản và hiệu quả. Hãy bắt đầu áp dụng ngay hôm nay để nâng cao chất lượng dữ liệu của bạn trong quy trình CI!
Câu hỏi thường gặp (FAQ)
1. DuckDB là gì?
DuckDB là một hệ quản trị cơ sở dữ liệu quan hệ được thiết kế để dễ sử dụng và tích hợp với các công cụ phân tích dữ liệu.
2. Làm thế nào để sử dụng tiện ích mở rộng http_client trong DuckDB?
Bạn chỉ cần cài đặt tiện ích mở rộng này và sau đó có thể sử dụng các hàm như http_get để lấy dữ liệu từ các nguồn web.
3. Có những rủi ro nào khi xác thực dữ liệu từ GitHub?
Các lỗi chính tả và giới hạn gọi API của GitHub là những rủi ro lớn. Hãy đảm bảo kiểm tra cẩn thận các tài khoản trước khi thêm vào cơ sở dữ liệu của bạn.