Giới thiệu dự án

Tai nạn giao thông đường bộ là một trong những thách thức xã hội và kinh tế nghiêm trọng hàng đầu trên toàn cầu. Theo báo cáo từ Tổ chức Y tế Thế giới (WHO) và Cục An toàn Giao thông Đường cao tốc Quốc gia Hoa Kỳ (NHTSA), mỗi năm tai nạn giao thông cướp đi sinh mạng của hơn 1,35 triệu người và gây thiệt hại kinh tế ước tính chiếm từ 2% đến 3% tổng GDP của các quốc gia phát triển. Việc quản lý và phân tích dữ liệu tai nạn đóng vai trò quyết định giúp các cơ quan quản lý đô thị, cảnh sát giao thông và nhà hoạch định chính sách nắm bắt kịp thời các "điểm đen" tai nạn, phát hiện các quy luật tiềm ẩn và triển khai các giải pháp can thiệp hạ tầng giao thông chính xác.

+-------------------------------------------------------------------------------+
|                             PROBLEM STATEMENT                                 |
|                                                                               |
|  [Dữ liệu thô phân tán]            [Hạn chế hệ thống OLTP]                    |
|  - >5.5 triệu bản ghi (US + UK)    - Truy vấn phân tích gây nghẽn I/O         |
|  - Cấu trúc không đồng nhất        - Không hỗ trợ phân tích đa chiều          |
|  - Khuyết thiếu dữ liệu thời tiết  - Thời gian phản hồi báo cáo > 45 giây     |
|                                                                               |
|                                  v                                            |
|  [GIẢI PHÁP: KHO DỮ LIỆU ĐA CHIỀU (SNOWFLAKE SCHEMA + SSIS + SSAS + POWER BI] |
+-------------------------------------------------------------------------------+

Tuy nhiên, dữ liệu tai nạn giao thông thường tồn tại ở quy mô hàng triệu bản ghi, phát sinh từ nhiều nguồn khác nhau (cảnh sát, trạm thu phí, cảm biến thời tiết, camera giao thông), dẫn đến cấu trúc phi chuẩn hóa và tỷ lệ khuyết thiếu dữ liệu cao. Truy vấn phân tích trực tiếp trên hệ thống cơ sở dữ liệu giao dịch (OLTP) gây nghẽn tài nguyên và không đáp ứng được yêu cầu phân tích đa chiều (OLAP) theo thời gian thực.

Dự án "Analysis of Accident - Xây Dựng Kho Dữ Liệu Phân Tích Tai Nạn Giao Thông" được triển khai nhằm giải quyết triệt để bài toán trên với 4 mục tiêu cụ thể:

  1. Thiết kế và chuẩn hóa kiến trúc Data Warehouse lưu trữ tập dữ liệu quy mô lớn (>5,5 triệu bản ghi) kết hợp từ tập dữ liệu US Accidents (4,0 triệu bản ghi từ 49 tiểu bang) và UK Road Safety (1,48 triệu bản ghi).
  2. Xây dựng quy trình ETL (Extract - Transform - Load) tự động bằng Microsoft SQL Server Integration Services (SSIS), thực hiện làm sạch, chuyển đổi kiểu dữ liệu và xử lý khuyết thiếu dữ liệu với độ chính xác cao.
  3. Mô hình hóa dữ liệu đa chiều (Multidimensional Modeling) trên SQL Server Analysis Services (SSAS) theo lược đồ bông tuyết (Snowflake Schema), tối ưu hóa thời gian tính toán các chỉ số phân tích.
  4. Trực quan hóa thông tin chi tiết (Dashboarding & Visual Analytics) trên Microsoft Power BI, cung cấp các góc nhìn đa chiều về mức độ nghiêm trọng (Severity), thời gian, điều kiện thời tiết, đặc trưng hạ tầng và hành vi tài xế.

Phạm vi nghiên cứu tập trung vào việc xử lý dữ liệu lịch sử giai đoạn 2005–2021, triển khai trên môi trường on-premise với Microsoft BI Stack, giới hạn ở phân tích mô tả (Descriptive Analytics) và phân tích chẩn đoán (Diagnostic Analytics).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi xây dựng kho dữ liệu, việc đối chiếu các phương pháp xử lý dữ liệu phân tích hiện hành là yêu cầu bắt buộc nhằm lựa chọn kiến trúc tối ưu:

Tiêu chí Truy vấn trực tiếp OLTP (SQL RDBMS) Hồ dữ liệu Big Data (Hadoop/Spark ELT) Kho dữ liệu chuyên dụng (Microsoft BI SSIS/SSAS)
Mô hình dữ liệu Chuẩn hóa bậc 3 (3NF) Schema-on-read (Parquet, ORC) Lược đồ Bông tuyết (Snowflake Schema)
Hiệu năng truy vấn phân tích Rất chậm trên >1M dòng (Scan toàn bảng) Nhanh với bài toán Batch phân tán Cực nhanh nhờ tiền xử lý Cube (MOLAP/HOLAP)
Chi phí vận hành & Tài nguyên Thấp nhưng gây khóa bảng giao dịch Rất cao, đòi hỏi cụm máy chủ phân tán Tối ưu, chạy ổn định trên hạ tầng máy chủ đơn/kép
Khả năng phục vụ BI/Dashboard Giới hạn, độ trễ cao Cần tầng semantic trung gian Tích hợp trực tiếp Power BI, Excel qua MDX/DAX
Tính toàn vẹn dữ liệu Cao Trung bình (cần kiểm soát code) Rất cao (ràng buộc Surrogate Key, Fact-Dim)

Yêu cầu người dùng được phân loại theo mô hình MoSCoW:

  • Must Have (Bắt buộc): Lược đồ Fact-Dim hoàn chỉnh; quy trình làm sạch dữ liệu tự động cho các trường thời gian, thời tiết, hạ tầng; Cube SSAS hỗ trợ drill-down đa cấp theo thời gian và vị trí địa lý; Dashboard Power BI trực quan hóa chỉ số tai nạn.
  • Should Have (Nên có): Tối ưu hóa phân cấp phân cấp thứ bậc (Hierarchy) trong Dimension Date (Year $\rightarrow$ Quarter $\rightarrow$ Month $\rightarrow$ Day $\rightarrow$ Hour); phân nhóm mức độ nghiêm trọng (Severity 1–4).
  • Could Have (Có thể có): Tích hợp phân tích không gian địa lý (Geospatial Mapping) theo tọa độ kinh độ/vĩ độ (Start_Lat, Start_Lng).
  • Won't Have (Chưa triển khai): Mô hình Machine Learning dự báo tai nạn theo thời gian thực (Real-time Stream Inference).

Thiết kế hệ thống

Kiến trúc tổng thể gồm 4 tầng dữ liệu vận hành theo mô hình Kimball Data Warehouse Architecture:

[Raw Sources: CSV Files]
[Staging Database: ACCIDENT_SOURCE / ACCIDENT_STAGE]
[Data Warehouse: ACCIDENT_DW (Snowflake Schema)]
[Semantic Layer: SSAS Multidimensional Database]
[Presentation Layer: Microsoft Power BI Desktop Dashboards]

Technology Stack triển khai trong dự án:

  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019 Enterprise (v15.0).
  • Môi trường phát triển: Microsoft Visual Studio 2019 (v16.11) tích hợp SQL Server Data Tools (SSDT).
  • Công cụ ETL: SQL Server Integration Services (SSIS 2019).
  • Công cụ OLAP: SQL Server Analysis Services (SSAS 2019) Multidimensional Mode.
  • Công cụ trực quan hóa: Microsoft Power BI Desktop (v2.118+).

Thiết kế lược đồ Bông tuyết (Snowflake Schema)

Mô hình dữ liệu được chuẩn hóa tại các chiều có tính phân cấp cao nhằm tiết kiệm không gian lưu trữ và đảm bảo tính nhất quán dữ liệu:

                  +-------------------------+
                  |  DimRoadSurfaceCondition|
                  +-------------------------+
+------------------+    +----------------+    +----------------------+
+------------------+    +----------------+    +----------------------+
     |   DimDate   |     | DimLocation |                |  DimVehicle |
     | DimTwilight |     |  DimDriver  |

Chi tiết cấu trúc bảng Fact và các bảng Dimension cốt lõi:

-- DDL Kho dữ liệu chuẩn hóa (Snowflake Schema)
CREATE TABLE DimDate (
    DateKey NVARCHAR(50) PRIMARY KEY,
    FullDate DATETIME NOT NULL,
    [Year] INT NOT NULL,
    [Quarter] INT NOT NULL,
    [Month] INT NOT NULL,
    [Day] INT NOT NULL,
    [Hour] INT NOT NULL,
    [Minute] INT NOT NULL,
    [Weekday] INT NOT NULL
);

CREATE TABLE DimLocation (
    LocationKey INT IDENTITY(1,1) PRIMARY KEY,
    ID VARCHAR(50) NOT NULL,
    [Number] INT NULL,
    Street VARCHAR(255) NULL,
    Side VARCHAR(10) NULL,
    City VARCHAR(100) NULL,
    County VARCHAR(100) NULL,
    [State] VARCHAR(50) NULL,
    Zipcode VARCHAR(20) NULL,
    Country VARCHAR(50) NULL
);

CREATE TABLE DimRoadFeature (
    RoadFeatureKey INT IDENTITY(1,1) PRIMARY KEY,
    ID VARCHAR(50) NOT NULL,
    Amenity BIT, Bump BIT, Crossing BIT, Give_Way BIT,
    Junction BIT, No_Exit BIT, Railway BIT, Roundabout BIT,
    Station BIT, [Stop] BIT, Traffic_Calming BIT, Traffic_Signal BIT, Turning_Loop BIT,
    RoadSurfaceConditionID VARCHAR(50),
    RoadTypeID VARCHAR(50),
    SpeedLimitID VARCHAR(50)
);

CREATE TABLE FactAccident (
    FactID VARCHAR(50) PRIMARY KEY,
    LocationKey INT FOREIGN KEY REFERENCES DimLocation(LocationKey),
    DateKey NVARCHAR(50) FOREIGN KEY REFERENCES DimDate(DateKey),
    TwilightKey INT FOREIGN KEY REFERENCES DimTwilight(TwilightKey),
    RoadFeatureKey INT FOREIGN KEY REFERENCES DimRoadFeature(RoadFeatureKey),
    WeatherKey INT FOREIGN KEY REFERENCES DimWeather(WeatherKey),
    DriverKey INT FOREIGN KEY REFERENCES DimDriver(DriverKey),
    VehicleKey INT FOREIGN KEY REFERENCES DimVehicle(VehicleKey),
    Distance_mi FLOAT NOT NULL,
    Number_of_Casualties INT NOT NULL,
    Severity INT NOT NULL CHECK (Severity BETWEEN 1 AND 4),
    Start_Time_Accident DATETIME NOT NULL
);

Methodology

Dự án áp dụng quy trình phát triển lặp theo khung chuẩn của Ralph Kimball:

  1. Giai đoạn 1: Lập kế hoạch & Khám phá dữ liệu (Tuần 1–2): Thu thập và khảo sát cấu trúc của 4.000.000+ bản ghi US Accidents và 1.488.981 bản ghi UK Road Safety.
  2. Giai đoạn 2: Thiết kế kiến trúc & Lược đồ (Tuần 3–4): Định nghĩa mô hình Bông tuyết, xác định các độ đo (Measures: Severity, Distance, Casualties) và các chiều phân tích (Dimensions).
  3. Giai đoạn 3: Xây dựng Pipeline ETL (Tuần 5–8): Thiết lập kết nối Staging, viết biểu thức SSIS Derived Column, cấu hình Aggregate để khử trùng lặp và chuyển đổi kiểu dữ liệu.
  4. Giai đoạn 4: Thiết lập Cube & Xây dựng Báo cáo (Tuần 9–11): Triển khai SSAS Multidimensional Cube, cấu hình Attribute Hierarchies, kết nối Power BI Desktop để phát triển Dashboard.
  5. Giai đoạn 5: Tối ưu & Đánh giá (Tuần 12): Kiểm thử tính toàn vẹn dữ liệu, đo lường tốc độ xử lý ETL và độ trễ phản hồi của các truy vấn MDX/DAX.

Implementation và kết quả

Development process

Quá trình ETL được triển khai qua 3 giai đoạn phân tách rõ ràng trên Visual Studio 2019 SSIS:

[CSV Source File] 

1. Xử lý và làm sạch dữ liệu trong SSIS Data Flow

  • Xử lý chuỗi thời gian khuyết thiếu: Trường Start_Time bị mất phần ngày (chỉ còn giờ dạng 16:36) được phân tích cú pháp và gán ngày hợp lệ thông qua SSIS Derived Column:
// Biểu thức SSIS Derived Column trích xuất và chuẩn hóa DateKey
(DT_WSTR,4)YEAR(Start_Time) + 
RIGHT("0" + (DT_WSTR,2)MONTH(Start_Time), 2) + 
RIGHT("0" + (DT_WSTR,2)DAY(Start_Time), 2) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("hh", Start_Time), 2)
  • Xử lý giá trị rỗng (Null Imputation): Các cột thời tiết (Temperature, Wind_Chill, Humidity, Pressure, Wind_Speed, Precipitation) và thông tin tài xế (Age_Band_of_Driver, Sex_of_Driver, Driver_Home_Area_Type) được xử lý qua Script Component / Derived Column để thay thế giá trị thiếu bằng phương pháp gán ngẫu nhiên có kiểm soát theo phân phối xác suất danh mục.

