0
0
Lập trình
TT

Tự động hóa DBT và Snowflake với Python đơn giản

Đăng vào 7 tháng trước

• 4 phút đọc

Giới thiệu

Trong thế giới phát triển dữ liệu ngày nay, việc tự động hóa các quy trình là rất quan trọng để tiết kiệm thời gian và giảm thiểu sai sót. Bài viết này sẽ hướng dẫn bạn cách sử dụng Python để tự động hóa việc tạo cấu trúc dự án dbt từ tài khoản Snowflake, giúp bạn dễ dàng thiết lập môi trường làm việc mà không cần phải tạo từng tệp YAML hay SQL một cách thủ công.

Tại sao nên tự động hóa việc tạo nguồn dữ liệu?

Việc định nghĩa nguồn dữ liệu bằng tay có thể rất lặp đi lặp lại và dễ gây ra lỗi. Khi làm việc với các cơ sở dữ liệu phức tạp, việc thiết lập ban đầu có thể trở thành một nút thắt. Sử dụng một kịch bản Python để truy vấn metadata từ Snowflake và tạo các tệp nguồn dbt sẽ:

  • Tiết kiệm hàng giờ đồng hồ thiết lập
  • Tránh được những lỗi của con người trong YAML/SQL
  • Dễ dàng mở rộng khi các schema hoặc bảng phát triển
  • Thiết lập nền tảng cho các biến đổi liên tục và tái tạo được

Thiết lập môi trường phát triển

Để bắt đầu, bạn cần chuẩn bị một vài công cụ:

  • Python 3.13+: Tải xuống và cài đặt.
  • Pip: Trình quản lý gói Python — cài đặt nếu chưa có.
  • Virtualenv: Để cách ly các phụ thuộc của bạn.

Bước 1 — Cài đặt Python

Bạn có thể tải Python từ trang chính thức: Python.org.

Sau khi tải xuống, hãy cài đặt phiên bản mới nhất của Python 3.

Bạn có thể xác minh rằng Python đã được cài đặt đúng cách bằng lệnh:

Copy
python --version

Bạn sẽ nhận được kết quả như sau:

Copy
Python 3.12.1

Bước 2 — Cài đặt pip

Tải pip bằng lệnh:

Copy
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Sau đó, cài đặt pip:

Copy
python get-pip.py

Kiểm tra cài đặt:

Copy
python -m pip --version

Bạn sẽ nhận được thông tin về phiên bản pip đã cài đặt.

Bước 3 — Cài đặt virtualenv

Virtualenv là một công cụ trong Python cho phép bạn tạo các môi trường cách ly nơi bạn có thể cài đặt các gói và phụ thuộc mà không ảnh hưởng đến cài đặt Python toàn cầu. Bạn có thể chạy toàn bộ dự án mà không cần virtualenv nhưng tôi khuyên bạn nên cách ly các dự án khác nhau để tránh xung đột giữa các phiên bản thư viện khác nhau.

Copy
python -m pip install --user virtualenv

Bước 4 — Tạo môi trường ảo

Chúng ta đã sẵn sàng để tạo môi trường ảo. Chuyển đến thư mục mà bạn muốn tạo dự án và chạy:

Copy
python -m venv dbt-env

Bước 5 — Kích hoạt môi trường ảo

Khi môi trường ảo đã được tạo, bạn cần kích hoạt nó. Trong PowerShell, từ thư mục gốc mà bạn đã tạo môi trường, kích hoạt môi trường như sau:

Copy
.\Scripts\activate.ps1

Cài đặt DBT

Việc cài đặt DBT với pip rất đơn giản. Theo hướng dẫn từ tài liệu dbt. Tôi tóm tắt như sau cho Snowflake:

Copy
python -m pip install dbt-core

Rồi cài đặt các thư viện cụ thể cho Snowflake:

Copy
python -m pip install dbt-snowflake

Tạo tài khoản Snowflake

Nếu bạn không có quyền truy cập vào tài khoản Snowflake Enterprise, cách dễ nhất và rẻ nhất là sử dụng tài khoản thử nghiệm. Hãy hoàn thành đăng ký tại Snowflake Signup.

Khởi tạo dự án DBT

Với môi trường đã kích hoạt, bắt đầu dự án dbt bằng cách chạy lệnh sau:

Copy
dbt init snowflake_dbt_main

Trong quá trình thiết lập, hãy chọn Snowflake, nhập thông tin xác thực của bạn và chỉ định schema mặc định.

Tạo nguồn dữ liệu Snowflake

Để tạo nguồn dữ liệu từ tài khoản Snowflake mới tạo, bạn có thể sử dụng kịch bản Python dưới đây. Kịch bản này kết nối tới tài khoản Snowflake của bạn, lấy thông tin về các bảng và views và tự động tạo các đối tượng DBT.

Kịch bản tự động hóa Python

Kịch bản Python này kết nối với Snowflake, trích xuất metadata về các bảng, views và cột, sau đó tự động tạo:

  • Các tệp YAML mô tả nguồn dữ liệu
  • Các tệp SQL truy vấn các nguồn này với một wrapper tiêu chuẩn

Dưới đây là đoạn mã mẫu để bạn tham khảo. Hãy điều chỉnh theo cấu trúc Snowflake của bạn.

Chạy tự động hóa

Khi bạn chạy kịch bản này, nó sẽ tự động tạo các bảng và views từ cơ sở dữ liệu SNOWFLAKE_SAMPLE_DATA và các schemas tương ứng. Bạn sẽ thấy thông báo tạo trong terminal và kiểm tra các tệp trong thư mục models.

Copy
python .\data_generate.py

Bắt đầu biến đổi!

Với các nguồn dữ liệu đã được thiết lập, bạn có thể sử dụng các lệnh dbt:

Copy
dbt run
dbt test

Kết luận

Thiết lập một môi trường dbt kết nối với Snowflake không còn là điều khó khăn hay đáng sợ. Với một chút phép màu scripting, bạn có thể tự động hóa những công việc nặng nhọc và tập trung vào điều thực sự quan trọng — tạo ra các biến đổi và thông tin dữ liệu.

Hãy thử nghiệm, mở rộng và chia sẻ những cải tiến của bạn!

🚀 Nếu bạn thấy bài viết này hữu ích, hãy cho tôi một cái vỗ tay, chia sẻ phản hồi của bạn trong phần bình luận hoặc đặt câu hỏi phía dưới nhé!

💬 Tôi mong chờ những ý kiến và câu chuyện của bạn — hãy cùng nhau phát triển trong thế giới kỹ thuật dữ liệu!

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