Chuyển đến nội dung chính

Tìm hiểu Databricks Notebook: Hướng dẫn đầy đủ

Tìm hiểu cách quản lý Databricks Notebooks. Tận dụng hỗ trợ đa ngôn ngữ, lập lịch, kiểm soát phiên bản và magic commands để tối ưu quy trình làm việc.
· 10 phút đọc

Khám phá cùng AI

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.

Databricks Workspace. Hình: Tác giả.

  • Nhấp Workspace > Create > Notebook.

Create Databricks 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.

Select the name and default language for Databricks Notebook.

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.

Import existing notebook to Databricks Workspace.

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.

Renaming Databricks Notebook.

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.

Running a cell in Databricks Notebook.

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.

Reset variables and execution state in Databricks Notebook.

Đặ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ể.

Comments in Databricks Notebook.

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.

Version history in Databricks Notebook.

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

Example of Python code in 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.

-- Querying a dataset in SQL
SELECT origin, dest, COUNT(*) AS flight_count 
FROM flights_table 
GROUP BY origin, dest 
ORDER BY flight_count DESC 
LIMIT 10;

SQL code in Databricks Notebook.

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 Scala
val data = spark.read.option("header", "true").csv("/databricks-datasets/airlines/part-00000")

// Display as a table in Databricks
display(data)

Scala code in 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.

%r
# Load a sample dataset in R
library(SparkR)
df <- read.df("/databricks-datasets/airlines/part-00000", source = "csv", header = "true")
head(df)

R code in Databricks Notebook.

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

Example of Markdown cells in 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:

  • 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.

Executing individual and running all cells in Databricks 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’.

%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))

View inputs in Databricks Notebook.

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 libraries
import 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()

Visualizing outputs in Databricks Notebook.

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)

Displaying multiple outputs from the execution of a single cell in Databricks Notebook.

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 Create Job và chọn notebook.

Creating Job Run in Databricks 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.

Configuring schedules and triggers in Databricks Notebook.

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 Run Now để chạy ngay hoặc để chạy theo lịch.

Executing Job Runs in Databricks Notebook.

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}")

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")

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.

Viewing version history in Databricks Notebook.

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 data
CREATE LIVE TABLE sales_cleaned AS

    -- Selecting all columns where the 'order_status' is 'completed'
    SELECT * 
    FROM raw_sales
    WHERE order_status = 'completed'; 

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 tracking
import mlflow
mlflow.start_run()
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.95)

mlflow.end_run()

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

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

%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/.

%sh ls -lh /dbfs/data/

%fs

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.

%fs ls /databricks-datasets/

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 %pip cài đặt các gói Python trong môi trường notebook. Lệnh sau sẽ cài đặt gói matplotlib trong phiên notebook hiện tại.

%pip install pandas matplotlib

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ể:

  • Bảng kết quả mới: Trực quan hóa kết quả truy vấn tốt hơn với bảng có thể sắp xếp và lọc.
  • Trình soạn thảo Markdown cải tiến: Định dạng tốt hơn, khối mã và ảnh nhúng.
  • Trình gỡ lỗi tương tác: Gỡ lỗi từng bước để xử lý các script phức tạp.
  • Trợ lý nội tuyến (Databricks AI Assistant): Tự động hoàn thành mã, gợi ý sửa lỗi và nâng cao hiệu quả.

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 ls hoặc display(dbutils.fs.ls()) để kiểm tra các tập dữ liệu có sẵn.

display(dbutils.fs.ls("/databricks-datasets/"))

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:

  • Nhấp Data trong workspace.
  • Duyệt cơ sở dữ liệu và bảng.
  • Nhấp một bảng để xem trước dữ liệu và schema.

Đố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.

df.describe().show()
%sql
SELECT COUNT(*), AVG(salary), MAX(age) FROM employees;

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 customer
SELECT customer_id, SUM(total_amount) AS revenue  
FROM sales_data  
-- Group results by customer to get total revenue per customer
GROUP BY customer_id  
-- Order customers by revenue in descending order (highest first)
ORDER BY revenue DESC  
-- Return only the top 10 customers by revenue
LIMIT 10;

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:

  • 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")

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 libraries
from 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")

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 segment
SELECT customer_segment, COUNT(*) AS interactions  
FROM user_activity  
-- Group by customer segment to aggregate interaction counts
GROUP BY customer_segment  
-- Order results by interaction count in descending order
ORDER BY interactions DESC;

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.

Allan Ouko

Tác giả

Allan Ouko

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.

Chủ đề

Liên quan