LINK: 👇
LÝ DO KHÔNG NÊN DÙNG EXCEL LÀM CƠ SỞ DỮ LIỆU CỦA POWER APPS
Bài đăng nêu bật các vấn đề có thể phát sinh khi làm việc với các bảng tính Excel lớn. Để trình diễn mục đích, tôi sẽ sử dụng một bảng tính Excel mẫu mà tôi đã tạo với 30.000 bản ghi. Tệp Excel này chứa
ví dụ dữ liệu Nhân viên.
Giới hạn kích thước tệp Excel
Cũng cần lưu ý rằng PowerApps chỉ định một số nhận dạng duy nhất cho mỗi hàng bằng cách thêm một cột được gọi là PowerAppsId__. Nếu bảng tính nguồn của bạn nhỏ hơn 2MB, hãy kết nối với nguồn dữ liệu trong PowerApps có thể tăng kích thước tệp lên lớn hơn 2MB thông qua việc bao gồm cột này.
Để tiếp tục thử nghiệm này, tôi đã giảm số lượng bản ghi xuống còn 25.000. Điều này dẫn đến kích thước tệp là 1,7 MB.
Số lượng bản ghi tối đa bạn có thể hiển thị trong Thư viện là bao nhiêu?
Theo mặc định, điều khiển thư viện hiển thị 500 bản ghi đầu tiên. Cài đặt kiểm soát điều này là giới hạn hàng dữ liệu cho các truy vấn không được ủy quyền. Giá trị tối đa cho phép là 2000.
Nếu chúng ta tăng điều này lên 2000, điều khiển thư viện sẽ hiển thị 2000 bản ghi.
Giới hạn 2000 này có tác động gì đến Thư viện và Tìm kiếm?
Giới hạn này ngăn chúng tôi truy cập các hàng trên giới hạn.
Đây là ảnh chụp màn hình của các hàng xung quanh id bản ghi 2000.
Chúng tôi có thể tìm kiếm thành công 'Kisha' - bản ghi năm
2000. Nhưng khi chúng tôi tìm kiếm 'Misti' (bản ghi năm 2001), PowerApps KHÔNG
trả về bản giới thiệu mà chúng tôi mong đợi. Như ảnh chụp màn hình bên dưới hiển
thị, tìm kiếm 'Misti' trả về kỷ lục 1535, nhưng không ghi 2001.
Có bất kỳ chức năng nào để truy xuất các hàng trên bản ghi
2000 không?
Chúng ta hãy xem xét một số chức năng tiêu biểu mà chúng ta
có thể gọi trong PowerApps. Hai chức năng phổ biến là
Các chức năng Filter và LookUp. Cả hai đều không trả lại
hàng 2001.
Filter(Employees,
Name="Misti Bowen") LookUp(Employees,
Name="Misti Bowen").Name |
Chúng tôi có thể lọc theo giá trị ID số không?
Chúng ta có thể sử dụng chức năng Bộ lọc để trả về các bản
ghi trên hàng 2000 không? Sự cố đầu tiên tôi gặp phải là PowerApps đã hiểu cột
id là cột văn bản chứ không phải cột số. Điều này có nghĩa là chúng tôi không
thể lọc bằng các toán tử so sánh.
Sau khi sửa lỗi này bằng cách định dạng lại cột thành 'Số'
và xóa / thêm lại nguồn dữ liệu, điều khiển Thư viện trả về 0 bản ghi có biểu
thức bộ lọc 'id> 2000'.
Làm thế nào về việc chỉnh sửa hồ sơ? Có thể chỉnh sửa hồ sơ 2001?
Không thể sử dụng chức năng Patch vì chức năng này yêu cầu chúng tôi cung cấp bản ghi để cập nhật. Vì hàm LookUp không thể truy
xuất bản ghi 2001, chúng tôi không thể sử dụng chức năng này để
cung cấp bản ghi để vá. Lưu ý rằng cú pháp dưới đây đủ điều kiện
để hoạt động.
Patch(Employees,{id:2001},
{Name:"Misti Bowen Updated"})
UpdateIf(Employees, id=2001,
{Name:"Misti Bowen Updated"})
Làm thế nào về các chức năng Aggregate?
Như bạn có thể mong đợi từ bây giờ, Aggregate chức năng chỉ
có thể hoạt động trên 2000 bản ghi đầu tiên. This Hàm return về 2000, thay vì
25.000.
CountRows(Employees)
Điều này làm cho không thể tạo ra các bản tóm tắt chính xác của dữ
liệu (ví dụ: Tổng số tiền lương, Số lượng bản ghi có Họ = 'Smith', v.v.).
Có những cách giải quyết công việc nào?
Cách giải quyết điển hình với nguồn dữ liệu SharePoint là tải tất cả các bản ghi vào một bộ sưu tập cục bộ. Chúng tôi làm điều này theo lô với chức năng ForAll.
Với Excel, đây không phải là một giải pháp khả thi
vì Filter fuction không thể truy xuất các bản ghi phía trên hàng 2001. Do đó,
không có cách giải quyết thực tế nào và giải pháp tốt nhất là chọn một nguồn dữ
liệu khác ngoài Excel. Nếu bạn không cần cập nhật nguồn dữ liệu ... Nếu bạn
không cần cập nhật nguồn dữ liệu Excel của mình, bạn có thể nhập nó vào ứng dụng
của mình thông qua Chèn> Nguồn dữ liệu> 'Thêm dữ liệu tĩnh vào ứng dụng của
bạn'.
Nếu chúng ta chọn sử dụng phương pháp này, có một điều cần lưu ý. Tính năng 'Thêm dữ liệu tĩnh vào ứng dụng của bạn' chỉ có thể thêm tối đa 15.000 bản ghi. Bảng tính mà tôi đã tải lên chứa 25.000 bản ghi - CountRows của dữ liệu đã nhập chỉ hiển thị 15.000.
Để làm việc với dữ liệu tĩnh chứa hơn 15.000 hàng, cách giải quyết là chia tệp Excel thành các lô 15.000 bản ghi và nhập dữ liệu dưới dạng nhiều nguồn dữ liệu (ví dụ: Nhân viên 1 và Nhân viên 2). Sau đó, chúng tôi có thể viết mã để kết hợp các nguồn dữ liệu này thành một bộ sưu tập cục bộ duy nhất.
ClearCollect(EmployeesCombined,Employees1);
ClearCollect(EmployeesCombined,Employees2);
Lưu ý rằng chúng tôi cũng có thể sử dụng chức năng Đồng thời ở đây để tăng tốc quá trình.
Kết luận
Mặc dù Excel là một nguồn dữ liệu đơn giản để
sử dụng, nó không phù hợp với các tập dữ liệu lớn. Điều này là do không thể làm
việc với hơn 2000 bản ghi. Trong những tình huống này, cách tốt nhất là sử dụng
một nguồn dữ liệu khác (ví dụ: SQL Server, SharePoint, CDS).
Nhận xét