# Apache Spark 4.2 vs Databricks 2026: Kiến Trúc, Hiệu Năng và Câu Hỏi Phỏng Vấn > So sánh chuyên sâu Apache Spark 4.2 vs Databricks cho năm 2026. Tìm hiểu sự khác biệt về kiến trúc, đánh đổi hiệu năng, tính năng mới nhất và chuẩn bị câu hỏi phỏng vấn data engineering. - Published: 2026-08-19 - Updated: 2026-08-19 - Author: Anthony Fillion-Maillet - Reading time: 5 min --- Apache Spark 4.2 và Databricks đại diện cho hai hướng tiếp cận khác nhau trong xử lý dữ liệu phân tán năm 2026. Spark mang đến sự linh hoạt tối đa như một framework mã nguồn mở, trong khi Databricks đóng gói Spark trong một nền tảng lakehouse được quản lý với các cải tiến độc quyền. Việc hiểu rõ sự khác biệt giữa hai lựa chọn này rất quan trọng cho việc chuẩn bị phỏng vấn data engineering và đưa ra quyết định kiến trúc. > **Điểm Khác Biệt Cốt Lõi** > > Apache Spark là một framework tính toán phân tán. Databricks là một nền tảng thương mại được xây dựng trên nền Spark. So sánh trực tiếp hai công nghệ này giống như so sánh Linux với Red Hat Enterprise Linux: một bên là nền tảng, bên kia là phiên bản sản phẩm hóa với các tính năng doanh nghiệp. ## Apache Spark 4.2: Tính Năng Mới và Kiến Trúc Apache Spark 4.2, [phát hành ngày 14 tháng 7 năm 2026](https://spark.apache.org/news/spark-4-2-0-released.html), giới thiệu nhiều tính năng thay đổi cách các pipeline dữ liệu vận hành. Các bổ sung quan trọng nhất nhắm vào change data capture, tích hợp AI và workload streaming. ### Auto CDC và Mệnh Đề CHANGES Spark 4.2 biến change data capture thành tính năng native trong engine. Trước đây, việc theo dõi thay đổi dữ liệu đòi hỏi các giải pháp tùy chỉnh sử dụng timestamp, so sánh hash hoặc công cụ CDC bên ngoài. Tính năng Auto CDC mới xử lý việc này tự động. ```sql -- changes-query.sql -- Truy vấn các thay đổi trên bảng Delta từ phiên bản 10 SELECT * FROM orders CHANGES SINCE VERSION 10; -- Theo dõi thay đổi trong khoảng thời gian SELECT * FROM customers CHANGES BETWEEN TIMESTAMP '2026-07-01' AND TIMESTAMP '2026-07-15'; ``` Mệnh đề `CHANGES` trả về các hàng với cột metadata cho biết mỗi hàng được insert, update hay delete. Điều này loại bỏ nhu cầu duy trì hạ tầng CDC riêng biệt cho hầu hết các trường hợp sử dụng. ### Metric Views: Semantic Layer Native Metric Views tạo ra các định nghĩa business được quản lý trực tiếp trong Spark SQL. Các nhóm định nghĩa metric một lần, đảm bảo tính nhất quán của phép tính trên toàn bộ dashboard, báo cáo và ứng dụng AI. ```sql -- metric-views.sql -- Định nghĩa metric view cho tính toán doanh thu CREATE METRIC VIEW monthly_revenue AS SELECT DATE_TRUNC('month', order_date) AS month, SUM(amount) AS total_revenue, COUNT(DISTINCT customer_id) AS unique_customers, SUM(amount) / COUNT(DISTINCT customer_id) AS revenue_per_customer FROM orders WHERE status = 'completed' GROUP BY DATE_TRUNC('month', order_date); -- Truy vấn metric view SELECT * FROM monthly_revenue WHERE month >= '2026-01-01'; ``` Metric Views đảm bảo tính nhất quán trong tính toán. Khi nhóm tài chính truy vấn `monthly_revenue`, họ nhận được cùng số liệu với nhóm data science đang xây dựng mô hình ML. ### Real-Time Mode cho PySpark Spark 4.2 giới thiệu Real-Time Mode, đơn giản hóa workflow streaming trong PySpark. [Thông báo của Databricks](https://www.databricks.com/blog/introducing-apache-spark-42) nhấn mạnh cách tính năng này giảm gánh nặng vận hành của việc quản lý checkpoint và phục hồi từ lỗi. ```python # streaming_pipeline.py from pyspark.sql import SparkSession from pyspark.sql.functions import col, window spark = SparkSession.builder.appName("RealTimeOrders").getOrCreate() # Kích hoạt Real-Time Mode cho streaming đơn giản hóa orders_stream = spark.readStream \ .format("kafka") \ .option("kafka.bootstrap.servers", "kafka:9092") \ .option("subscribe", "orders") \ .option("realtimeMode", "true") \ .load() # Tổng hợp đơn hàng trong cửa sổ 5 phút aggregated = orders_stream \ .withWatermark("event_time", "10 minutes") \ .groupBy(window(col("event_time"), "5 minutes"), col("region")) \ .agg({"amount": "sum", "order_id": "count"}) # Ghi vào Delta Lake aggregated.writeStream \ .format("delta") \ .outputMode("append") \ .option("checkpointLocation", "/checkpoints/orders") \ .toTable("order_aggregates") ``` Real-Time Mode xử lý việc quản lý checkpoint nội bộ, giảm code boilerplate và độ phức tạp vận hành cho các ứng dụng streaming. ## Kiến Trúc Nền Tảng Databricks năm 2026 Databricks mở rộng Spark với các tính năng độc quyền đáp ứng yêu cầu doanh nghiệp. Nền tảng này kết hợp Delta Lake, Unity Catalog, Mosaic AI và [engine OLTP Lakebase](https://docs.databricks.com/aws/en/release-notes/product/2026/august) mới vào một lakehouse tích hợp. ### Unity Catalog: Quản Trị Tập Trung Unity Catalog cung cấp kiểm soát truy cập chi tiết trên toàn bộ tài sản dữ liệu. Bảo mật cấp cột, bộ lọc hàng và data masking được áp dụng nhất quán trên các truy vấn SQL, notebook và job training ML. ```sql -- unity-catalog-policies.sql -- Cấp quyền đọc cho các cột cụ thể GRANT SELECT (customer_id, order_date, product_id) ON TABLE sales.orders TO `analyst-team`; -- Tạo policy bảo mật cấp hàng CREATE ROW FILTER policy_regional_access ON sales.orders AS (region STRING) -> region = current_user_region(); -- Áp dụng bộ lọc ALTER TABLE sales.orders SET ROW FILTER policy_regional_access ON (region); ``` Với Spark tự quản lý, chức năng tương đương đòi hỏi tích hợp với Apache Ranger cho kiểm soát truy cập, Apache Atlas cho metadata và các giải pháp tùy chỉnh cho theo dõi lineage. ### Kinh Tế Serverless Compute Databricks serverless SQL loại bỏ chi phí cluster nhàn rỗi. Theo [phân tích giá của Flexera](https://www.flexera.com/blog/finops/databricks-pricing-guide/), SQL Serverless có giá $0.70 mỗi DBU trên AWS Premium, nhưng với workload BI có tính chất bùng nổ, tổng chi phí thường thấp hơn 20-35% so với SQL Pro vì không còn giờ nhàn rỗi. | Loại Compute | Giá DBU (AWS Premium) | Phù Hợp Cho | |--------------|----------------------|-------------| | Jobs Classic | $0.15 | Batch ETL, xử lý qua đêm | | Jobs Serverless | $0.28 | Workload biến đổi, lịch không dự đoán được | | SQL Pro | $0.55 | Truy vấn BI liên tục, mô hình dự đoán được | | SQL Serverless | $0.70 | Truy vấn bùng nổ, dashboard theo yêu cầu | | Model Serving | $0.08 | Endpoint suy luận ML | Sự đánh đổi rõ ràng: serverless yêu cầu phí premium DBU 20-40% so với compute classic, nhưng loại bỏ chi phí khởi động cluster và nhàn rỗi có thể chiếm phần lớn tổng chi tiêu cho workload biến đổi. ## So Sánh Kiến Trúc cho Chuẩn Bị Phỏng Vấn Các cuộc phỏng vấn data engineering thường khám phá sự đánh đổi giữa Spark tự quản lý và các nền tảng được quản lý như Databricks. So sánh sau đây bao gồm các chủ đề phỏng vấn phổ biến nhất. ### Quản Lý Cluster và Scaling **Spark tự quản lý** đòi hỏi cấu hình cluster rõ ràng. Các nhóm chọn loại instance, cấu hình chính sách autoscaling và quản lý gián đoạn spot instance. ```python # spark_cluster_config.py from pyspark import SparkConf conf = SparkConf() \ .setAppName("ProductionETL") \ .set("spark.executor.instances", "10") \ .set("spark.executor.cores", "4") \ .set("spark.executor.memory", "16g") \ .set("spark.dynamicAllocation.enabled", "true") \ .set("spark.dynamicAllocation.minExecutors", "2") \ .set("spark.dynamicAllocation.maxExecutors", "50") \ .set("spark.shuffle.service.enabled", "true") ``` **Databricks** trừu tượng hóa phần lớn độ phức tạp này. Cluster policy thực thi các tiêu chuẩn tổ chức và các instance được tối ưu hóa photon tự động chọn cấu hình phù hợp. ### Data Lineage và Observability Databricks Unity Catalog theo dõi lineage tự động trên toàn bộ bảng, notebook và mô hình ML. Mọi thao tác đọc và ghi tạo ra một dấu vết có thể kiểm toán. Với Spark tự quản lý, theo dõi lineage đòi hỏi công cụ bổ sung. Các cách tiếp cận phổ biến bao gồm tích hợp với [Apache Atlas](https://atlas.apache.org/) hoặc xây dựng giải pháp tùy chỉnh sử dụng Spark listener. ```python # custom_lineage_listener.py from pyspark import SparkContext from pyspark.sql import SparkSession from datetime import datetime class LineageListener: def __init__(self, spark: SparkSession): self.spark = spark def track_read(self, table_name: str, query_id: str): # Ghi log thao tác đọc vào lineage store lineage_record = { "operation": "read", "table": table_name, "query_id": query_id, "timestamp": datetime.now().isoformat(), "user": self.spark.sparkContext.sparkUser() } self._persist_lineage(lineage_record) def track_write(self, table_name: str, query_id: str, row_count: int): # Ghi log thao tác ghi với số hàng bị ảnh hưởng lineage_record = { "operation": "write", "table": table_name, "query_id": query_id, "rows_affected": row_count, "timestamp": datetime.now().isoformat() } self._persist_lineage(lineage_record) ``` ### Tùy Chọn Storage Layer Cả hai cách tiếp cận đều hỗ trợ định dạng bảng mở. Delta Lake xuất phát từ Databricks nhưng hoàn toàn mã nguồn mở. Apache Iceberg cung cấp một lựa chọn thay thế với sự hỗ trợ mạnh mẽ từ cộng đồng. | Tính Năng | Delta Lake | Apache Iceberg | |-----------|------------|----------------| | Giao Dịch ACID | Có | Có | | Time Travel | Có | Có | | Tiến Hóa Schema | Có | Có | | Tiến Hóa Partition | Hạn chế | Đầy đủ | | Hidden Partitioning | Không | Có | | Tích Hợp Chính | Databricks | Nhiều engine | Để phân tích sâu hơn về các định dạng này, xem [so sánh Delta Lake vs Apache Iceberg](/blog/data-engineering/delta-lake-vs-iceberg-lakehouse-interview-2026). ## Câu Hỏi Phỏng Vấn Phổ Biến Các câu hỏi sau thường xuất hiện trong phỏng vấn data engineering. Mỗi câu hỏi bao gồm bối cảnh mà người phỏng vấn tìm kiếm và khung phản hồi có cấu trúc. ### Câu Hỏi 1: Khi nào nên chọn Spark tự quản lý thay vì Databricks? **Điều người phỏng vấn đánh giá:** Nhận thức về chi phí, mức độ trưởng thành vận hành và hiểu biết về ràng buộc tổ chức. **Khung phản hồi mạnh:** - **Khả năng dự đoán chi phí:** Spark tự quản lý loại bỏ phí theo DBU. Với các tổ chức có workload nhất quán và dự đoán được chạy 24/7, chi tiêu vốn cho reserved instance thường rẻ hơn so với định giá dựa trên tiêu thụ. - **Chủ quyền dữ liệu:** Một số ngành yêu cầu dữ liệu phải ở on-premises hoặc trong các khu vực pháp lý cụ thể. Triển khai tự quản lý trên hạ tầng dedicated đáp ứng các yêu cầu này. - **Chuyên môn sẵn có:** Các nhóm có khả năng vận hành Kubernetes và Spark mạnh có thể ưa thích sự linh hoạt của triển khai tự quản lý. - **Workload đa engine:** Các tổ chức sử dụng Spark cùng với Presto, Flink hoặc engine tùy chỉnh được hưởng lợi từ quản lý cluster thống nhất thông qua YARN hoặc Kubernetes. ### Câu Hỏi 2: Databricks tối ưu hóa hiệu năng Spark như thế nào? **Điều người phỏng vấn đánh giá:** Hiểu biết về Delta Engine, Photon và các tối ưu hóa đặc thù nền tảng. **Các điểm chính cần đề cập:** - **Photon:** Engine thực thi vectorized native C++ thay thế engine Spark SQL dựa trên JVM cho các thao tác được hỗ trợ. Cung cấp tăng tốc 2-8x cho workload nặng về scan và aggregation. - **Delta Cache:** Layer cache dựa trên SSD tăng tốc đọc lặp lại từ cloud storage. - **Adaptive Query Execution:** Phiên bản nâng cao của AQE Spark với các tối ưu hóa bổ sung cho xử lý data skew và chọn chiến lược join. - **Tối ưu hóa IO:** Tối ưu hóa bố cục dữ liệu tự động, bao gồm Z-ordering và file compaction. ### Câu Hỏi 3: Giải thích sự đánh đổi của serverless compute **Điều người phỏng vấn đánh giá:** Kỹ năng mô hình hóa chi phí và hiểu biết về đặc điểm workload. ```python # cost_comparison.py def estimate_monthly_cost(workload_type: str, daily_dbus: float, hours_active: float): """So sánh chi phí serverless vs classic compute.""" # Giá DBU (tier AWS Premium) rates = { "sql_classic": 0.55, "sql_serverless": 0.70, "jobs_classic": 0.15, "jobs_serverless": 0.28 } # Cluster classic phát sinh chi phí nhàn rỗi cluster_hours_per_day = 10 # Cluster chạy 10 giờ cho 4 giờ làm việc thực tế serverless_hours = hours_active # Chỉ trả cho compute thực tế classic_monthly = daily_dbus * cluster_hours_per_day * rates[f"{workload_type}_classic"] * 30 serverless_monthly = daily_dbus * serverless_hours * rates[f"{workload_type}_serverless"] * 30 return { "classic": classic_monthly, "serverless": serverless_monthly, "savings_percent": (classic_monthly - serverless_monthly) / classic_monthly * 100 } ``` Serverless phù hợp cho workload bùng nổ và không dự đoán được. Classic compute thắng cho xử lý liên tục và dự đoán được khi cluster chạy gần công suất. ### Câu Hỏi 4: Auto CDC của Spark 4.2 so sánh với các công cụ CDC truyền thống như thế nào? **Điều người phỏng vấn đánh giá:** Hiểu biết về các mẫu change data capture và sự đánh đổi vận hành. **Các điểm so sánh:** [Bản phát hành Apache Spark 4.2](https://spark.apache.org/news/spark-4-2-0-released.html) nhúng CDC vào query engine: | Khía Cạnh | Spark 4.2 Auto CDC | Debezium/Kafka | CDC Timestamp Tùy Chỉnh | |-----------|-------------------|----------------|------------------------| | Độ Phức Tạp Setup | Thấp | Cao | Trung bình | | Độ Trễ Real-time | Phút | Giây | Phút đến giờ | | Tải Database Nguồn | Không có | Đọc log | Dựa trên query | | Truy Vấn Lịch Sử | Tích hợp sẵn | Cần retention | Hạn chế | | Tiến Hóa Schema | Tự động | Cần cấu hình | Thủ công | Auto CDC xuất sắc cho workload phân tích khi độ trễ cấp phút có thể chấp nhận được. Cho yêu cầu dưới giây, Debezium với Kafka vẫn là cách tiếp cận tiêu chuẩn. ## Khung Quyết Định Thực Tiễn Sử dụng khung này khi đánh giá Spark vs Databricks cho tổ chức hoặc dự án cụ thể. ### Chọn Spark Tự Quản Lý Khi: - Nhóm có chuyên môn Spark và Kubernetes sẵn có - Workload dự đoán được và chạy liên tục - Dữ liệu phải ở on-premises hoặc trong khu vực cụ thể - Tổ chức đã vận hành hạ tầng nền tảng dữ liệu - Nhạy cảm chi phí vượt quá tiện lợi vận hành ### Chọn Databricks Khi: - Thời gian đưa vào sản xuất quan trọng hơn chi phí mỗi truy vấn - Nhóm thiếu chuyên môn vận hành Spark sâu - Yêu cầu governance và compliance đòi hỏi dấu vết kiểm toán - Workflow ML cần experiment tracking và model serving tích hợp - Workload BI được hưởng lợi từ serverless scaling Để chuẩn bị phỏng vấn về [điều phối pipeline Apache Airflow](/technologies/data-engineering/interview-questions/airflow-fundamentals) và [các mẫu ETL](/technologies/data-engineering/interview-questions/etl-elt-patterns), các module câu hỏi SharpSkill cung cấp luyện tập có cấu trúc. ## Kết Luận - Apache Spark 4.2 mang đến Auto CDC, Metric Views và Real-Time Mode như tính năng native, giảm nhu cầu về công cụ bên ngoài - Databricks bổ sung governance Unity Catalog, tăng tốc Photon và serverless compute trên nền tảng Spark - Spark tự quản lý cung cấp chi phí thấp hơn cho workload dự đoán được và linh hoạt kiến trúc tối đa - Databricks giảm gánh nặng vận hành và tăng tốc thời gian đưa vào sản xuất cho các nhóm không có chuyên môn Spark sâu - Thành công phỏng vấn đòi hỏi hiểu cả sự khác biệt kỹ thuật và các đánh đổi business thúc đẩy việc chọn nền tảng - Lựa chọn đúng phụ thuộc vào khả năng của nhóm, mô hình chi phí, yêu cầu compliance và đặc điểm workload --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/blog/data-engineering/apache-spark-42-vs-databricks-2026-comparison-interview