Giới thiệu về cách sử dụng DirectQuery trong Power BI (Phần 1)

Bạn có thể kết nối đến tất cả các loại nguồn dữ liệu khác nhau khi sử dụng Power BI Desktop hoặc Power BI service và thực hiện các kết nối dữ liệu đó theo những cách khác nhau. Bạn có thể nhúng (import) dữ liệu vào Power BI, đây là cách kết nối dữ liệu phổ biến nhất hoặc kết nối trực tiếp với dữ liệu trong kho dữ liệu nguồn ban đầu, được gọi là DirectQuery. Bài viết này sẽ mô tả các tính năng của DirectQuery như:

  • Các tùy chọn kết nối khác nhau cho DirectQuery.
  • Hướng dẫn về thời điểm bạn nên cân nhắc sử dụng DirectQuery thay vì import.
  • Các hạn chế của việc sử dụng DirectQuery.
  • Các phương pháp hay nhất để sử dụng DirectQuery.

Theo các phương pháp tốt nhất để sử dụng import thay vì DirectQuery:

  • Bạn nên nhúng dữ liệu vào Power BI bất kỳ khi nào có thể. Nhập tận dụng công cụ truy vấn hiệu suất cao của Power BI và cung cấp trải nghiệm tương tác cao và đầy đủ tính năng.
  • Nếu mục tiêu của bạn không thể thực hiện bằng cách nhúng dữ liệu, hãy cân nhắc DirectQuery. Ví dụ, nếu dữ liệu được thay đổi thường xuyên và các báo cáo phải phản ánh dữ liệu mới nhất, DirectQuery là lựa chọn tốt nhất. Tuy nhiên, sử dụng DirectQuery chỉ khả thi khi nguồn dữ liệu cơ bản có thể cung cấp các truy vấn tương tác dưới 5 giây cho truy vấn tổng hợp điển hình và có thể xử lý tải truy vấn được tạo ra. Ngoài ra, danh sách các giới hạn cho việc sử dụng DirectQuery cũng cần được lưu ý.

Tập hợp các tính năng được Power BI cung cấp để nhập và DirectQuery được phát triển theo thời gian. Các thay đổi sẽ bao gồm việc cung cấp tính linh hoạt hơn khi sử dụng dữ liệu đã nhập, do đó, nhập có thể được dùng trong nhiều trường hợp hơn và loại bỏ một số hạn chế của DirectQuery. Bất kể cải tiến như thế nào, khi sử dụng DirectQuery, hiệu suất của nguồn dữ liệu cơ bản vẫn là yếu tố chính cần xem xét. Nếu nguồn dữ liệu cơ bản đó chậm, thì không nên dùng DirectQuery.

Bài viết này đề cập đến DirectQuery với Power BI chứ không phải SQL Server Analysis Services. DirectQuery cũng là một tính năng của SQL Server Analysis Services. Nhiều chi tiết được mô tả trong bài viết này áp dụng cho tính năng đó nhưng vẫn có những khác biệt quan trọng. Chúng ta sẽ tập trung vào quy trình làm việc được đề xuất cho DirectQuery, nơi báo cáo được tạo trong Power BI Desktop nhưng cũng bao gồm kết nối trực tiếp trong Power BI Service.

1. Các chế độ kết nối trong Power BI

Power BI có thể kết nối đến một số lượng lớn các loại nguồn dữ liệu khác nhau, bao gồm:

  • Online services (Salesforce, Dynamics 365, others)
  • Databases (SQL Server, Access, Amazon Redshift, others)
  • Simple files (Excel, JSON, others)
  • Các nguồn dữ liệu khác (Spark, Web sites, Microsoft Exchange, others)

Các nguồn dữ liệu này có thể import dữ liệu vào Power BI nhưng trong một vài trường hợp vẫn có thể kết nối bằng cách sử dụng DirectQuery. Trong tương lai sẽ có nhiều nguồn được kết nối bằng DirectQuery, tập trung chủ yếu vào các nguồn có thể mang lại hiệu suất truy vấn tương  tác tốt.

SQL Server Analysis Services là một trường hợp đặc biệt. Khi kết nối đến SQL Server Analysis Services, bạn có thể chọn import dữ liệu hoặc sử dụng một live connection. Sử dụng một live connection cũng tương tự như DirectQuery. Không có dữ liệu nào được import và nguồn dữ liệu cơ bản luôn được truy vấn để làm mới trực quan. Một live connection thì khác về nhiều mặt so với DirectQuery nên được gọi với một thuật ngữ khác.

Đây là ba tùy chọn để kết nối với dữ liệu: import, DirectQuery và live connection.

1.1. Import Connections

