Tìm hiểu về Datamart, Dataflow, và Dataset trong Power BI
Data flow là gì?
Power BI Dataflow là thành phần transform dữ liệu trong Power BI. Nó là một quá trình hoạt động trong đám mây, độc lập khỏi báo cáo và dataset trong Power BI, và chứa các dữ liệu vào Azure Data Lake storage (hoặc Dataverse). Dataflow không chỉ xuất hiện trong Power BI, nó có thể được tạo và sử dụng trên những dịch vụ khác như Power Platform (Power Apps). Dataflow cho bạn phần mềm transform dữ liệu của Power Query và lựa chọn nơi chứa. Dataflow cho phép bạn lưu trữ thành phần ETL (Extract-Transform-Load) có thể sử dụng lại.
Dataset là gì?
Dataset là phần bao gồm mối liên kết với nguồn dữ liệu, bảng dữ liệu, bản thân dữ liệu và mối quan hệ giữa các bảng và công thức DAX. Power BI Dataset không được thể hiện trên Power BI Desktop view mà có ở các Power BI Service. Power BI Dataset thường được sử dụng khi chia sẻ các mô hình giữa nhiều phần trực quan hóa (như báo cáo Power BI, báo cáo phân trang, và cả báo cáo Excel). Khả năng sử dụng Dataset được chia sẻ cho phép bạn có layer mô hình trong Power BI.
Datamart là gì?
Power BI Datamart là thành phần mới được bổ sung vào hệ sinh thái Power BI. Power BI Datamart là sự kết hợp của Dataflow, Azure SQL Database (hoạt động như kho chứa dữ liệu), và Dataset. Datamart cũng đi kèm với editor thống nhất trong Power BI Service. Datamart giống như một hộp chứa bao gồm các thành phần khác của Power BI (Dataflow, Dataset, và Azure SQL Database).
Sự khác biệt giữa Dataflow và Dataset
Dataflow là thành phần của Power Query và không chỉ dành cho Power BI
Dataflow tách Power Query logic và code từ file Power BI để sử dụng chúng trong nhiều file khác. Bạn có thể lấy dữ liệu từ nhiều nguồn khác nhau, transform chúng sử dụng Power Query online và có phần dữ liệu đã được xử lý, đặt lịch làm mới tự động cho chúng và lựa chọn chứa dữ liệu vào Azure Data Lake storage, hoặc Dataverse.Trong số 03 thành phần trong bài, Dataflow là thành phần duy nhất có thể được tạo ngoài Power BI. Sử dụng Dataflow không yêu cầu bạn có kiến thức về BI hay phân tích dữ liệu. Bạn có thể chỉ cần Dataflow để hợp nhất dữ liệu. Ví dụ, bản chỉ muốn lấy dữ liệu trong hệ thống nguồn, transform và chứa chúng trong kho chứa dữ liệu để sử dụng các dữ liệu này cho phần khác.Dataflow trong Power BI có thể được sử dụng cho mục đích phân tích dữ liệu, nhưng cũng có thể được tạo trong Power Platform.
Dataset là sự thay thế cho mối quan hệ và công thức DAX
Khi sử dụng dataset được chia sẻ, bạn có thể tái sử dụng các mối quan hệ và công thức DAX bạn đã tạo cho một mô hình trong một file Power BI khác. Dataset cho bạn tái sử dụng DAX measures, cột và bảng tính toán, hệ thống phân cấp, và các mối quan hệ được hình thành trong mô hình của bạn nhiều lần. Bạn có thể kết nối nhiều báo cáo với Dataset và tái sử dụng mô hình dữ liệu.
Dataflow là ETL (trích xuất, biến đổi và tải) Layer trong khi Dataset là Modeling Layer
Dataflow là layer biến đổi dữ liệu khi bạn sử dụng Power BI. Kỹ thuật cho layer này là trích xuất, biến đổi và tải dữ liệu. Dataset là layer của mọi công thức và mô hình bằng cách lấy dữ liệu từ Dataflow (hoặc các nguồn khác) và xây dựng bộ nhớ trong cho dữ liệu sử dụng Power BI (Analysis Services) engine.
Dataflow tải dữ liệu vào Dataset trong khi Dataset tải dữ liệu lên mô hình trực quan hóa.
Kết quả của dataflow sẽ được tải lên dataset để tiếp tục xây dựng, bản thân dataflow không phải là thành phần có thể được trực quan hóa.Dataset là mô hình được xây dựng trong bộ nhớ và sẵn sàng cho việc trực quan hóa, do vậy kết quả thường được dùng để trực tiếp xây dựng mô hình trực quan hóa.
Dataflow lấy dữ liệu trực tiếp từ nguồn dữ liệu trong khi Dataset lấy dữ liệu từ Dataflow.
Dataflow thường lấy dữ liệu trực tiếp từ nguồn dữ liệu.Dù Dataset có thể lấy dữ liệu trực tiếp dữ liệu, tốt nhất là Dataset được chia sẻ lấy dữ liệu từ Dataflows.
Lập trình viên cho Dataflow cần kỹ năng Power Query trong khi lập trình viên Dataset cần kỹ năng DAX và xây dựng mô hình dữ liệu.
Kỹ năng cần thiết cho một lập trình viên Dataflow là kỹ năng Power Query và xây dựng giản đồ hình sao (Star-Schema), không cần đến kỹ năng DAX và trực quan hóa.Trong khi đó, lập trình viên Dataset cần có kiến thức sâu về các mối quan hệ trong Power BI và các công thức DAX. Lập trình viên Dataset có thể biết kỹ năng Power Query và trực quan hóa, nó không phải là kỹ năng quan trọng nhất.
Người sử dụng Dataflow là người xây dựng mô hình dữ liệu trong khi người sử dụng Dataset là người xây dựng báo cáo trực quan hóa.
Kết quả Dataflow có thể sử dụng cho việc xây dựng mô hình dữ liệu. Dùng kết quả của Dataflow để trực quan hóa dữ liệu không phải là cách tiếp cận tốt nhất. Do Dataflow vẫn cần phải tải lên một mô hình với mối quan hệ và công thức phù hợp.Trong khi đó, kết quả Dataset đã sẵn sàng cho báo cáo trực quan hóa.
Dataflow giải quyết vấn đề nhiều phiên bản của cùng một bảng trong nhiều file PBIX khác nhau trong khi Dataset xử lý vấn đề có nhiều phiên bản của cũng một DAX Code trong nhiều file PBIX khác nhau.
Sử dụng Dataflow, bạn có thể ngừng việc sao chép và dán Power Query script vào các file khác. Bạn có thể tái sử dụng một bản nhiều lần.Sử dụng dataset được chia sẻ, bạn có thể có nhiều báo cáo sử dụng chung công thức và mô hình dữ liệu thay vì phải nhân bản code nhiều lần -> Dataflow và Dataset không thay thế lẫn nhau mà có mối quan hệ bổ sung, hỗ trợ cho nhau.
Datamart
Datamart khác gì so với Dataset và Dataflow
Ở trên là sự so sánh về điểm khác nhau giữa Dataflow và Dataset, vậy còn Datamart thì sao?Power BI Datamart tổng hợp nhiều thành phần chứ không phải một phần đơn lẻ. Khi bạn tạo Power BI Datamart, bạn cũng đồng thời tạo Dataflow, Azure SQL Database, và Dataset. Điều này nghĩa là Datamart đã gồm tất cả lợi ích được nhắc đến bên trên của Dataflow và Dataset. Datamart cũng có thêm một tiện ích: lưu trữ dữ liệu trong Azure SQL Database. Sau khi dữ liệu được xử lý qua Dataflow, chúng được tải lên Azure SQL Database. Power BI Datamart bao gồm cả 03 thành phần: Dataflow, Azure SQL Database, và Dataset.
Vậy liệu Datamart có thể thay thế Dataflow và Dataset không?
Câu trả lời là không.Đầu tiên, bản thân Dataflow đã là một thành phần hoàn thiện. Như đã nhắc đến ở trên, Dataflow có thể được xây dựng và sử dụng mà không cần đến Power BI trong khi Datamart thường hữu dụng khi bạn xây dựng giải pháp Power BI. Dataflow tiện lợi khi bạn chỉ muốn thêm bảng dữ liệu vào kho chứa và dùng chúng cho những mục đích khác. Thêm vào đó, kể cả khi bạn có Datamart, bạn có thể vẫn muốn xây dựng nhiều lớp Dataflow để stage và transform dữ liệu. Xây dựng nhiều lớp Dataflow là một kỹ thuật hiệu quả để cô lập dữ liệu và tái sử dụng các thành phần Dataflow.Datamart cũng không thể thay thế Dataset. Dù tạo Dataset từ UI thống nhất của Datamart dễ dàng hơn, việc đó không làm giảm sự cần thiết của Dataset như một thành phần riêng. Một ví dụ cụ thể về tác dụng của Dataset như một thành phần độc lập là khi bạn đang thiết kế một dữ liệu đã được transform bằng một nền tảng khác (ví dụ như Azure Data Factory) và kho chứa dữ liệu ở Azure Synapse. Bạn có thể dùng Power BI Datasets để xây dựng mô hình dữ liệu và tính toán trên đó thay vì phải xây dựng một Datamart đầy đủ. Nguồn tham khảo: Power BI Datamart Vs. Dataflow Vs. DatasetTham khảo thêm khóa học: PL – 300: Microsoft Power BI Data Analyst