Nghiên cứu tình huống: Xây dựng mô hình dữ liệu E-Commerce với dbt
Susan Sun
Freelance Data Scientist
Cài đặt dbt
pip install dbt
Khởi tạo dự án dbt looker_ecommerce
dbt init looker_ecommerce
Xác minh thiết lập thành công
cd looker_ecommerce
dbt debug
Thư mục tệp do dbt tự tạo:

distribution_centers.csv nhỏ và tĩnh, chỉ có 10 dòng
Mẫu tệp thô distribution_centers.csv

orders.csv lớn và cập nhật liên tục, có 125.000 dòng và 9 cột
Mẫu tệp thô orders.csv:

Tệp dữ liệu thô Distribution center:
Tệp dữ liệu thô Orders:
dbt seeddbt sourcedbt init tự tạo cấu trúc tệp cơ bản:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Nạp distribution_center dưới dạng seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Trong stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Nạp orders dưới dạng source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
Trong stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Tài liệu hóa sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
Trong _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml trong cùng thư mục models:version: 2
models:
- name: stg_looker__distribution_centers
description: Tên và vị trí trung tâm phân phối
- name: stg_looker__orders
description: Thông tin đơn hàng như trạng thái
looker_ecommerce/
macros/
models/
_looker__models.yml
_looker__sources.yml
stg_looker__distribution_centers.sql
stg_looker__orders.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Nạp các tệp csv làm seed
dbt seed
Tạo hoặc cập nhật toàn bộ models trong dự án
dbt run
Tạo hoặc cập nhật model chỉ định
dbt run --select model
Chạy toàn bộ tests trong dự án
dbt test
Chạy tests cho model chỉ định
dbt test --select model
Kết hợp dbt run và dbt test trong một lệnh
dbt build
dbt build --select model
Quy ước đặt tên models:
<data_source>__<model_name>.sqlví dụ
stg_looker__distribution_centers.sqlstg_looker__orders.sqlQuy ước đặt tên tệp yaml:
_<data_source>__<artifact_type>.ymlví dụ
_looker__models.yml_looker__sources.ymlNghiên cứu tình huống: Xây dựng mô hình dữ liệu E-Commerce với dbt