Đối với import, khi sử dụng Get Data trong Power BI Desktop để kết nối đến một nguồn dữ liệu như SQL Server, hoạt động của kết nối đó như sau:

  • Trải nghiệm Get Data ban đầu, tập hợp các bảng được chọn từng xác định một truy vấn sẽ trả về một tập dữ liệu. Các truy vấn đó có thể được chỉnh sửa trước khi tải dữ liệu như áp dụng bộ lọc hoặc tổng hợp dữ liệu hay nối các bảng khác nhau.
  • Khi tải, tất cả dữ liệu được xác định bởi các truy vấn đó sẽ được cập nhật vào bộ đệm Power BI.
  • Khi xây dựng trực quan trong Power BI Desktop, dữ liệu đã import sẽ được truy vấn. Power BI store đảm bảo truy vấn nhanh chóng, tất cả thay đổi với trực quan phải được phản ánh ngay lập tức.
  • Mọi thay đổi với dữ liệu cơ bản không được phản ánh trong bất kỳ hình ảnh nào. Cần phải làm mới (Refresh) để nhập lại (Reimport) dữ liệu.
  • Khi xuất bản báo cáo dưới dạng tệp .pbix lên Power BI service, một dataset được tạo và tải lên Power BI service. Dữ liệu đã import được thêm vào dataset đó, sau đó, có thể lên lịch làm mới dữ liệu. Tùy vào vị trí của nguồn dữ liệu ban đầu, có thể cần định lại cấu hình cổng dữ liệu tại chỗ.
  • Khi mở một báo cáo hiện có trong Power BI service, hoặc tạo báo cáo mới dữ liệu đã import sẽ được truy vấn lại, đảm bảo tính tương tác.
  • Các trực quan hoặc toàn bộ trang báo cáo có thể được ghim dưới dạng các dashboard tiles. Các tiles tự động làm mới bất cứ khi nào dataset cơ bản được làm mới.
1.2. DirectQuery connections

Đối với DirectQuery, khi sử dụng Get Data trong Power BI Desktop để kết nối dữ liệu, hoạt động của kết nối như sau:

  • Ban đầu khi Get Data, nguồn được chọn. Đối với các relational sources (nguồn quan hệ), một tập hợp các bảng được chọn và mỗi bảng vẫn xác định một truy vấn trả về một tập hợp dữ liệu một cách hợp lý.  Đối với các nguồn đa chiều, như SAP BW, chỉ có nguồn được chọn.
  • Tuy nhiên, khi tải không có dữ liệu nào được nhập vào Power BI store. Thay vào đó, khi xây dựng trực quan trong Power BI Desktop, các truy vấn được gửi đến nguồn dữ liệu bên dưới để lấy dữ liệu cần thiết. Thời gian cần thiết để làm mới trực quan phụ thuộc vào hiệu suất của nguồn dữ liệu.
  • Bất kỳ thay đổi nào đối với dữ liệu cơ bản không được phản ánh ngay lập tức trong bất kỳ trực quan nào hiện có, nó vẫn cần làm mới. Các truy vấn cần thiết được gửi lại cho mỗi trực quan và trực quan được cập nhật khi cần thiết.
  • Sau khi xuất bản báo cáo lên Power BI service, nó sẽ lại dẫn đến một dataset trong Power BI service, giống như khi import. Tuy nhiên, không có dữ liệu nào trong dataset đó.
  • Khi mở một báo cáo trong Power BI service hoặc tạo báo cáo mới, nguồn dữ liệu cơ bản lại được truy xuất để lấy dữ liệu cần thiết. Tùy thuộc vào vị trí của nguồn dữ liệu ban đầu, có thể cần phải định cấu hình cổng dữ liệu tại chỗ, cần thiết cho chế độ nhập nếu dữ liệu được làm mới.
  • Trực quan hoặc toàn bộ trang báo cáo có thể được ghim dưới dạng các Dashboard tiles. Để đảm bảo mở một dashboard nhanh, các tiles sẽ được tự động làm mới theo lịch, ví dụ như mỗi giờ. Tần suất làm mới có thể tùy chỉnh, để phản ánh tần suất thay đổi của dữ liệu và tầm quan trọng của việc xem dữ liệu mới nhất. Khi mở một dashboard, các tiles phản ánh dữ liệu tại thời điểm làm mới cuối cùng và không nhất thiết là những thay đổi mới nhất được thực hiện đối với nguồn cơ bản. Bạn có thể làm mới một trang tổng quan đang mở để đảm bảo đó là trang hiện tại.
1.3. Live connections

Khi kết nối đến SQL Server Analysis Service, có một tùy chọn để import dữ liệu và một kết nối trực tiếp (connect live) với mô hình dữ liệu. Nếu bạn sử import, bạn xác định một truy vấn chống lại SQL Server Analysis Service bên ngoài đó và dữ liệu được import như bình thường. Nếu bạn sử dụng kết nối trực tiếp, không có truy vấn nào được xác định và toàn bộ mô hình bên ngoài được hiển thị trong danh sách trường.

Tình huống được mô tả trước đó cũng áp dụng cho việc kết nối với các nguồn sau, ngoại trừ việc không có tùy chọn để nhập dữ liệu:

  • Power BI datasets, ví dụ, khi kết nối đến một Power BI dataset đã được tạo và xuất bản trước đó lên server, để tạo một báo cáo mới về nó.
  • Microsoft Dataverse.

Hoạt động của báo cáo qua SQL Server Analysis Services, khi xuất bản lên Power BI service, tương tự như báo cáo DirectQuery theo những cách sau:

Khi mở báo cáo hiện có sẵn trong Power BI service hoặc tạo một báo cáo mới, nguồn SQL Server Analysis Services cơ bản được truy vấn, có thể yêu cầu một on-premises data gateway (cổng dữ liệu tại chỗ).

Kết thúc phần đầu tiên, BAC đã giới thiệu đến bạn 3 chế độ kết nối trong Power BI. Trong những phần sau của bài viết, chúng ta sẽ tiếp tục với những vấn đề xoay quanh DirectQuery, đừng quên đón đọc tại bacs.vn.

Nguồn tham khảo:

https://docs.microsoft.com/

Đọc tiếp phần 2 tại đây nhé: Giới thiệu về cách sử dụng DirectQuery trong Power BI (Phần 2)

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo: 

 

Previous Post
Next Post
Exit mobile version