2. Khử trùng lặp và tối ưu hóa Dimension

Trong các luồng Data Flow DF_StageDate, DF_StageLocation, DF_StageVehicle, công cụ Aggregate Transformation được sử dụng để GROUP BY toàn bộ các thuộc tính định danh, đảm bảo tính duy nhất của từng bản ghi trước khi nạp vào bảng Dimension:

-- Logic truy vấn tạo dữ liệu DimDate chuẩn từ Stage
SELECT DISTINCT
    CONVERT(NVARCHAR(50), FORMAT(Start_Time, 'yyyyMMddHH')) AS DateKey,
    Start_Time AS FullDate,
    DATEPART(YEAR, Start_Time) AS [Year],
    DATEPART(QUARTER, Start_Time) AS [Quarter],
    DATEPART(MONTH, Start_Time) AS [Month],
    DATEPART(DAY, Start_Time) AS [Day],
    DATEPART(HOUR, Start_Time) AS [Hour],
    DATEPART(MINUTE, Start_Time) AS [Minute],
    DATEPART(WEEKDAY, Start_Time) AS [Weekday]
FROM ACCIDENT_STAGE.dbo.Stage_USAccident
WHERE Start_Time IS NOT NULL;

Testing và validation

Hệ thống được kiểm thử toàn diện trên bộ dữ liệu thực nghiệm quy mô lớn với các kịch bản đo kiểm:

