Kiến thức
19 phút đọc

Quản Lý Làm Mới Truy Vấn Dữ Liệu Trong Power BI

Bài viết này mô tả cách định cấu hình làm mới gia tăng và dữ liệu thời gian thực cho bộ dữ liệu.

1. Quản lý làm mới truy vấn trong Power BI

Với Power BI, bạn có thể kết nối với nhiều loại nguồn dữ liệu khác nhau và định hình dữ liệu để đáp ứng nhu cầu của mình. Các kết nối và biến đổi được lưu trữ trong các truy vấn, theo mặc định, các truy vấn này được làm mới bằng cách làm mới báo cáo theo cách thủ công hoặc tự động trong Service.

1.1. Quản lý tải truy vấn

Trong nhiều trường hợp, bạn nên chia nhỏ các lần chuyển đổi dữ liệu của mình thành nhiều truy vấn. Một ví dụ phổ biến là hợp nhất trong đó bạn hợp nhất hai truy vấn thành một để thực hiện một phép nối về cơ bản. Trong loại tình huống này, một số truy vấn không liên quan để tải vào Desktop vì chúng là các bước trung gian, trong khi chúng vẫn cần thiết để quá trình chuyển đổi dữ liệu của bạn hoạt động chính xác. Đối với các truy vấn này, bạn có thể đảm bảo rằng chúng không được tải trong Desktop bằng cách bỏ chọn ‘Enable Load‘ trong menu ngữ cảnh của truy vấn trong Desktop hoặc trong màn hình Properties

1.2. Loại bỏ các truy vấn khỏi làm mới

Đối với các truy vấn mà dữ liệu nguồn không được cập nhật thường xuyên hoặc hoàn toàn không được cập nhật, thì việc không bao gồm các truy vấn đó trong quá trình làm mới báo cáo là điều hợp lý. Trong trường hợp này, bạn có thể loại trừ các truy vấn không được làm mới khi báo cáo được làm mới bằng cách bỏ chọn ‘Include in report refresh’ trong menu ngữ cảnh của truy vấn trong Desktop hoặc trong màn hình Properties:

2. Định hình làm mới gia tăng và dữ liệu thời gian thực

Định cấu hình làm mới gia tăng bao gồm tạo tham số RangeStart và RangeEnd, áp dụng bộ lọc và xác định chính sách làm mới gia tăng. Sau khi xuất bản lên dịch vụ, bạn thực hiện thao tác làm mới ban đầu trên tập dữ liệu. Hoạt động làm mới ban đầu và các hoạt động làm mới tiếp theo áp dụng chính sách làm mới gia tăng mà bạn đã xác định.

2.1. Tạo các tham số

Trong tác vụ này, hãy sử dụng Power Query Editor để tạo các tham số RangeStart và RangeEnd với các giá trị mặc định. Các giá trị mặc định chỉ áp dụng khi lọc dữ liệu sẽ được tải vào mô hình trong Power BI Desktop. Các giá trị bạn nhập chỉ nên bao gồm một lượng nhỏ dữ liệu gần đây nhất từ nguồn dữ liệu của bạn. Khi được xuất bản lên Service, các giá trị này sẽ bị ghi đè bởi chính sách làm mới gia tăng.

  1. Trong Power BI Desktop, bấm Transform data để mở Power Query Editor.
  1. Nhấp vào Manage Parameters > New Parameter.
  1. Trong Manage Parameters > Name, nhập  RangeStart (phân biệt chữ hoa chữ thường), sau đó trong Type, chọn Date/Time, sau đó trong Current Value, nhập giá trị ngày/giờ bắt đầu.
  1. Tạo tham số thứ hai có tên RangeEnd. Trong Type, chọn Date/Time, sau đó trong Current Value, nhập giá trị ngày/giờ kết thúc.

Bây giờ bạn đã có các tham số RangeStart RangeEnd, sau đó bạn lọc dữ liệu sẽ được tải vào mô hình dựa trên các tham số đó.

2.2. Lọc dữ liệu

Với các thông số RangeStart RangeEnd đã xác định, hãy áp dụng bộ lọc dựa trên các điều kiện trong thông số RangeStart và RangeEnd.

  1. Trong Power Query Editor, hãy chọn cột ngày mà bạn muốn lọc, rồi bấm vào biểu tượng bộ lọc > Date/Time Filters > Custom Filter..
  1. Trong Filter Rows, để chỉ định điều kiện đầu tiên, hãy chọn is after hoặc is after or equal to, sau đó chọn Parameter rồi chọn RangeStart.

Để chỉ định điều kiện thứ hai, nếu bạn chọn is after ở điều kiện thứ nhất thì chọn is after or equal to hoặc nếu bạn chọn is after or equal to  ở điều kiện thứ nhất thì chọn is before đối với điều kiện thứ hai rồi chọn Parameter, sau đó chọn RangeEnd. Ví dụ:

Important: Xác minh các truy vấn có giá trị bằng (=) trên RangeStart hoặc RangeEnd, nhưng không phải cả hai. Nếu giá trị bằng (=) tồn tại trên cả hai tham số, một hàng có thể đáp ứng các điều kiện cho hai phân vùng, điều này có thể dẫn đến dữ liệu trùng lặp trong mô hình. Ví dụ: #”Filtered Rows” = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) có thể dẫn đến dữ liệu trùng lặp.

Nhấn OK để đóng lại.

  1. Trong Power Query Editor, bấm Close & Apply. Sau đó, Power Query sẽ tải dữ liệu dựa trên các bộ lọc được xác định trong tham số RangeStart và RangeEnd cũng như bất kỳ bộ lọc nào khác mà bạn đã xác định.

Power Query chỉ tải dữ liệu được chỉ định giữa các tham số RangeStart RangeEnd. Tùy thuộc vào lượng dữ liệu trong khoảng thời gian đó, quá trình tải sẽ diễn ra nhanh chóng. Nếu nó có vẻ chậm và xử lý nhiều, thì có khả năng truy vấn không gấp.

2.3. Xác định chính sách

Sau khi bạn đã xác định các tham số RangeStart và RangeEnd, đồng thời lọc dữ liệu dựa trên các tham số đó, bạn sẽ xác định chính sách làm mới gia tăng. Chính sách này chỉ được áp dụng sau khi mô hình được xuất bản lên Service và thao tác làm mới theo lịch trình hoặc thủ công được thực hiện.

  1. Trong  Data view > Fields > mở menu ngữ cảnh cho bảng, rồi bấm vào Incremental refresh.
  1. Trong Incremental refresh and real-time data > Select table, xác minh hoặc chọn bảng. Theo mặc định, hộp danh sách Chọn bảng mặc định cho bảng bạn chọn trong dạng Data view.
  1. Chỉ định cài đặt cần thiết:

Trong Set import and refresh ranges > Incrementally refresh this table, hãy nhấp vào thanh trượt để On. Nếu thanh trượt bị tắt, điều đó có nghĩa là biểu thức Power Query cho bảng không bao gồm bộ lọc dựa trên các tham số RangeStart và RangeEnd.

Trong  Archive data starting: hãy chỉ định khoảng thời gian lưu trữ lịch sử mà bạn muốn đưa vào tập dữ liệu. Tất cả các hàng có ngày trong khoảng thời gian này sẽ được tải vào tập dữ liệu trong dịch vụ, trừ khi áp dụng các bộ lọc khác.

Trong Specify optional settings:, hãy chỉ định khoảng thời gian làm mới. Tất cả các hàng có ngày trong khoảng thời gian này sẽ được làm mới trong tập dữ liệu mỗi khi thao tác làm mới theo lịch trình hoặc thủ công được thực hiện.

  1. Chỉ định cài đặt tùy chọn:

Trong Choose optional settings, chọn Get the latest data in real time with DirectQuery (Premium only) để bao gồm các thay đổi dữ liệu mới nhất xảy ra tại nguồn dữ liệu sau khoảng thời gian làm mới cuối cùng. Cài đặt này khiến chính sách làm mới gia tăng thêm phân vùng DirectQuery vào bảng.

Chọn Only refresh complete days để chỉ làm mới cả ngày. Nếu thao tác làm mới phát hiện một ngày chưa hoàn tất, các hàng cho cả ngày đó sẽ không được làm mới. Tùy chọn này được bật tự động nếu bạn chọn Get the latest data in real time with DirectQuery (Premium only).

Chọn Detect data changes  để chỉ định cột ngày/giờ được sử dụng để xác định và chỉ làm mới những ngày mà dữ liệu đã thay đổi. Cột ngày/giờ phải tồn tại, thường là cho mục đích kiểm tra, tại nguồn dữ liệu. Đây không phải là cùng một cột được sử dụng để phân vùng dữ liệu với các tham số RangeStart và RangeEnd. Giá trị tối đa của cột này được đánh giá cho từng khoảng thời gian trong phạm vi gia tăng. Nếu nó không thay đổi kể từ lần làm mới cuối cùng, thì khoảng thời gian hiện tại không được làm mới. Đối với các bộ dữ liệu được xuất bản lên dung lượng Premium, bạn cũng có thể chỉ định một truy vấn tùy chỉnh. 

Tùy thuộc vào cài đặt của bạn, chính sách của bạn sẽ giống như thế này:

Xem lại cài đặt của bạn rồi nhấp vào Apply để hoàn thành chính sách làm mới. Dữ liệu nguồn không được tải với bước này.

2.4. Lưu và công khai trên Service

Khi các cài đặt chính sách làm mới, lọc và tham số RangeStart và RangeEnd của bạn hoàn tất, hãy đảm bảo lưu mô hình của bạn rồi xuất bản lên Service. Nếu tập dữ liệu của bạn trở nên lớn, hãy nhớ bật Large dataset storage format trước khi gọi lần làm mới đầu tiên trong Service.

Làm mới tập dữ liệu

Trong Service, hãy làm mới tập dữ liệu. Lần làm mới đầu tiên sẽ tải cả dữ liệu mới và dữ liệu cập nhật trong khoảng thời gian làm mới cũng như dữ liệu lịch sử cho toàn bộ khoảng thời gian lưu trữ. Tùy thuộc vào lượng dữ liệu, việc này có thể mất khá nhiều thời gian. Các lần làm mới tiếp theo, thủ công hoặc theo lịch trình thường nhanh hơn nhiều vì chính sách làm mới gia tăng được áp dụng và chỉ dữ liệu trong khoảng thời gian được chỉ định trong cài đặt chính sách làm mới mới được làm mới.

Chuyển đổi Date/Time thành số nguyên

Tác vụ này chỉ bắt buộc nếu bảng của bạn sử dụng các khóa thay thế số nguyên thay vì các giá trị Ngày/Giờ trong cột ngày mà bạn muốn sử dụng cho định nghĩa bộ lọc RangeStart/RangeEnd.

Loại dữ liệu của tham số RangeStart và RangeEnd phải là loại dữ liệu ngày/giờ bất kể loại dữ liệu của cột ngày. Tuy nhiên, đối với nhiều nguồn dữ liệu, các bảng không có cột kiểu dữ liệu Date/Time mà thay vào đó có cột ngày chứa các khóa thay thế số nguyên ở dạng yyyymmdd. Thông thường, bạn không thể chuyển đổi các khóa thay thế số nguyên này thành kiểu dữ liệu Date/Time vì kết quả sẽ là một biểu thức truy vấn không gấp, nhưng bạn có thể tạo một hàm chuyển đổi giá trị Date/Time trong các tham số để khớp với khóa thay thế số nguyên của bảng nguồn dữ liệu mà không làm mất khả năng gập lại. Hàm này sau đó được gọi trong một bước lọc. Bước này là bắt buộc nếu bảng nguồn dữ liệu chỉ chứa một khóa thay thế là kiểu dữ liệu số nguyên.

  1. Trong Power Query Editor, bấm Get data > Blank Query.
  1. Trong Query Settings, hãy nhập tên, ví dụ: DateKey, sau đó trong trình sửa công thức, hãy nhập công thức sau:
    = (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)
  1. Để kiểm tra công thức, trong Enter Parameter, hãy nhập giá trị ngàygiờ, rồi bấm Invoke. Nếu công thức đúng, một giá trị số nguyên cho ngày được trả về. Sau khi xác minh, hãy xóa truy vấn chức năng đã gọi.
  1. Trong Query, chọn bảng, sau đó chỉnh sửa công thức truy vấn để gọi hàm có tham số RangeStart và RangeEnd. Ví dụ:
    = Table.SelectRows(#”Sorted Rows”, each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd)) 

3. Làm mới tập dữ liệu được tạo từ tệp Power BI Desktop trên ổ đĩa cục bộ

3.1. Được hỗ trợ những gì?

Trong Power BI, Refresh Now và Schedule Refresh được hỗ trợ cho các bộ dữ liệu được tạo từ tệp Power BI Desktop được nhập từ ổ đĩa cục bộ nơi Get Data/Power Query Editor được sử dụng để kết nối và tải dữ liệu từ bất kỳ nguồn dữ liệu nào sau đây:

Cổng Power BI – Cá nhân

  • Tất cả các nguồn dữ liệu trực tuyến được hiển thị trong Get data của Power BI Desktop và Power Query Editor.
  • Tất cả các nguồn dữ liệu tại chỗ được hiển thị trong Get data của Power BI Desktop và Power Query Editor ngoại trừ tệp Hadoop (HDFS) và Microsoft Exchange.

Cổng dữ liệu tại chỗ

Nguồn dữ liệu:

  • Analysis Services Tabular
  • Analysis Services Multidimensional
  • SQL Server
  • SAP HANA
  • Oracle
  • Teradata
  • File
  • Folder
  • SharePoint list (on-premises)
  • Web
  • OData
  • IBM DB2
  • MySQL
  • Sybase
  • SAP BW
  • IBM Informix Database
  • ODBC

Bạn có thể thực hiện làm mới thủ công một lần trong Power BI Desktop bằng cách chọn Làm mới trên tab Home. Khi bạn chọn Refresh tại đây, dữ liệu trong mô hình của tệp sẽ được làm mới với dữ liệu được cập nhật từ nguồn dữ liệu gốc. Loại làm mới này, hoàn toàn từ trong chính ứng dụng Power BI Desktop, khác với làm mới thủ công hoặc theo lịch trình trong Power BI và điều quan trọng là phải hiểu sự khác biệt.

Khi bạn nhập tệp Power BI Desktop từ ổ đĩa cục bộ, dữ liệu cùng với thông tin khác về mô hình sẽ được tải vào tập dữ liệu trong Power BI service. Trong Power BI service, không phải Power BI Desktop, bạn muốn làm mới dữ liệu trong tập dữ liệu vì đó là những báo cáo của bạn, trong Power BI, dựa trên đó. Vì nguồn dữ liệu là bên ngoài nên bạn có thể làm mới tập dữ liệu theo cách thủ công bằng cách sử dụng Refresh now hoặc bạn có thể thiết lập lịch làm mới bằng cách sử dụng Schedule refresh.

Khi bạn làm mới tập dữ liệu, Power BI không kết nối với tệp trên ổ đĩa cục bộ để truy vấn dữ liệu đã cập nhật. Nó sử dụng thông tin trong tập dữ liệu để kết nối trực tiếp với các nguồn dữ liệu để truy vấn dữ liệu được cập nhật, sau đó tải vào tập dữ liệu.

3.2. Làm cách nào để lên lịch làm mới?

Khi bạn thiết lập lịch làm mới, Power BI sẽ kết nối trực tiếp với nguồn dữ liệu bằng cách sử dụng thông tin kết nối và thông tin xác thực trong tập dữ liệu để truy vấn dữ liệu cập nhật, sau đó tải dữ liệu đã cập nhật vào tập dữ liệu. Mọi hình ảnh trực quan hóa trong báo cáo và bảng điều khiển dựa trên tập dữ liệu đó trong Power BI service cũng được cập nhật.

3.3. Khi mọi việc không như mong muốn

Khi xảy ra sự cố, thường là do Power BI không thể đăng nhập vào nguồn dữ liệu hoặc nếu tập dữ liệu kết nối với nguồn dữ liệu tại chỗ, thì cổng sẽ ngoại tuyến. Đảm bảo Power BI có thể đăng nhập vào các nguồn dữ liệu. Nếu mật khẩu bạn sử dụng để đăng nhập vào nguồn dữ liệu thay đổi hoặc Power BI bị đăng xuất khỏi nguồn dữ liệu, hãy nhớ thử đăng nhập lại vào nguồn dữ liệu của bạn trong Data Source Credentials.

Đảm bảo đánh dấu vào hộp kiểm Send refresh failure notification email to me checked. Bạn sẽ muốn biết ngay nếu quá trình làm mới theo lịch trình không thành công.

3.4. Xử lý sự cố

Đôi khi, việc làm mới dữ liệu có thể không diễn ra như mong đợi. Thông thường, đây là sự cố liên quan đến cổng.