Trong Databricks, để chạy được notebook, thực thi job ETL, huấn luyện mô hình Machine Learning, hay phân tích dữ liệu bằng SQL – bạn cần một thứ gọi là Compute.
Vậy compute trong Databricks là gì? Có những loại nào? Khi nào dùng loại nào? – Tất cả sẽ được giải thích trong bài viết này một cách dễ hiểu như một lớp học thực hành.
🧠 1. Compute là gì?
Trong Databricks, compute là cách gọi chung cho các tài nguyên tính toán (CPU, RAM, GPU...) mà bạn có thể sử dụng để:
-
Xử lý dữ liệu bằng PySpark, SQL, Scala...
-
Chạy job định kỳ (ETL pipeline, Machine Learning)
-
Viết và chạy notebook phân tích dữ liệu tương tác
-
Thực hiện truy vấn SQL ad-hoc
📌 Bạn có thể:
-
Tạo compute mới (nếu có quyền)
-
Kết nối đến compute có sẵn trong workspace
🧰 2. Các loại Compute trong Databricks
Databricks phân loại compute thành 6 nhóm chính, mỗi loại có mục tiêu và cách dùng riêng:
🔹 2.1. All-purpose compute (cluster đa năng)
💡 Dùng để: chạy notebook, làm việc tương tác, kiểm thử mã lệnh
-
Do người dùng chủ động tạo qua UI/API
-
Có thể start, stop, restart bất kỳ lúc nào
-
Hỗ trợ autoscaling, gắn notebook, thư viện,...
-
Dùng chung bởi nhiều người (nếu cho phép)
✅ Phù hợp:
-
Nhà phân tích dữ liệu (Data Analyst)
-
Nhà khoa học dữ liệu (Data Scientist)
-
Các bài học thử, demo, khám phá dữ liệu
🔹 2.2. Jobs compute (cluster chạy job)
💡 Dùng để: chạy các job định kỳ, có cấu hình riêng biệt, tách biệt hoàn toàn
-
Tự động khởi tạo khi bạn chạy một job trong chế độ "new job cluster"
-
Chỉ tồn tại trong thời gian job chạy, sau đó tự huỷ
-
Không thể restart lại
-
Bảo vệ sự cô lập giữa các job, tăng tính ổn định
✅ Phù hợp:
-
Chạy pipeline hàng ngày (ETL, ML)
-
Tự động hoá trong production
🔹 2.3. Serverless compute for notebooks
💡 Dùng để: chạy SQL & Python notebook không cần cấu hình gì
-
Tự động cấp phát tài nguyên khi bạn mở notebook
-
Không cần lo setup cluster
-
Trả phí theo thời gian thực tế sử dụng
✅ Phù hợp:
-
Truy vấn nhanh, demo dữ liệu, dạy học
-
Người không rành hạ tầng (analyst, citizen data user)
🔹 2.4. Serverless compute for jobs
💡 Dùng để: chạy Lakehouse Jobs nhanh, tiết kiệm tài nguyên
-
Giống như jobs compute nhưng là dạng serverless
-
Không cần setup cluster trước
-
Dễ tích hợp với LakeFlow hoặc workflow pipelines
✅ Phù hợp:
-
Data pipelines lớn, chạy bất thường
-
Tối ưu chi phí (trả theo lượt chạy)
🔹 2.5. Instance Pools
💡 Dùng để: giảm thời gian khởi động cluster
-
Một nhóm instance (máy ảo) luôn sẵn sàng
-
Các jobs hoặc cluster dùng chung pool này để khởi động nhanh hơn
✅ Phù hợp:
-
Tổ chức có nhiều job chạy ngắt quãng
-
Muốn giảm chi phí idle nhưng vẫn cần cluster bật nhanh
🔹 2.6. SQL Warehouses (trước đây gọi là SQL endpoints)
💡 Dùng để: chạy truy vấn SQL, BI, dashboarding
-
Có 2 loại:
-
Serverless SQL Warehouse: Tự động bật/tắt, không cần cấu hình
-
Classic SQL Warehouse: Do bạn cấu hình kích thước, thời gian giữ nóng,...
-
-
Được dùng trong môi trường Databricks SQL Editor hoặc từ Power BI, Tableau
✅ Phù hợp:
-
Nhà phân tích (SQL Analyst)
-
Dashboard, báo cáo tự động
⚙️ 3. Databricks Runtime là gì?
Khi tạo bất kỳ compute nào, bạn cần chọn Databricks Runtime – tức là bộ môi trường mà Spark sẽ chạy trên đó.
Mỗi Runtime bao gồm:
-
Apache Spark + Delta Lake
-
Thư viện Java, Scala, Python, R
-
Ubuntu OS
-
Các thư viện chuyên dụng (GPU, ML, MLflow...)
Một số loại phổ biến:
-
Databricks Runtime 12.x, 13.x...
-
Databricks Runtime for Machine Learning
-
Databricks Runtime for Genomics
-
Databricks Runtime with Conda (cho ML/DS)
📌 Có các bản LTS (Long Term Support) duy trì tới 3 năm.
🧭 4. Khi nào chọn compute nào?
Tình huống | Chọn loại compute |
---|---|
Viết notebook phân tích, test, explore | All-purpose cluster |
Chạy ETL hàng ngày, định kỳ | Jobs compute |
Chạy SQL bảng đơn giản | Serverless SQL warehouse |
Truy vấn SQL không thường xuyên | Serverless compute |
Cần khởi động nhanh nhiều job | Instance pool |
Dành riêng cho team BI | Classic SQL warehouse |
🔚 Tổng kết
Hiểu và chọn đúng loại compute sẽ giúp bạn:
✅ Tối ưu hiệu suất
✅ Giảm chi phí đáng kể
✅ Tránh lỗi khi scale lớn
Ở phần tiếp theo (Part 2), mình sẽ hướng dẫn bạn:
📦 Cách tạo và cấu hình All-purpose Cluster + Jobs Cluster trong Databricks UI và CLI