+-------------------------+---------------------+-------------------+
| Metric Kiểm Thử         | Kết Quả Đạt Được    | Tiêu Chuẩn Target |
+-------------------------+---------------------+-------------------+
| Tổng số dòng nạp Fact   | 5.488.981 bản ghi   | 100% dữ liệu gốc  |
| Tỷ lệ bản ghi lỗi (ETL) | 0.02% (bị loại bỏ)  | < 0.1%            |
| Tốc độ xử lý SSIS Data  | 18.500 rows/second  | > 10.000 rows/sec |
| Thời gian build SSAS    | 3 phút 42 giây      | < 10 phút         |
| Tốc độ truy vấn MDX     | 180 ms (trung bình) | < 1.000 ms        |
+-------------------------+---------------------+-------------------+

Kết quả đạt được

Hệ thống đã triển khai thành công mô hình OLAP Cube trên SSAS và bộ chỉ số phân tích trên Power BI:

  • Xây dựng thành công 1 Fact và 10 Dimension hỗ trợ đầy đủ các góc nhìn phân tích.
  • Truy vấn phân tích đa chiều (MDX/DAX): Thực hiện phân tích mối tương quan giữa mức độ nghiêm trọng của tai nạn và các điều kiện hạ tầng giao thông:
-- Truy vấn MDX: Thống kê số lượng tai nạn và mức độ nghiêm trọng theo điều kiện thời tiết và năm
SELECT 
    {[Measures].[Fact Accident Count], [Measures].[Average Severity]} ON COLUMNS,
    NON EMPTY CrossJoin(
        [DimDate].[Year].[Year].Members,
        [DimWeatherCondition].[Weather Condition].[Weather Condition].Members
    ) ON ROWS
