Databricks là một nền tảng phân tích hợp nhất, cho phép tích hợp kỹ thuật dữ liệu, máy học và phân tích kinh doanh. Nằm ở trung tâm của hệ sinh thái này là Databricks Notebooks, các không gian làm việc tương tác được thiết kế cho khám phá dữ liệu, phát triển mô hình và quy trình sản xuất.
Trong bài viết này, tôi sẽ hướng dẫn bạn bắt đầu với Databrick Notebooks. Nếu bạn hoàn toàn mới, bạn có thể muốn bắt đầu bằng cách đăng ký khóa học Introduction to Databricks của chúng tôi để hiểu tường tận về Databricks và cách nó hiện đại hóa kiến trúc dữ liệu. Khóa học của chúng tôi rất kỹ lưỡng và dạy về nhiều chủ đề, bao gồm quản lý catalog và ingest dữ liệu, nên hãy thử nhé.
Databricks Notebooks là gì?
Databricks Notebooks là các không gian làm việc tương tác trên đám mây cho phép người dùng thực hiện khám phá dữ liệu, kỹ thuật dữ liệu, máy học và phân tích trong một môi trường cộng tác. Chúng sử dụng mô hình thực thi theo ô (cell), nơi người dùng có thể viết và chạy mã trong các khối rời rạc.
Ngôn ngữ được hỗ trợ
Databricks Notebooks hỗ trợ đa ngôn ngữ, vì vậy bạn không chỉ có thể chọn ngôn ngữ ưa thích mà còn có thể chuyển đổi giữa các ngôn ngữ trong cùng một notebook. Các ngôn ngữ bao gồm Python, SQL, Scala và R, tất cả đều có khóa học nhập môn tại chúng tôi.
Để tạo thuận lợi cho khả năng tương tác đa ngôn ngữ, Databricks cung cấp các magic command như sau:
%python: Chạy một cell bằng Python.
%sql: Thực thi các truy vấn SQL.
%scala: Xử lý các lệnh dựa trên Scala.
%r: Thực thi mã R.
Các tính năng chính
Databricks Notebooks vượt ra ngoài môi trường viết mã truyền thống nhờ các khả năng chính sau:
Đồng tác giả theo thời gian thực: Nhiều người dùng có thể chỉnh sửa, thực thi và bình luận trên notebook đồng thời, giúp cộng tác liền mạch.
Tự động tạo phiên bản: Lịch sử phiên bản tích hợp cho phép theo dõi thay đổi, hoàn tác chỉnh sửa và duy trì tính toàn vẹn mã.
Thực thi tương tác: Người dùng có thể chạy từng cell hoặc toàn bộ quy trình, giúp gỡ lỗi và phát triển lặp hiệu quả hơn.
Trực quan hóa tích hợp: Hỗ trợ dựng biểu đồ, bảng và dashboard mà không cần thư viện ngoài.
Tích hợp Git: Hỗ trợ gốc cho kho Git giúp kiểm soát phiên bản, chia sẻ mã và quy trình CI/CD.
Bắt đầu với Databricks Notebooks
Đọc về tính năng là một chuyện, tự mình trải nghiệm lại là chuyện khác. Cách tốt nhất để đánh giá Databricks là bắt tay vào làm. Vì vậy, trong phần này, tôi sẽ giúp bạn bắt đầu tạo, quản lý và điều hướng notebook trong không gian làm việc Databricks. Sau đó, tôi tin bạn sẽ tự thấy nó hữu ích ra sao.
Tạo và quản lý notebooks
Trong không gian làm việc Databricks, bạn có thể tạo notebook mới hoặc quản lý notebook hiện có. Hãy xem các cách dưới đây.
Cách tạo notebook mới trong không gian làm việc Databricks
Để tạo notebook mới trong Databricks:
Đi tới Databricks Workspace của bạn.
Databricks Workspace. Hình: Tác giả.
Nhấp Workspace > Create > Notebook.
Tạo Databricks Notebook. Hình: Tác giả.
Đặt tên, chọn ngôn ngữ mặc định và gắn với một cluster.
Chọn tên và ngôn ngữ mặc định cho Databricks Notebook. Hình: Tác giả.
Nhập (import) notebooks hiện có
Databricks cho phép người dùng nhập notebook từ nhiều nguồn, như GitHub và Git Repositories, URL bên ngoài hoặc tệp cục bộ tải lên dưới dạng tệp .dbc (Databricks archive) hoặc .ipynb (Jupyter).
Thực hiện các bước sau để nhập các notebook hiện có vào Databricks Workspace:
Nhấp Workspace > Import.
Nhập notebook hiện có vào Databricks Workspace. Hình: Tác giả.
Chọn Source (URL, tệp hoặc Git).
Tải lên hoặc cung cấp liên kết tới notebook.
Đổi tên, sắp xếp và quản lý quyền truy cập
Để đổi tên Databricks Notebook, nhấp vào tiêu đề notebook và chỉnh sửa tên.
Bạn cũng có thể di chuyển notebooks vào thư mục để cấu trúc tốt hơn.
Di chuyển Databricks Notebooks vào thư mục. Hình: Tác giả.
Trước khi chia sẻ Datbricks Notebook của bạn, bạn có thể quản lý quyền truy cập để kiểm soát ai có thể xem, chỉnh sửa hoặc quản lý notebook.
Điều hướng cơ bản và tổng quan UI
Trước khi chuyển sang các ví dụ thực hành với Databricks Notebooks, tôi sẽ giới thiệu qua UI và điều hướng của nền tảng.
Tổng quan thanh công cụ, hành động trên cell và thanh bên phải
Thanh công cụ của Databricks Notebook cung cấp truy cập nhanh tới các thao tác sau:
Run: Thực thi từng cell hoặc toàn bộ notebook. Mỗi cell có các tùy chọn:
Chạy, chỉnh sửa, xóa hoặc di chuyển cell.
Thay đổi loại cell như code, markdown, SQL hoặc Scala.
Đặt magic command như %python hoặc %sql.
Chạy một cell trong Databricks Notebook. Hình: Tác giả.
Clear State: Đặt lại biến và trạng thái thực thi.
Đặt lại biến và trạng thái thực thi trong Databricks Notebook. Hình: Tác giả.
Chế độ xem (View Mode): Chuyển giữa chế độ chỉnh sửa và trình chiếu.
Bình luận: Thêm phản hồi cộng tác trên các cell cụ thể.
Bình luận trong Databricks Notebook. Hình: Tác giả.
Phiên bản (Revisions): Xem và khôi phục các phiên bản trước.
Lịch sử phiên bản trong Databricks Notebook. Hình: Tác giả.
Các cải tiến UI mới
Databricks đã giới thiệu một số cải tiến UI để mang lại trải nghiệm trực quan hơn. Với các nâng cấp này, Databricks Notebooks cung cấp môi trường phát triển gọn gàng và mạnh mẽ hơn cho các chuyên gia dữ liệu. Bao gồm:
Giao diện hiện đại: Giao diện gọn gàng, thân thiện hơn với người dùng.
Cải thiện chỉnh sửa Markdown: Hỗ trợ tốt hơn cho định dạng và nhúng hình ảnh.
Chế độ Tập trung (Focus Mode): Giảm xao nhãng bằng cách ẩn các thành phần UI không cần thiết.
Gỡ lỗi tương tác: Công cụ gỡ lỗi mới cho thực thi từng bước và truy vết lỗi.
Thực hành: Viết và chạy mã
Databricks Notebooks cung cấp môi trường viết mã tương tác, nơi người dùng có thể viết, thực thi và ghi chú cho mã. Trong phần này, tôi sẽ trình bày cách làm việc với các cell mã, Markdown và chạy mã hiệu quả.
Code cells và Markdown
Databricks Notebooks hỗ trợ nhiều ngôn ngữ, bao gồm Python, SQL, Scala và R trong cùng một notebook.
Viết mã Python trong Databricks Notebook
Dùng magic command %python để viết mã Python trong một cell của Databricks Notebook.
%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header","true").load("/databricks-datasets/airlines/part-00000")
pd_df = df.limit(5).toPandas()# Convert to Pandas DataFrame
display(pd_df)# Works in DatabricksĐược hỗ trợ bởi
Ví dụ mã Python trong Databricks Notebook. Hình: Tác giả.
Viết mã SQL trong Databricks Notebook
Để viết mã SQL trong Databricks Notebook, sử dụng magic command %sql. Nếu bạn đã đặt SQL làm ngôn ngữ mặc định của notebook, bạn có thể chạy cell mà không cần thêm magic command %sql.
-- Querying a dataset in SQLSELECT origin, dest,COUNT(*)AS flight_count
FROM flights_table
GROUPBY origin, dest
ORDERBY flight_count DESCLIMIT10;Được hỗ trợ bởi
Mã SQL trong Databricks Notebook. Hình: Tác giả.
Viết mã Scala trong Databricks Notebook
Dùng magic command %scala để viết mã Scala trong một cell của Databricks Notebook.
%scala
// Reading and displaying data in Scalaval data = spark.read.option("header","true").csv("/databricks-datasets/airlines/part-00000")// Display as a table in Databricks
display(data)Được hỗ trợ bởi
Mã Scala trong Databricks Notebook. Hình: Tác giả.
Viết mã R trong Databricks Notebook
Bạn cũng có thể viết mã R trong cell của Databricks Notebook bằng magic command %r.
%r
# Load a sample dataset in R
library(SparkR)
df <- read.df("/databricks-datasets/airlines/part-00000", source ="csv", header ="true")
head(df)Được hỗ trợ bởi
Mã R trong Databricks Notebook. Hình: Tác giả.
Dùng các cell Markdown để viết tài liệu
Các cell Markdown được dùng để thêm văn bản, tiêu đề, danh sách và tài liệu khác. Ví dụ sau cho thấy cách viết một cell Markdown và cách kết quả hiển thị trong Databricks Notebook.
%md
# Data Exploration Notebook
This notebook explores airline flight data, providing insights into flight frequency and destinations.
## **Steps:** 1. Load and display the dataset
2. Query data using SQL
3. Generate visualizationsĐược hỗ trợ bởi
Chạy các cell
Databricks Notebooks cho phép thực thi mã linh hoạt thông qua chạy từng cell hoặc theo lô.
Thực thi từng cell và chạy tất cả cell
Để chạy một cell, nhấp nút Run (▶) trong cell hoặc dùng phím tắt:
Shift + Enter: Chạy cell hiện tại và chuyển sang cell tiếp theo.
Ctrl + Enter: Chạy cell mà không chuyển sang cell tiếp theo.
Để chạy tất cả cell trong notebook:
Nhấp Run All trên thanh công cụ.
Notebook sẽ chạy tuần tự từ trên xuống dưới.
Chạy từng cell và chạy tất cả cell trong Databricks Notebook. Hình: Tác giả.
Xem đầu ra
Databricks Notebooks hỗ trợ nhiều định dạng đầu ra, bao gồm bảng, biểu đồ và log. Ví dụ, mã Python sau hiển thị 5 dòng đầu của bộ dữ liệu ‘airlines’.
%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header","true").load("/databricks-datasets/airlines/part-00000")# Displaying the first 5 rows of a DataFrame
display(df.limit(5))Được hỗ trợ bởi
Xem đầu vào trong Databricks Notebook. Hình: Tác giả.
Chúng ta cũng có thể dùng Databricks Notebooks để trực quan hóa đầu ra của các cell. Ví dụ, mã Python dưới đây chọn 10 hãng hàng không có tần suất cao nhất, chuyển dữ liệu từ PySpark sang Pandas, rồi dùng Matplotlib để tạo biểu đồ cột.
%python
# Import necessary librariesimport matplotlib.pyplot as plt
import pandas as pd
# Load the dataset using PySpark
df = spark.read.option("header","true").csv("/databricks-datasets/airlines/part-00000")# Select the top 10 most frequent airlines (carrier column)
top_airlines = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)# Convert PySpark DataFrame to Pandas DataFrame
pd_df = top_airlines.toPandas()# Convert count column to integer (since it's a string in CSV)
pd_df["count"]= pd_df["count"].astype(int)# Plot a bar chart
plt.figure(figsize=(10,6))
plt.bar(pd_df["UniqueCarrier"], pd_df["count"], color="#ac4ce4")# Add titles and labels
plt.xlabel("Airline Carrier", fontsize=12)
plt.ylabel("Flight Count", fontsize=12)
plt.title("Top 10 Most Frequent Airline Carriers", fontsize=14)
plt.xticks(rotation=45)# Rotate x-axis labels for better readability# Show the plot
plt.show()Được hỗ trợ bởi
Trực quan hóa đầu ra trong Databricks Notebook. Hình: Tác giả.
Tương tự, bạn có thể hiển thị nhiều đầu ra từ việc thực thi một cell duy nhất trong Databricks Notebook. Ví dụ, đầu ra của mã dưới đây sẽ hiển thị 5 dòng đầu của bộ dữ liệu airlines và số lượng của 10 hãng hàng không có tần suất cao nhất.
%python
# Show the top 5 rows in an interactive table
display(df.limit(5))# Show the top 10 most frequent airline carriers
top_carriers = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)
display(top_carriers)Được hỗ trợ bởi
Hiển thị nhiều đầu ra từ việc thực thi một cell trong Databricks Notebook. Hình: Tác giả.
Các tính năng nâng cao của Databricks Notebook
Databricks Notebooks cung cấp khả năng tự động hóa, tạo phiên bản và tích hợp mạnh mẽ nhằm nâng cao năng suất, cộng tác và hiệu quả vận hành. Trong phần này, tôi sẽ khám phá các tính năng nâng cao và thực tiễn tốt nhất để khai thác tối đa Databricks Notebooks.
Tự động hóa và lập lịch
Databricks cho phép người dùng tự động chạy notebook bằng cách lập lịch như job và tham số hóa đầu vào cho thực thi động.
Lập lịch notebooks dưới dạng jobs
Người dùng có thể lên lịch notebook chạy theo các khoảng thời gian xác định, đảm bảo quy trình tự động cho ETL, báo cáo và huấn luyện mô hình. Thực hiện các bước sau để lập lịch một job notebook:
Mở notebook và nhấp Run as Job hoặc đi tới tab Jobs.
Nhấp CreateJob và chọn notebook.
Tạo Job Run trong Databricks Notebook. Hình: Tác giả.
Cấu hình lịch và kích hoạt chạy hằng ngày, theo giờ, hoặc cron tùy chỉnh.
Cấu hình lịch và trigger trong Databricks Notebook. Hình: Tác giả.
Gắn một cluster và đặt phụ thuộc nếu cần.
Nhấp RunNow để chạy ngay hoặc để chạy theo lịch.
Thực thi Job Runs trong Databricks Notebook. Hình: Tác giả.
Dùng tham số và widget cho thực thi động
Databricks widgets cho phép bạn định nghĩa tham số động, giúp cùng một notebook có thể chạy với các đầu vào khác nhau. Ví dụ, widget dbutils.widgets.text() dưới đây tạo một ô nhập văn bản tương tác có nhãn "Enter Parameter" với giá trị mặc định default_value. Sau đó, nó lấy giá trị người dùng nhập và in ra.
dbutils.widgets.text("input_param","default_value","Enter Parameter")
param_value = dbutils.widgets.get("input_param")print(f"User Input: {param_value}")Được hỗ trợ bởi
Tương tự, mã dưới đây tạo một menu thả xuống có nhãn dataset với các tùy chọn sales, marketing và finance, mặc định là sales. Nó lấy lựa chọn của người dùng và in ra dataset đã chọn.
dbutils.widgets.dropdown("dataset","sales",["sales","marketing","finance"])
selected_dataset = dbutils.widgets.get("dataset")print(f"Processing {selected_dataset} dataset")Được hỗ trợ bởi
Tạo phiên bản và cộng tác
Databricks cung cấp các tính năng tạo phiên bản và cộng tác tích hợp, giúp dễ dàng theo dõi thay đổi, khôi phục phiên bản trước và làm việc nhóm theo thời gian thực.
Lịch sử phiên bản tự động và tích hợp Git
Mọi thay đổi trong Databricks Notebook đều được tạo phiên bản tự động. Bạn có thể thực hiện các thao tác sau với lịch sử phiên bản:
Xem lịch sử phiên bản: Nhấp Revision History để theo dõi thay đổi.
Xem lịch sử phiên bản trong Databricks Notebook. Hình: Tác giả.
Khôi phục phiên bản trước: Quay lại trạng thái trước đó khi cần.
Dùng tích hợp Git: Đồng bộ notebook với GitHub, Azure DevOps hoặc Bitbucket để kiểm soát phiên bản.
Tính năng cộng tác thời gian thực
Databricks Notebooks cho phép các nhóm cùng viết, bình luận và chia sẻ insight qua các tính năng sau:
Cùng chỉnh sửa thời gian thực: Nhiều người dùng có thể chỉnh sửa một notebook cùng lúc.
Bình luận nội tuyến: Thêm bình luận trên các dòng mã cụ thể để thảo luận.
Chia sẻ và phân quyền: Gán vai trò như Viewer, Editor và Owner để kiểm soát truy cập.
Tích hợp với công cụ khác
Databricks Notebooks tích hợp với Delta Live Tables, MLflow, SQL Warehouses và các pipeline CI/CD để mở rộng chức năng.
Dùng Databricks với Delta Live Tables
Delta Live Tables (DLT) đơn giản hóa tự động hóa pipeline dữ liệu với ETL khai báo. Truy vấn sau tạo một Pipeline Delta Live Table bằng SQL.
-- Creating a live table called 'sales_cleaned' that stores cleaned dataCREATE LIVE TABLE sales_cleaned AS-- Selecting all columns where the 'order_status' is 'completed'SELECT*FROM raw_sales
WHERE order_status ='completed';Được hỗ trợ bởi
MLflow để theo dõi thí nghiệm
MLflow, được tích hợp với Databricks, cho phép theo dõi các thí nghiệm máy học. Ví dụ, mã dưới đây ghi nhận learning rate và accuracy của một mô hình máy học vào MLflow như một phần của thí nghiệm được theo dõi. Sau khi ghi nhận, nó kết thúc phiên thí nghiệm. Điều này cho phép bạn theo dõi siêu tham số và hiệu suất mô hình theo thời gian, cũng như so sánh các lần chạy khác nhau.
# Import the MLflow library for experiment trackingimport mlflow
mlflow.start_run()
mlflow.log_param("learning_rate",0.01)
mlflow.log_metric("accuracy",0.95)
mlflow.end_run()Được hỗ trợ bởi
Xuất Notebooks và tích hợp CI/CD
Databricks Notebooks có thể được xuất ra nhiều định dạng, bao gồm:
.html: Chia sẻ báo cáo chỉ đọc.
.ipynb: Chuyển sang Jupyter Notebooks.
.dbc: Databricks Archive để dễ di chuyển.
Ví dụ, bạn có thể xuất một notebook qua CLI bằng lệnh sau.
databricks workspace export /Users/my_notebook /local/path/my_notebook.ipynbĐược hỗ trợ bởi
Mẹo và thủ thuật để thành thạo Databricks Notebooks
Databricks Notebooks cung cấp nhiều tính năng mạnh để tinh gọn quy trình, nâng cao năng suất và cải thiện cộng tác. Trong phần này, tôi sẽ giới thiệu các magic command, cải tiến UI, kỹ thuật khám phá dữ liệu và chiến lược quản lý mã mà tôi thấy hữu ích khi làm việc trên nền tảng Databricks Notebooks.
Magic commands
Databricks cung cấp các magic command giúp đơn giản hóa tác vụ, như chạy script, quản lý tệp và cài đặt gói.
%run
Để thực thi một notebook khác trong notebook hiện tại nhằm mô-đun hóa quy trình, bạn có thể dùng lệnh %run. Bạn cũng có thể dùng %run để chia nhỏ các dự án lớn thành các notebook có thể tái sử dụng. Ví dụ, lệnh sau chạy notebook data_preprocessing để biến các biến, hàm và đầu ra khả dụng trong notebook hiện tại.
%run /Users/john.doe/notebooks/data_preprocessingĐược hỗ trợ bởi
%sh
Lệnh %sh cho phép bạn thực thi các lệnh shell Linux trực tiếp trong notebook. Ở ví dụ dưới, lệnh sẽ liệt kê nội dung của DBFS /dbfs/data/.
Tương tự, lệnh %fs cho phép bạn tương tác với Databricks File System (DBFS) để thao tác tệp. Ví dụ, lệnh dưới đây liệt kê tất cả tệp và thư mục trong /databricks-datasets/, nơi chứa các bộ dữ liệu công khai do Databricks cung cấp.
%sqlSELECTCOUNT(*),AVG(salary),MAX(age)FROM employees;Được hỗ trợ bởi
Chiến lược quản lý mã
Hãy dùng các kỹ thuật sau để quản lý mã trong Databricks Notebooks. Trước hết, hãy lưu các đoạn mã tái sử dụng trong các notebook riêng và gọi chúng bằng %run. Đồng thời, dùng Databricks Utilities (dbutils) cho chuyển đổi. Ngoài ra, để dễ đọc, nên tuân theo PEP 8 (Python) hoặc các thực tiễn tốt nhất của SQL. Luôn dùng cell markdown để chú thích.
-- Select customer_id and calculate total revenue per customerSELECT customer_id,SUM(total_amount)AS revenue
FROM sales_data
-- Group results by customer to get total revenue per customerGROUPBY customer_id
-- Order customers by revenue in descending order (highest first)ORDERBY revenue DESC-- Return only the top 10 customers by revenueLIMIT10;Được hỗ trợ bởi
Nếu gặp sự cố khi làm việc với Databricks Notebooks, bạn có thể khắc phục bằng các cách sau:
Cluster bị treo? Khởi động lại kernel (Run → ClearState&Restart).
Chạy chậm? Kiểm tra Spark UI (Cluster → SparkUI) để tìm nút thắt.
Xung đột phiên bản? Dùng %pip list để kiểm tra phụ thuộc.
Dùng các phím tắt sau để viết mã nhanh hơn:
Shift + Enter → Chạy cell hiện tại.
Ctrl + / → Bật/tắt chú thích các dòng đã chọn.
Esc + A/B → Thêm một cell mới phía trên/dưới.
Tình huống và kịch bản thực tế
Databricks Notebooks được sử dụng rộng rãi trong kỹ thuật dữ liệu, máy học và trí tuệ kinh doanh. Trong phần này, tôi sẽ nêu các nghiên cứu tình huống thực tế và đoạn mã minh họa cách các nhóm tận dụng Databricks Notebooks cho quy trình sản xuất.
Trường hợp 1: Pipeline ETL cho kỹ thuật dữ liệu
Xem xét kịch bản một công ty bán lẻ nạp dữ liệu bán hàng thô, làm sạch và lưu trữ vào Delta Lake để báo cáo. Quy trình như sau:
Bước 1: Đọc dữ liệu thô từ lưu trữ đám mây.
Bước 2: Làm sạch và biến đổi dữ liệu bằng PySpark.
Bước 3: Lưu dữ liệu đã làm sạch vào Delta Table.
Bước 4: Lập lịch notebook dưới dạng job.
Quy trình này sẽ cải thiện độ tin cậy dữ liệu và hiệu suất truy vấn cho báo cáo. Đoạn mã dưới đây minh họa cách triển khai giải pháp trên:
# Read raw sales data from cloud storage
df = spark.read.format("csv").option("header","true").load("s3://sales-data/raw/")# Data cleaning and transformation
df_cleaned = df.filter(df["status"]=="completed").dropDuplicates()# Save to Delta Table for analysis
df_cleaned.write.format("delta").mode("overwrite").saveAsTable("sales_cleaned")Được hỗ trợ bởi
Trường hợp 2: Phát triển mô hình máy học
Xem xét kịch bản một tổ chức tài chính dự đoán vỡ nợ khoản vay bằng mô hình máy học. Để triển khai quy trình này trong Databricks Notebook, bạn sẽ làm theo các bước dưới đây. Kết quả là theo dõi và triển khai mô hình tự động bằng MLflow.
Bước 1: Nạp và tiền xử lý dữ liệu khoản vay.
Bước 2: Huấn luyện mô hình logistic regression bằng MLflow.
Bước 3: Đăng ký và theo dõi mô hình.
# import librariesfrom sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import mlflow
# Load and prepare data
df = spark.read.table("loan_data").toPandas()
X_train, X_test, y_train, y_test = train_test_split(df.drop("default", axis=1), df["default"])# Train model
model = LogisticRegression()
model.fit(X_train, y_train)# Log model in MLflow
mlflow.sklearn.log_model(model,"loan_default_model")Được hỗ trợ bởi
Trường hợp 3: Phân tích dữ liệu ad hoc cho trí tuệ kinh doanh
Trong kịch bản một đội ngũ marketing phân tích xu hướng tương tác của khách hàng, bạn sẽ triển khai giải pháp theo các bước sau:
Bước 1: Truy vấn dữ liệu hành vi khách hàng bằng SQL.
Bước 2: Tạo các trực quan hóa tương tác.
Quy trình này sẽ giúp ra quyết định nhanh hơn với các dashboard tương tác.
%sql-- Count the number of interactions per customer segmentSELECT customer_segment,COUNT(*)AS interactions
FROM user_activity
-- Group by customer segment to aggregate interaction countsGROUPBY customer_segment
-- Order results by interaction count in descending orderORDERBY interactions DESC;Được hỗ trợ bởi
Nếu bạn cần ôn lại kiến thức về Databricks SQL, tôi khuyến nghị đọc hướng dẫn Databricks SQL của chúng tôi để học cách thiết lập SQL Warehouse từ giao diện web Databricks.
Khắc phục sự cố và Câu hỏi thường gặp
Khi chạy đồng thời các notebook Databricks, việc gỡ lỗi và duy trì hiệu năng có thể nảy sinh những thách thức riêng. Dưới đây là một số gợi ý giúp bạn giữ cho notebook không lỗi trong môi trường sản xuất.
Các vấn đề thường gặp và cách xử lý
Dưới đây là một số vấn đề và giải pháp khuyến nghị:
Một notebook chạy tốt khi riêng lẻ nhưng thất bại khi nhiều người dùng hoặc job chạy đồng thời: Vấn đề có thể do biến dùng chung. Ngoài ra, một cluster đơn có thể không hỗ trợ nhiều lượt thực thi. Để giải quyết, hãy dùng widget để tham số hóa hoặc dùng tự động mở rộng cluster để đảm bảo đủ tài nguyên cho chạy đồng thời.
Một notebook từng chạy nhanh nay chạy lâu hơn đáng kể: Nguyên nhân có thể do các phép biến đổi Spark kém hiệu quả gây shuffle quá mức hoặc quá nhiều dữ liệu được cache/persist khiến tốn bộ nhớ. Để giải quyết, quản lý bộ nhớ bằng .persist() và .unpersist(). Đồng thời theo dõi Spark UI để phát hiện phân vùng lệch (skew) và tối ưu truy vấn với Delta tables.
%run thất bại khi cố thực thi một notebook khác: Có thể do đường dẫn notebook không đúng hoặc notebook được tham chiếu phụ thuộc vào cluster không khả dụng. Để xử lý, dùng đường dẫn tuyệt đối khi import Notebook hoặc kiểm tra tình trạng cluster để đảm bảo notebook tham chiếu dùng cluster tương thích.
Một job notebook được lập lịch bị thất bại: Điều này có thể xảy ra nếu cluster bị dừng trước khi chạy hoặc phụ thuộc bên ngoài bị lỗi, như kết nối cơ sở dữ liệu hay gọi API. Để xử lý, bật khởi động lại cluster khi lỗi. Trong cài đặt job, bật Retry onFailure. Đồng thời dùng các khối Try-Except cho các lệnh gọi bên ngoài.
Đọc hướng dẫn Mastering the Databricks API của chúng tôi để học cách dùng Databricks REST API cho lập lịch job và mở rộng các pipeline tự động.
Thực tiễn tốt nhất để duy trì notebooks trong sản xuất
Hãy dùng các kỹ thuật sau để duy trì Databricks Notebooks khi ở môi trường sản xuất:
Mô-đun hóa mã thành các notebook tái sử dụng: Chia nhỏ notebook lớn thành các đơn vị nhỏ hơn, có thể tái sử dụng và dùng %run để gọi chúng. Lưu các hàm trợ giúp trong các notebook tiện ích riêng.
Dùng kiểm soát phiên bản (tích hợp Git): Bật Databricks Repos để theo dõi thay đổi và hoàn tác phiên bản.
Tối ưu lựa chọn cluster cho jobs: Dùng job clusters thay vì interactive clusters cho các lượt chạy theo lịch.
Triển khai logging và cảnh báo: Dùng dbutils.notebook.exit() để ghi trạng thái job. Bạn cũng có thể cấu hình cảnh báo email trong Jobs UI để thông báo nhóm khi có lỗi.
Ghi tài liệu mã và dùng Markdown để rõ ràng: Dùng các cell markdown để mô tả các bước quy trình và logic.
Kết luận
Nếu bạn muốn khám phá các khái niệm nền tảng của Databricks, tôi rất khuyến nghị tham gia khóa học Introduction to Databricks của chúng tôi. Khóa học này xây dựng nền tảng hiểu biết cần thiết để bạn thử nghiệm các tính năng nâng cao như magic commands, tham số hóa và tối ưu hiệu năng. Cuối cùng, tôi cũng nghĩ bạn nên tìm hiểu cách đạt được một Chứng chỉ Databricks. Bài viết của chúng tôi giúp bạn khám phá lợi ích nghề nghiệp và chọn chứng chỉ phù hợp với mục tiêu của mình.
Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.
Câu hỏi thường gặp liên quan
Databricks Assistant là gì?⌄
Databricks Assistant là một lập trình viên cặp và tác nhân hỗ trợ dựa trên AI, giúp bạn tạo notebooks, truy vấn, dashboard và tệp hiệu quả hơn. Nó có thể sinh, tối ưu, gỡ lỗi, giải thích và sửa mã cũng như truy vấn.
Databricks Notebooks hỗ trợ những ngôn ngữ nào?⌄
Databricks Notebooks hỗ trợ Python, SQL, Scala và R, và bạn có thể chạy các ngôn ngữ khác nhau trong cùng một notebook bằng các magic command như %python, %sql, %r và %scala.
Nhiều người dùng có thể chỉnh sửa cùng một notebook cùng lúc không?⌄
Có, Databricks Notebooks hỗ trợ đồng tác giả theo thời gian thực, cho phép nhiều người dùng chỉnh sửa và bình luận trên cùng một tài liệu đồng thời.
Tôi có thể xuất hoặc tải xuống một notebook không?⌄
Có, notebook có thể được xuất ra nhiều định dạng, gồm .ipynb (Jupyter), .dbc (Databricks archive), .py (script) và .html (định dạng có thể đọc).
Làm sao cải thiện hiệu năng thực thi notebook?⌄
Để cải thiện hiệu năng, hãy dùng tự động mở rộng cluster, tối ưu xử lý dữ liệu với Delta Lake, cache dữ liệu hiệu quả và tránh các thao tác shuffle không cần thiết.
Databricks là một nền tảng phân tích hợp nhất, cho phép tích hợp kỹ thuật dữ liệu, máy học và phân tích kinh doanh. Nằm ở trung tâm của hệ sinh thái này là Databricks Notebooks, các không gian làm việc tương tác được thiết kế cho khám phá dữ liệu, phát triển mô hình và quy trình sản xuất.
Trong bài viết này, tôi sẽ hướng dẫn bạn bắt đầu với Databrick Notebooks. Nếu bạn hoàn toàn mới, bạn có thể muốn bắt đầu bằng cách đăng ký khóa học Introduction to Databricks của chúng tôi để hiểu tường tận về Databricks và cách nó hiện đại hóa kiến trúc dữ liệu. Khóa học của chúng tôi rất kỹ lưỡng và dạy về nhiều chủ đề, bao gồm quản lý catalog và ingest dữ liệu, nên hãy thử nhé.
Databricks Notebooks là gì?
Databricks Notebooks là các không gian làm việc tương tác trên đám mây cho phép người dùng thực hiện khám phá dữ liệu, kỹ thuật dữ liệu, máy học và phân tích trong một môi trường cộng tác. Chúng sử dụng mô hình thực thi theo ô (cell), nơi người dùng có thể viết và chạy mã trong các khối rời rạc.
Ngôn ngữ được hỗ trợ
Databricks Notebooks hỗ trợ đa ngôn ngữ, vì vậy bạn không chỉ có thể chọn ngôn ngữ ưa thích mà còn có thể chuyển đổi giữa các ngôn ngữ trong cùng một notebook. Các ngôn ngữ bao gồm Python, SQL, Scala và R, tất cả đều có khóa học nhập môn tại chúng tôi.
Để tạo thuận lợi cho khả năng tương tác đa ngôn ngữ, Databricks cung cấp các magic command như sau:
%python: Chạy một cell bằng Python.%sql: Thực thi các truy vấn SQL.%scala: Xử lý các lệnh dựa trên Scala.%r: Thực thi mã R.Các tính năng chính
Databricks Notebooks vượt ra ngoài môi trường viết mã truyền thống nhờ các khả năng chính sau:
Bắt đầu với Databricks Notebooks
Đọc về tính năng là một chuyện, tự mình trải nghiệm lại là chuyện khác. Cách tốt nhất để đánh giá Databricks là bắt tay vào làm. Vì vậy, trong phần này, tôi sẽ giúp bạn bắt đầu tạo, quản lý và điều hướng notebook trong không gian làm việc Databricks. Sau đó, tôi tin bạn sẽ tự thấy nó hữu ích ra sao.
Tạo và quản lý notebooks
Trong không gian làm việc Databricks, bạn có thể tạo notebook mới hoặc quản lý notebook hiện có. Hãy xem các cách dưới đây.
Cách tạo notebook mới trong không gian làm việc Databricks
Để tạo notebook mới trong Databricks:
Databricks Workspace. Hình: Tác giả.
Tạo Databricks Notebook. Hình: Tác giả.
Chọn tên và ngôn ngữ mặc định cho Databricks Notebook. Hình: Tác giả.
Nhập (import) notebooks hiện có
Databricks cho phép người dùng nhập notebook từ nhiều nguồn, như GitHub và Git Repositories, URL bên ngoài hoặc tệp cục bộ tải lên dưới dạng tệp
.dbc(Databricks archive) hoặc.ipynb(Jupyter).Thực hiện các bước sau để nhập các notebook hiện có vào Databricks Workspace:
Nhập notebook hiện có vào Databricks Workspace. Hình: Tác giả.
Đổi tên, sắp xếp và quản lý quyền truy cập
Để đổi tên Databricks Notebook, nhấp vào tiêu đề notebook và chỉnh sửa tên.
Bạn cũng có thể di chuyển notebooks vào thư mục để cấu trúc tốt hơn.
Di chuyển Databricks Notebooks vào thư mục. Hình: Tác giả.
Trước khi chia sẻ Datbricks Notebook của bạn, bạn có thể quản lý quyền truy cập để kiểm soát ai có thể xem, chỉnh sửa hoặc quản lý notebook.
Điều hướng cơ bản và tổng quan UI
Trước khi chuyển sang các ví dụ thực hành với Databricks Notebooks, tôi sẽ giới thiệu qua UI và điều hướng của nền tảng.
Tổng quan thanh công cụ, hành động trên cell và thanh bên phải
Thanh công cụ của Databricks Notebook cung cấp truy cập nhanh tới các thao tác sau:
Chạy, chỉnh sửa, xóa hoặc di chuyển cell.
Thay đổi loại cell như code, markdown, SQL hoặc Scala.
Đặt magic command như
%pythonhoặc%sql.Chạy một cell trong Databricks Notebook. Hình: Tác giả.
Đặt lại biến và trạng thái thực thi trong Databricks Notebook. Hình: Tác giả.
Bình luận trong Databricks Notebook. Hình: Tác giả.
Lịch sử phiên bản trong Databricks Notebook. Hình: Tác giả.
Các cải tiến UI mới
Databricks đã giới thiệu một số cải tiến UI để mang lại trải nghiệm trực quan hơn. Với các nâng cấp này, Databricks Notebooks cung cấp môi trường phát triển gọn gàng và mạnh mẽ hơn cho các chuyên gia dữ liệu. Bao gồm:
Thực hành: Viết và chạy mã
Databricks Notebooks cung cấp môi trường viết mã tương tác, nơi người dùng có thể viết, thực thi và ghi chú cho mã. Trong phần này, tôi sẽ trình bày cách làm việc với các cell mã, Markdown và chạy mã hiệu quả.
Code cells và Markdown
Databricks Notebooks hỗ trợ nhiều ngôn ngữ, bao gồm Python, SQL, Scala và R trong cùng một notebook.
Viết mã Python trong Databricks Notebook
Dùng magic command
%pythonđể viết mã Python trong một cell của Databricks Notebook.Ví dụ mã Python trong Databricks Notebook. Hình: Tác giả.
Viết mã SQL trong Databricks Notebook
Để viết mã SQL trong Databricks Notebook, sử dụng magic command
%sql. Nếu bạn đã đặt SQL làm ngôn ngữ mặc định của notebook, bạn có thể chạy cell mà không cần thêm magic command%sql.Mã SQL trong Databricks Notebook. Hình: Tác giả.
Viết mã Scala trong Databricks Notebook
Dùng magic command
%scalađể viết mã Scala trong một cell của Databricks Notebook.Mã Scala trong Databricks Notebook. Hình: Tác giả.
Viết mã R trong Databricks Notebook
Bạn cũng có thể viết mã R trong cell của Databricks Notebook bằng magic command
%r.Mã R trong Databricks Notebook. Hình: Tác giả.
Dùng các cell Markdown để viết tài liệu
Các cell Markdown được dùng để thêm văn bản, tiêu đề, danh sách và tài liệu khác. Ví dụ sau cho thấy cách viết một cell Markdown và cách kết quả hiển thị trong Databricks Notebook.
Chạy các cell
Databricks Notebooks cho phép thực thi mã linh hoạt thông qua chạy từng cell hoặc theo lô.
Thực thi từng cell và chạy tất cả cell
Để chạy một cell, nhấp nút Run (▶) trong cell hoặc dùng phím tắt:
Để chạy tất cả cell trong notebook:
Chạy từng cell và chạy tất cả cell trong Databricks Notebook. Hình: Tác giả.
Xem đầu ra
Databricks Notebooks hỗ trợ nhiều định dạng đầu ra, bao gồm bảng, biểu đồ và log. Ví dụ, mã Python sau hiển thị 5 dòng đầu của bộ dữ liệu ‘airlines’.
Xem đầu vào trong Databricks Notebook. Hình: Tác giả.
Chúng ta cũng có thể dùng Databricks Notebooks để trực quan hóa đầu ra của các cell. Ví dụ, mã Python dưới đây chọn 10 hãng hàng không có tần suất cao nhất, chuyển dữ liệu từ PySpark sang Pandas, rồi dùng Matplotlib để tạo biểu đồ cột.
Trực quan hóa đầu ra trong Databricks Notebook. Hình: Tác giả.
Tương tự, bạn có thể hiển thị nhiều đầu ra từ việc thực thi một cell duy nhất trong Databricks Notebook. Ví dụ, đầu ra của mã dưới đây sẽ hiển thị 5 dòng đầu của bộ dữ liệu airlines và số lượng của 10 hãng hàng không có tần suất cao nhất.
Hiển thị nhiều đầu ra từ việc thực thi một cell trong Databricks Notebook. Hình: Tác giả.
Các tính năng nâng cao của Databricks Notebook
Databricks Notebooks cung cấp khả năng tự động hóa, tạo phiên bản và tích hợp mạnh mẽ nhằm nâng cao năng suất, cộng tác và hiệu quả vận hành. Trong phần này, tôi sẽ khám phá các tính năng nâng cao và thực tiễn tốt nhất để khai thác tối đa Databricks Notebooks.
Tự động hóa và lập lịch
Databricks cho phép người dùng tự động chạy notebook bằng cách lập lịch như job và tham số hóa đầu vào cho thực thi động.
Lập lịch notebooks dưới dạng jobs
Người dùng có thể lên lịch notebook chạy theo các khoảng thời gian xác định, đảm bảo quy trình tự động cho ETL, báo cáo và huấn luyện mô hình. Thực hiện các bước sau để lập lịch một job notebook:
Tạo Job Run trong Databricks Notebook. Hình: Tác giả.
Cấu hình lịch và trigger trong Databricks Notebook. Hình: Tác giả.
Thực thi Job Runs trong Databricks Notebook. Hình: Tác giả.
Dùng tham số và widget cho thực thi động
Databricks widgets cho phép bạn định nghĩa tham số động, giúp cùng một notebook có thể chạy với các đầu vào khác nhau. Ví dụ, widget
dbutils.widgets.text()dưới đây tạo một ô nhập văn bản tương tác có nhãn "Enter Parameter" với giá trị mặc địnhdefault_value. Sau đó, nó lấy giá trị người dùng nhập và in ra.Tương tự, mã dưới đây tạo một menu thả xuống có nhãn
datasetvới các tùy chọnsales,marketingvàfinance, mặc định làsales. Nó lấy lựa chọn của người dùng và in ra dataset đã chọn.Tạo phiên bản và cộng tác
Databricks cung cấp các tính năng tạo phiên bản và cộng tác tích hợp, giúp dễ dàng theo dõi thay đổi, khôi phục phiên bản trước và làm việc nhóm theo thời gian thực.
Lịch sử phiên bản tự động và tích hợp Git
Mọi thay đổi trong Databricks Notebook đều được tạo phiên bản tự động. Bạn có thể thực hiện các thao tác sau với lịch sử phiên bản:
Xem lịch sử phiên bản trong Databricks Notebook. Hình: Tác giả.
Tính năng cộng tác thời gian thực
Databricks Notebooks cho phép các nhóm cùng viết, bình luận và chia sẻ insight qua các tính năng sau:
Tích hợp với công cụ khác
Databricks Notebooks tích hợp với Delta Live Tables, MLflow, SQL Warehouses và các pipeline CI/CD để mở rộng chức năng.
Dùng Databricks với Delta Live Tables
Delta Live Tables (DLT) đơn giản hóa tự động hóa pipeline dữ liệu với ETL khai báo. Truy vấn sau tạo một Pipeline Delta Live Table bằng SQL.
MLflow để theo dõi thí nghiệm
MLflow, được tích hợp với Databricks, cho phép theo dõi các thí nghiệm máy học. Ví dụ, mã dưới đây ghi nhận learning rate và accuracy của một mô hình máy học vào MLflow như một phần của thí nghiệm được theo dõi. Sau khi ghi nhận, nó kết thúc phiên thí nghiệm. Điều này cho phép bạn theo dõi siêu tham số và hiệu suất mô hình theo thời gian, cũng như so sánh các lần chạy khác nhau.
Xuất Notebooks và tích hợp CI/CD
Databricks Notebooks có thể được xuất ra nhiều định dạng, bao gồm:
.html: Chia sẻ báo cáo chỉ đọc..ipynb: Chuyển sang Jupyter Notebooks..dbc: Databricks Archive để dễ di chuyển.Ví dụ, bạn có thể xuất một notebook qua CLI bằng lệnh sau.
Mẹo và thủ thuật để thành thạo Databricks Notebooks
Databricks Notebooks cung cấp nhiều tính năng mạnh để tinh gọn quy trình, nâng cao năng suất và cải thiện cộng tác. Trong phần này, tôi sẽ giới thiệu các magic command, cải tiến UI, kỹ thuật khám phá dữ liệu và chiến lược quản lý mã mà tôi thấy hữu ích khi làm việc trên nền tảng Databricks Notebooks.
Magic commands
Databricks cung cấp các magic command giúp đơn giản hóa tác vụ, như chạy script, quản lý tệp và cài đặt gói.
%run
Để thực thi một notebook khác trong notebook hiện tại nhằm mô-đun hóa quy trình, bạn có thể dùng lệnh
%run. Bạn cũng có thể dùng%runđể chia nhỏ các dự án lớn thành các notebook có thể tái sử dụng. Ví dụ, lệnh sau chạy notebookdata_preprocessingđể biến các biến, hàm và đầu ra khả dụng trong notebook hiện tại.%sh
Lệnh
%shcho phép bạn thực thi các lệnh shell Linux trực tiếp trong notebook. Ở ví dụ dưới, lệnh sẽ liệt kê nội dung của DBFS/dbfs/data/.%fs
Tương tự, lệnh
%fscho phép bạn tương tác với Databricks File System (DBFS) để thao tác tệp. Ví dụ, lệnh dưới đây liệt kê tất cả tệp và thư mục trong/databricks-datasets/, nơi chứa các bộ dữ liệu công khai do Databricks cung cấp.Tương tự, bạn có thể dùng
%fs cpđể sao chép tệp,%fs rmđể xóa tệp và%fs headđể xem trước tệp.%pip
Lệnh
%pipcài đặt các gói Python trong môi trường notebook. Lệnh sau sẽ cài đặt góimatplotlibtrong phiên notebook hiện tại.Lệnh
%pip freezeđược dùng để liệt kê các gói đã cài đặt và đảm bảo khả năng tái lập.Cải tiến UI
Databricks đã giới thiệu các cải tiến UI sau giúp cải thiện điều hướng, gỡ lỗi và trải nghiệm tổng thể:
Tôi luôn khuyến nghị bật Focus Mode (View → Focus Mode) để giảm xao nhãng.
Kỹ thuật khám phá dữ liệu
Databricks cung cấp các công cụ tích hợp để duyệt tập dữ liệu, hiểu schema và profiling dữ liệu trực tiếp trong notebooks.
Để duyệt dữ liệu trong DBFS, dùng
%fs lshoặcdisplay(dbutils.fs.ls())để kiểm tra các tập dữ liệu có sẵn.Bạn cũng có thể khám phá schema bảng trực tiếp trong thanh bên UI bằng cách làm theo các bước sau:
Đối với data profiling, bạn có thể tóm tắt dữ liệu bằng
display()hoặc truy vấn SQL.Chiến lược quản lý mã
Hãy dùng các kỹ thuật sau để quản lý mã trong Databricks Notebooks. Trước hết, hãy lưu các đoạn mã tái sử dụng trong các notebook riêng và gọi chúng bằng
%run. Đồng thời, dùng Databricks Utilities (dbutils) cho chuyển đổi. Ngoài ra, để dễ đọc, nên tuân theo PEP 8 (Python) hoặc các thực tiễn tốt nhất của SQL. Luôn dùng cell markdown để chú thích.Nếu gặp sự cố khi làm việc với Databricks Notebooks, bạn có thể khắc phục bằng các cách sau:
Cluster bị treo? Khởi động lại kernel (Run → Clear State & Restart).
Chạy chậm? Kiểm tra Spark UI (Cluster → Spark UI) để tìm nút thắt.
Xung đột phiên bản? Dùng
%pip listđể kiểm tra phụ thuộc.Dùng các phím tắt sau để viết mã nhanh hơn:
Tình huống và kịch bản thực tế
Databricks Notebooks được sử dụng rộng rãi trong kỹ thuật dữ liệu, máy học và trí tuệ kinh doanh. Trong phần này, tôi sẽ nêu các nghiên cứu tình huống thực tế và đoạn mã minh họa cách các nhóm tận dụng Databricks Notebooks cho quy trình sản xuất.
Trường hợp 1: Pipeline ETL cho kỹ thuật dữ liệu
Xem xét kịch bản một công ty bán lẻ nạp dữ liệu bán hàng thô, làm sạch và lưu trữ vào Delta Lake để báo cáo. Quy trình như sau:
Quy trình này sẽ cải thiện độ tin cậy dữ liệu và hiệu suất truy vấn cho báo cáo. Đoạn mã dưới đây minh họa cách triển khai giải pháp trên:
Trường hợp 2: Phát triển mô hình máy học
Xem xét kịch bản một tổ chức tài chính dự đoán vỡ nợ khoản vay bằng mô hình máy học. Để triển khai quy trình này trong Databricks Notebook, bạn sẽ làm theo các bước dưới đây. Kết quả là theo dõi và triển khai mô hình tự động bằng MLflow.
Trường hợp 3: Phân tích dữ liệu ad hoc cho trí tuệ kinh doanh
Trong kịch bản một đội ngũ marketing phân tích xu hướng tương tác của khách hàng, bạn sẽ triển khai giải pháp theo các bước sau:
Quy trình này sẽ giúp ra quyết định nhanh hơn với các dashboard tương tác.
Nếu bạn cần ôn lại kiến thức về Databricks SQL, tôi khuyến nghị đọc hướng dẫn Databricks SQL của chúng tôi để học cách thiết lập SQL Warehouse từ giao diện web Databricks.
Khắc phục sự cố và Câu hỏi thường gặp
Khi chạy đồng thời các notebook Databricks, việc gỡ lỗi và duy trì hiệu năng có thể nảy sinh những thách thức riêng. Dưới đây là một số gợi ý giúp bạn giữ cho notebook không lỗi trong môi trường sản xuất.
Các vấn đề thường gặp và cách xử lý
Dưới đây là một số vấn đề và giải pháp khuyến nghị:
Một notebook chạy tốt khi riêng lẻ nhưng thất bại khi nhiều người dùng hoặc job chạy đồng thời: Vấn đề có thể do biến dùng chung. Ngoài ra, một cluster đơn có thể không hỗ trợ nhiều lượt thực thi. Để giải quyết, hãy dùng widget để tham số hóa hoặc dùng tự động mở rộng cluster để đảm bảo đủ tài nguyên cho chạy đồng thời.
Một notebook từng chạy nhanh nay chạy lâu hơn đáng kể: Nguyên nhân có thể do các phép biến đổi Spark kém hiệu quả gây shuffle quá mức hoặc quá nhiều dữ liệu được cache/persist khiến tốn bộ nhớ. Để giải quyết, quản lý bộ nhớ bằng
.persist()và.unpersist(). Đồng thời theo dõi Spark UI để phát hiện phân vùng lệch (skew) và tối ưu truy vấn với Delta tables.%run thất bại khi cố thực thi một notebook khác: Có thể do đường dẫn notebook không đúng hoặc notebook được tham chiếu phụ thuộc vào cluster không khả dụng. Để xử lý, dùng đường dẫn tuyệt đối khi import Notebook hoặc kiểm tra tình trạng cluster để đảm bảo notebook tham chiếu dùng cluster tương thích.
Một job notebook được lập lịch bị thất bại: Điều này có thể xảy ra nếu cluster bị dừng trước khi chạy hoặc phụ thuộc bên ngoài bị lỗi, như kết nối cơ sở dữ liệu hay gọi API. Để xử lý, bật khởi động lại cluster khi lỗi. Trong cài đặt job, bật Retry on Failure. Đồng thời dùng các khối Try-Except cho các lệnh gọi bên ngoài.
Đọc hướng dẫn Mastering the Databricks API của chúng tôi để học cách dùng Databricks REST API cho lập lịch job và mở rộng các pipeline tự động.
Thực tiễn tốt nhất để duy trì notebooks trong sản xuất
Hãy dùng các kỹ thuật sau để duy trì Databricks Notebooks khi ở môi trường sản xuất:
Mô-đun hóa mã thành các notebook tái sử dụng: Chia nhỏ notebook lớn thành các đơn vị nhỏ hơn, có thể tái sử dụng và dùng
%runđể gọi chúng. Lưu các hàm trợ giúp trong các notebook tiện ích riêng.Dùng kiểm soát phiên bản (tích hợp Git): Bật Databricks Repos để theo dõi thay đổi và hoàn tác phiên bản.
Tối ưu lựa chọn cluster cho jobs: Dùng job clusters thay vì interactive clusters cho các lượt chạy theo lịch.
Triển khai logging và cảnh báo: Dùng
dbutils.notebook.exit()để ghi trạng thái job. Bạn cũng có thể cấu hình cảnh báo email trong Jobs UI để thông báo nhóm khi có lỗi.Ghi tài liệu mã và dùng Markdown để rõ ràng: Dùng các cell markdown để mô tả các bước quy trình và logic.
Kết luận
Nếu bạn muốn khám phá các khái niệm nền tảng của Databricks, tôi rất khuyến nghị tham gia khóa học Introduction to Databricks của chúng tôi. Khóa học này xây dựng nền tảng hiểu biết cần thiết để bạn thử nghiệm các tính năng nâng cao như magic commands, tham số hóa và tối ưu hiệu năng. Cuối cùng, tôi cũng nghĩ bạn nên tìm hiểu cách đạt được một Chứng chỉ Databricks. Bài viết của chúng tôi giúp bạn khám phá lợi ích nghề nghiệp và chọn chứng chỉ phù hợp với mục tiêu của mình.