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ốngChọn loại compute
Viết notebook phân tích, test, exploreAll-purpose cluster
Chạy ETL hàng ngày, định kỳJobs compute
Chạy SQL bảng đơn giảnServerless SQL warehouse
Truy vấn SQL không thường xuyênServerless compute
Cần khởi động nhanh nhiều jobInstance pool
Dành riêng cho team BIClassic 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


📚 Tham khảo chính thức