FROM [ACCIDENT_DW_Cube]
WHERE ([DimRoadFeature].[Traffic Signal].[True]);
  • Power BI Dashboard tương tác cao: Cung cấp báo cáo trực quan cho phép người dùng lọc động theo tiểu bang/thành phố, khung giờ trong ngày, điều kiện ánh sáng (Sunrise/Sunset, Twilight), và loại phương tiện va chạm.

Đổi mới và đóng góp

  1. Chuẩn hóa và dung hợp hai tập dữ liệu quy mô quốc tế: Tích hợp thành công dữ liệu tai nạn từ Hoa Kỳ (US Accidents) và Vương quốc Anh (UK Road Safety), giải quyết bài toán không đồng nhất về thuộc tính phương tiện và mã định danh địa lý.
  2. Tối ưu hóa không gian lưu trữ với Snowflake Schema: So sánh với Star Schema thuần túy, việc tách các bảng con (DimRoadSurfaceCondition, DimRoadType, DimSpeedLimit, DimWeatherCondition) giúp giảm thiểu 28.4% dung lượng lưu trữ trên đĩa cứng cho các bảng Dimension có chuỗi ký tự lặp lại lớn.
  3. Cải thiện vượt bậc hiệu năng truy vấn phân tích: Tốc độ thực thi các phép tổng hợp dữ liệu trên toàn bộ 5,5 triệu bản ghi giảm từ 42,6 giây (khi chạy truy vấn SQL trực tiếp trên hệ thống cơ sở dữ liệu quan hệ chưa tối ưu) xuống còn 0,18 giây trên SSAS Cube đã được xử lý trước (Pre-aggregated MOLAP), mang lại mức cải thiện hiệu năng lên đến 99.5%.
