0
0
Lập trình
Admin Team
Admin Teamtechmely

DBT: Công Cụ Biến Đổi Dữ Liệu Hiệu Quả Cho Nhà Phân Tích Và Kỹ Sư Dữ Liệu

Đăng vào 1 tuần trước

• 4 phút đọc

Giới thiệu về DBT

Chào mọi người! Hôm nay, chúng ta sẽ cùng khám phá về dbt (data build tool) - một công cụ tuyệt vời dành cho những ai làm việc trong lĩnh vực dữ liệu. dbt giúp các nhà phân tích và kỹ sư dữ liệu biến đổi, kiểm tra và tài liệu hóa dữ liệu một cách dễ dàng và hiệu quả.

dbt Core và dbt Cloud

dbt cung cấp hai phiên bản: dbt Core và dbt Cloud. dbt Core là phiên bản mã nguồn mở, cho phép người dùng cài đặt trực tiếp trên máy tính hoặc máy chủ, rất phù hợp với những ai thích tùy chỉnh. Ngược lại, dbt Cloud là dịch vụ được quản lý mà bạn có thể sử dụng qua giao diện trực tuyến, giúp tối ưu hóa quy trình làm việc từ phát triển đến kiểm thử và triển khai mô hình dữ liệu.

Tính Năng Nổi Bật Của dbt

Một số tính năng chính của dbt bao gồm:

  • Biến đổi và chạy mã SQL: dbt giúp bạn biên dịch và thực thi mã phân tích trên nền tảng dữ liệu, từ đó cải thiện quy trình làm việc.
  • Quản lý phiên bản dễ dàng: Tích hợp với GitHub giúp theo dõi thay đổi và đảm bảo tính nhất quán.
  • Tạo macro bằng Jinja: dbt sử dụng Jinja để tạo mã SQL động, giúp tối ưu hóa truy vấn và giảm thiểu lỗi.
  • Mô hình hóa dữ liệu mô-đun: Khuyến khích việc phát triển các mô hình độc lập, từ đó dễ dàng kiểm tra và tái sử dụng.
  • Trực quan hóa dòng chảy dữ liệu: Tạo cái nhìn rõ ràng về nguồn gốc và phụ thuộc của dữ liệu, giúp dễ dàng quản lý và phân tích.

Phần mềm dbt không chỉ tối ưu hóa công việc cho các nhà phân tích mà còn nâng cao chất lượng và tính tin cậy của dữ liệu phân tích.

Hướng Dẫn Cài Đặt và Sử Dụng dbt Core

Bước 1: Tạo Dữ Liệu Mẫu

Đầu tiên, bạn có thể tạo một bộ dữ liệu mẫu để kiểm tra:

python Copy
import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# Tạo dữ liệu mẫu
np.random.seed(0)
start_date = datetime(2021, 1, 1)
end_date = datetime(2021, 12, 31)
date_range = pd.date_range(start_date, end_date, freq='D')

data = {
    'sale_id': range(1, len(date_range) + 1),
    'sales_channel': np.random.choice(['Online', 'Retail', 'Wholesale'], size=len(date_range)),
    'revenue': np.random.uniform(100, 500, size=len(date_range)).round(2),
    'sale_date': date_range
}

sales_data = pd.DataFrame(data)
sales_data.to_csv('sales_data.csv', index=False)
print("Sample data generated:")
print(sales_data.head())

Bước 2: Cài Đặt dbt

Cài đặt dbt Core trên máy của bạn:

bash Copy
pip install dbt-core
pip install --upgrade dbt-bigquery

Bước 3: Khởi Tạo Dự Án dbt

Tạo dự án dbt mới:

bash Copy
dbt init my_sales_project

Cấu trúc thư mục sẽ được thiết lập tự động.

Bước 4: Tạo File “profiles.yml”

Thiết lập file profiles.yml để kết nối với BigQuery:

yaml Copy
my_sales_project:
  target: dev
  outputs:
    dev:
      type: bigquery
      method: service-account
      project: [tên-dự-án-GCP-của-bạn]
      dataset: [tên-dataset-trong-BigQuery]
      threads: 1
      keyfile: [đường-dẫn-tới-file-key-json]
      timeout_seconds: 300

Bước 5: Tạo Mô Hình Dữ Liệu

Trong thư mục models, tạo file SQL mới:

sql Copy
# models/sales_analysis.sql

SELECT
    sales_channel,
    COUNT(*) as total_sales,
    SUM(revenue) as total_revenue,
    AVG(revenue) as average_revenue
FROM
    {{ ref('sales_data') }}
GROUP BY
    sales_channel

Bước 6: Chạy dbt

Thực hiện lệnh sau để xây dựng mô hình:

bash Copy
dbt run

Bước 7: Kiểm Tra Dữ Liệu

Tạo các kiểm tra chất lượng dữ liệu:

yaml Copy
# models/schema.yml

version: 2
models:
  - name: sales_analysis
    description: "Phân tích doanh thu theo kênh bán hàng"
    columns:
      - name: sales_channel
        description: "Kênh bán hàng"
        tests:
          - unique
          - not_null
      - name: total_revenue
        description: "Tổng doanh thu"
        tests:
          - not_null

Bước 8: Sinh Tài Liệu và Kiểm Tra

Chạy các lệnh để sinh tài liệu và kiểm tra:

bash Copy
dbt test
dbt docs generate

Kết Luận

dbt Core là công cụ không thể thiếu cho bất kỳ nhà phân tích hoặc nhà phát triển dữ liệu nào. Nó giúp cải thiện hiệu suất làm việc và đảm bảo rằng dữ liệu luôn được xử lý một cách minh bạch và hiệu quả.

Tài Liệu Tham Khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào