Trong bài đăng này, chúng ta sẽ tìm hiểu về DirectQuery là một trong các loại kết nối dữ liệu. DirectQuery hỗ trợ một lượng dữ liệu khổng đến hàng petabyte dữ liệu trong cơ sở dữ liệu và kết nối với nó từ Power BI. Chúng ta sẽ cùng tìm hiểu cách thức vận hành của DirectQuery và vận dụng kiểu kết nối dữ liệu này.
DirectQuery là gì ?
DirectQuery là một loại storage mode trong Power BI bên cạnh các chế độ khác như Import, Live connection, Composite. Power BI sẽ adữ liệu vào bộ nhớ khi sử dụng chế độ import. Với DirectQuery, máy tính của chúng ta sẽ không tiêu tốn bộ nhớ vì sẽ không có bản sao thứ hai của dữ liệu được lưu trữ. DirectQuery nghĩa là Power BI được kết nối trực tiếp với nguồn dữ liệu (Data source). Bất cứ lúc nào bạn nhìn thấy hình ảnh trực quan trong báo cáo; dữ liệu được lấy trực tiếp từ một truy vấn được gửi đến nguồn dữ liệu.
Ví dụ: Direct query với nguồn SQL server database
Nguồn dữ liệu nào hỗ trợ DirectQuery ?
Không giống như Import được hỗ trợ trong tất cả các loại nguồn dữ liệu, DirectQuery chỉ được hỗ trợ bởi một số nguồn dữ liệu hạn chế. Chúng ta không thể sử dụng Direct Query với những nguồn on-premises file như Excel, CSV… hay các nguồn như google sheet, one drive, web… Thông thường, Direct query chỉ sử dụng được khi data source là Relational Database hoặc một số nguồn khác có hỗ trợ chế độ này. Dưới đây là một số nguồn dữ liệu được hỗ trợ thông qua DirectQuery:
Amazon Redshift
Azure HDInsight Spark
Azure SQL Database
Azure SQL Data Warehouse
Google BigQuery
IBM Netezza
Impala
Oracle Database
SAP Business Warehouse
SAP HANA
Snowflake
Spark
SQL Server
Teradata Database
Vertica
Power BI data sources – Power BI | Microsoft Learn
Không có Data view khi sử dụng DirectQuery
Một trong những điều đầu tiên bạn sẽ nhận thấy trong Chế độ DirectQuery là không có Data view như chế độ import. Chúng ta chỉ có Report view và Data model view như dưới hình.
DirectQuery hoạt động như thế nào
DirectQuery hoạt động như thế nào
Với chế độ Direct query, mỗi khi chúng ta mở báo cáo, Power BI sẽ lập tức gửi một truy vấn đến nguồn dữ liệu và kết quả của truy vấn đó sẽ được gửi về Power BI để hiển thị trên visual cho chúng ta.
Performance và khi nào thì nên sử dụng DirectQuery?
DirectQuery hoạt động chậm hơn nhiều so với tùy chọn Import Data. Truy vấn dữ liệu từ bộ nhớ (Import Data) luôn nhanh hơn truy vấn từ cơ sở dữ liệu (DirectQuery).
Truy vấn nguồn hạn chế
Với DirectQuery, bạn có thể áp dụng một số áp dụng được một số phép xử lý, biến đổi trong Power Query Editor. Tuy nhiên, không phải tất cả các phép biến đổi đều được hỗ trợ. Để biết phép biến đổi nào được hỗ trợ và phép biến đổi nào không, trước tiên bạn phải kiểm tra nguồn dữ liệu. Một số nguồn dữ liệu hoàn toàn không hỗ trợ bất kỳ chuyển đổi nào, chẳng hạn như SAP Business Warehouse. Một số phép biến đổi, chẳng hạn như cơ sở dữ liệu SQL Server, hỗ trợ nhiều phép biến đổi hơn.
Nếu bạn sử dụng một chuyển đổi không được hỗ trợ, bạn sẽ nhận được thông báo lỗi cho biết “This step results in a query that is not supported in DirectQuery mode”
Giới hạn về modelling và DAX
Việc tạo các calculated table được cho phép Composite mode và chế độ Date hierarchy mặc định là không có sẵn. Một số hàm DAX cũng không khả dụng đối với bảng sử dụng Direct query. Ngoài ra, các measure DAX phức tạp có thể gây ra các vấn đề về hiệu suất trong chế độ DirectQuery.
Không cần refresh
Một trong những ưu điểm của DirectQuery là không phải thiết lập Refresh schedule. Bởi vì mỗi khi người dùng xem báo cáo, sẽ có truy vấn được gửi đến cơ sở dữ liệu và kết quả sẽ trả về để hiển thị lên trên visual dữ liệu mới nhất.
Tập dữ liệu quy mô lớn
Lợi ích chính của DirectQuery là sử dụng nó trên một lượng lớn dữ liệu. Trên thực tế, tính năng này là lý do chính mà bạn có thể cần xem xét DirectQuery. Do dữ liệu không được tải vào bộ nhớ nên không có giới hạn về kích thước của nguồn dữ liệu. Hạn chế duy nhất là hạn chế mà bạn có trong chính nguồn dữ liệu. Bạn có thể có hàng petabyte dữ liệu với kết nối DirectQuery. Tuy nhiên, bạn cần xem xét điều chỉnh hiệu suất trong nguồn dữ liệu như đã đề cập trước đó trong bài đăng này.
Kết luận
Kết luận
Không giới hạn kích thước là lý do chính và trong nhiều trường hợp là lý do duy nhất khiến một số tình huống sử dụng DirectQuery. Vì dựa trên những gì bạn đã học được trong bài đăng này, DirectQuery chậm hơn và kém linh hoạt hơn, với ít tính năng hơn so với Power Query và DAX.
Tham khảo:
DirectQuery Connection in Power BI; How does it work? Limitations and Advantages – RADACAD
- Tham gia group ôn thi PL-300/DA-100 tại: https://www.facebook.com/groups/da100vn
- Chuỗi Video Hướng dẫn thực hành Lab và sử dụng các tài nguyên của Microsoft: https://www.youtube.com/c/Datapotvn/videos
- Update tài nguyên từ Microsoft, DA-100 exam questions và exam topics tại Fanpage của Datapot: https://www.facebook.com/DatapotAnalytics/
Với các bạn mới bắt đầu tìm hiểu Power BI & mong muốn ứng dụng Power BI trong công việc, hãy tham khảo khóa học PL-300: Microsoft Power BI Data Analyst từ Datapot.
Được thiết kế và giảng dạy bởi các chuyên gia giàu kinh nghiệm làm việc và đào tạo trong ngành dữ liệu, được triển khai tại các doanh nghiệp như Unilever, SHB, MB Life Ageas,.., khóa học sẽ mang đến cho bạn những kiến thức và kỹ năng thực tiễn nhất.