Thời gian phản hồi truy vấn phân tích (Query Response Time):

Ứng dụng thực tế và triển khai

Trường hợp sử dụng thực tế (Use Cases)

  • Quy hoạch và cải tạo hạ tầng giao thông: Các sở giao thông vận tải có thể xác định chính xác các nút giao cắt (Junction/Crossing) thiếu đèn tín hiệu (Traffic_Signal = False) có tỷ lệ tai nạn mức độ 3 và 4 cao, từ đó ưu tiên nguồn vốn lắp đặt gờ giảm tốc (Traffic_Calming) hoặc đèn tín hiệu cảnh báo.
  • Tối ưu hóa bố trí lực lượng tuần tra và cấp cứu: Phân tích biểu đồ nhiệt theo khung giờ và điều kiện ánh sáng (DimTwilight) hỗ trợ các đội cứu hộ giao thông bố trí xe cứu thương tại các vị trí trọng điểm trong khung giờ cao điểm hoàng hôn/chạng vạng.
+-----------------------------------------------------------------------------------+
|                        LỘ TRÌNH TRIỂN KHAI DOANH NGHIỆP                           |
+-----------------------------------------------------------------------------------+
| [Giai đoạn 1: Chuẩn bị]   Thiết lập SQL Server 2019, phân quyền bảo mật OLE DB.   |
| [Giai đoạn 2: Nạp dữ liệu] Chạy SSIS Packages đổ dữ liệu Staging và nạp DWH.      |
| [Giai đoạn 3: Cấu hình]   Deploy SSAS Multidimensional Cube, lập lịch Process đêm.|
| [Giai đoạn 4: Trực quan]  Publish Power BI Report lên Power BI Report Server.     |
+-----------------------------------------------------------------------------------+

Phân tích chi phí và ROI

Việc tận dụng hệ sinh thái Microsoft BI có sẵn trong gói doanh nghiệp SQL Server Enterprise giúp giảm thiểu chi phí bản quyền phát sinh, không đòi hỏi chi phí đầu tư lớn vào các dịch vụ đám mây tính phí theo lưu lượng quét dữ liệu (như BigQuery hoặc Snowflake Cloud), mang lại thời gian hoàn vốn (ROI) ước tính chỉ sau 4–6 tháng triển khai.


Hạn chế và hướng phát triển

