Tự động hóa Data Pipeline trong Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake

Snowflake lưu đệm kết quả ở ba lớp — mỗi lớp có phạm vi và thời hạn khác nhau

| Điều kiện | Trượt cache khi… |
|---|---|
| Văn bản truy vấn khớp chính xác | Khác chữ hoa/thường, khoảng trắng, hoặc bí danh |
| Không có hàm không tái sử dụng | các hàm thay đổi giữa các lần chạy: RANDOM |
| Bảng nền không đổi | Có DML, reclustering, hoặc consolidation từ lần chạy trước |
| Kết quả lưu còn khả dụng | Hết TTL 24 giờ không được dùng lại, hoặc sau 31 ngày |
| Role có đủ quyền | SELECT: role thiếu quyền SHOW: role khác |

Warehouse cache
Metadata cache
Ngăn cắt tỉa phân vùng:
SELECT *
FROM logistics.shipments
WHERE MONTH(dispatch_date) = 3;
Cho phép cắt tỉa phân vùng:
SELECT *
FROM logistics.shipments
WHERE dispatch_date >= '2024-03-01'
AND dispatch_date < '2024-04-01';
Tránh SELECT *
-- Đọc mọi cột
SELECT *
FROM logistics.shipments
WHERE region = 'EMEA';
-- Chỉ đọc cột cần thiết
SELECT shipment_id
, delivery_days
FROM logistics.shipments
WHERE region = 'EMEA';
Tránh cross-join ngầm
-- Thiếu điều kiện join = tích Descartes
SELECT s.shipment_id
, c.name
FROM shipments s, carriers c;
-- JOIN tường minh với điều kiện ON
SELECT s.shipment_id
, c.name
FROM shipments s
JOIN carriers c ON s.carrier_id = c.id;
Tự động hóa Data Pipeline trong Snowflake