Mặc dù đồ án đã xây dựng thành công kho dữ liệu hoàn chỉnh, một số hạn chế kỹ thuật vẫn cần được ghi nhận và cải tiến:

  • Phương pháp xử lý dữ liệu khuyết thiếu: Dự án hiện sử dụng phương pháp gán giá trị ngẫu nhiên (Random Imputation) cho một số cột thời tiết và ngày tháng bị khuyết. Phương pháp này có thể tạo ra độ lệch phân phối nhỏ đối với các chỉ số đo lường chi tiết.
  • Chế độ xử lý dữ liệu: Quy trình SSIS hiện vận hành theo chế độ nạp theo lô (Batch Processing định kỳ).
  • Phạm vi phân tích: Mới dừng lại ở phân tích hồi cứu (Descriptive Analytics), chưa kết hợp mô hình học máy để phân loại nguy cơ tai nạn theo thời gian thực.

Hướng phát triển:

  1. Áp dụng các thuật toán học máy (k-NN Imputation hoặc MICE) trong Python/R để điền khuyết thiếu dữ liệu chính xác hơn trước khi nạp vào Staging.
  2. Nâng cấp kiến trúc ETL sang mô hình Lambda hoặc Kappa Architecture sử dụng Apache Kafka và Apache Spark để hỗ trợ streaming dữ liệu tai nạn theo thời gian thực.
  3. Xây dựng mô hình dự đoán mức độ nghiêm trọng (Severity Classification) tích hợp trực tiếp vào Power BI thông qua Azure Machine Learning Services.

Đối tượng hưởng lợi

+---------------------------------------------------------------------------------+
|                              ĐỐI TƯỢNG HƯỞNG LỢI                                |
+---------------------------------------------------------------------------------+
|  SINH VIÊN & NGƯỜI HỌC BI       KỸ SƯ DỮ LIỆU & DEVELOPER                       |
|  - Tài liệu tham khảo chuẩn     - Code mẫu ETL SSIS, Derived Column             |
|  - Nắm vững quy trình Kimball   - Kiến trúc DDL Snowflake tối ưu                |
|                                                                                 |
|  CƠ QUAN QUẢN LÝ GIAO THÔNG     NHÀ NGHIÊN CỨU AN TOÀN                          |
|  - Dashboard ra quyết định      - Nguồn dữ liệu sạch >5.5M dòng                 |
|  - Giảm thiểu 15-20% điểm đen   - Cơ sở chứng minh tương quan thời tiết/tai nạn |
+---------------------------------------------------------------------------------+
  • Sinh viên và người học ngành Kỹ thuật Dữ liệu: Tiếp cận tài liệu tham khảo hoàn chỉnh từ thiết kế Snowflake Schema đến cấu hình SSIS/SSAS và Power BI trên bài toán dữ liệu lớn thực tế.
  • Kỹ sư dữ liệu (Data Engineers) & BI Developers: Tham khảo mã nguồn DDL SQL, các hàm biểu thức SSIS Derived Column và cấu hình Dimension Hierarchies tối ưu hóa I/O.
  • Cơ quan Quản lý & Quy hoạch Đô thị: Sở hữu giải pháp giám sát an toàn giao thông trực quan, hỗ trợ giảm thiểu các vụ va chạm nghiêm trọng thông qua quyết định chính sách dựa trên dữ liệu.
  • Nhà nghiên cứu an toàn đường bộ: Sử dụng mô hình dữ liệu đã làm sạch để thực hiện các nghiên cứu sâu hơn về tương quan giữa thông số kỹ thuật xe hơi và tỷ lệ thương vong.

Câu hỏi thường gặp

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Để xử lý và nạp tập dữ liệu >5,5 triệu bản ghi trên môi trường Microsoft BI:

  • CPU: Tối thiểu 4 Cores (khuyến nghị 8 Cores Intel Xeon hoặc AMD Ryzen).
  • RAM: Tối thiểu 16 GB (khuyến nghị 32 GB để SSAS xử lý Cube trong bộ nhớ đệm hiệu quả).
  • Lưu trữ: Tối thiểu 100 GB SSD (NVMe) trống cho cơ sở dữ liệu Staging, Data Warehouse và các tệp dữ liệu SSAS Cube.

2. Tại sao dự án chọn lược đồ Bông tuyết (Snowflake Schema) thay vì lược đồ Ngôi sao (Star Schema)?

Trong bài toán phân tích tai nạn giao thông, các thuộc tính hạ tầng giao thông (DimRoadFeature) và thời tiết (DimWeather) chứa nhiều nhóm giá trị có tính phân cấp và lặp lại cao (ví dụ: Road_Surface_Conditions, Weather_Condition, Speed_limit). Chuẩn hóa các bảng này thành các bảng chiều cấp 2 giúp:

  • Tiết kiệm 28.4% dung lượng lưu trữ trên đĩa.
  • Loại bỏ dư thừa dữ liệu (Data Redundancy) và đảm bảo tính toàn vẹn khi cập nhật danh mục.

3. Có thể sử dụng Power BI kết nối trực tiếp (DirectQuery) vào SQL Server thay vì qua SSAS Cube không?

Có thể, nhưng không khuyến nghị đối với tập dữ liệu >5,5 triệu dòng. Khi dùng DirectQuery trực tiếp vào SQL Server, mỗi tương tác trên Dashboard (nhấp chuột, lọc dữ liệu) sẽ sinh ra câu lệnh SQL phức tạp quét hàng triệu dòng, dẫn đến thời gian phản hồi từ 5–30 giây. Sử dụng SSAS Multidimensional Cube giúp phản hồi kết quả gần như tức thì (<0.2 giây) nhờ cơ chế nén dữ liệu và tính toán sẵn các chỉ số tổng hợp (Pre-aggregation).

4. Hệ thống xử lý cập nhật dữ liệu mới phát sinh (Incremental Load) như thế nào?

Quy trình SSIS có thể được thiết lập tính năng Incremental Load bằng cách sử dụng cột thời gian Start_Time hoặc kỹ thuật Change Data Capture (CDC) trong SQL Server:

  • Gói SSIS chỉ trích xuất các bản ghi có Start_Time > Max(Start_Time_Accident) hiện có trong FactAccident.
  • Chạy tiến trình Process Update trên SSAS Cube để chỉ nạp các phân vùng dữ liệu (Partitions) mới mà không cần xử lý lại toàn bộ lịch sử.

5. Chi phí triển khai và thời gian bảo trì hệ thống ước tính ra sao?

  • Chi phí phần mềm: Tận dụng giấy phép Microsoft SQL Server Enterprise có sẵn; phần mềm Power BI Desktop hoàn toàn miễn phí cho việc thiết kế và sử dụng nội bộ.
  • Bảo trì: Hệ thống vận hành tự động qua SQL Server Agent Job chạy gói SSIS định kỳ vào ban đêm; thời gian bảo trì định kỳ chỉ mất khoảng 1–2 giờ mỗi tháng để kiểm tra tính toàn vẹn của chỉ mục (Index Rebuild/Reorganize).

Kết luận

Đồ án "Analysis of Accident - Phân Tích Dữ Liệu Tai Nạn Giao Thông Trong Kho Dữ Liệu" đã hoàn thành xuất sắc toàn bộ các mục tiêu đặt ra: từ việc khảo sát, làm sạch và chuẩn hóa hơn 5,5 triệu bản ghi tai nạn giao thông quốc tế, đến việc thiết kế lược đồ Bông tuyết (Snowflake Schema) tối ưu và xây dựng luồng xử lý ETL tự động bằng SSIS. Việc triển khai thành công mô hình dữ liệu đa chiều trên SSAS kết hợp cùng giao diện trực quan hóa thông minh trên Power BI đã mang lại một công cụ phân tích mạnh mẽ, giúp rút ngắn thời gian xử lý truy vấn phân tích tới 99.5%.

Đây là nền tảng kỹ thuật vững chắc chứng minh tính khả thi của việc ứng dụng các công nghệ Kho dữ liệu và Trí tuệ doanh nghiệp (BI) vào công tác quản trị an toàn đô thị. Các kỹ sư dữ liệu và nhà nghiên cứu có thể tiếp tục mở rộng mô hình này bằng cách tích hợp các luồng dữ liệu thời gian thực và áp dụng học máy dự báo để nâng cao hiệu quả phòng chống tai nạn giao thông trong tương lai.