Logo Zephyrnet

Mẹo và thủ thuật dành cho trang tổng quan hiệu suất cao trong Amazon QuickSight

Ngày:

Amazon QuickSight là dịch vụ thông minh kinh doanh (BI) trên nền tảng đám mây. QuickSight tự động tối ưu hóa các truy vấn và quá trình thực thi để giúp trang tổng quan tải nhanh nhưng bạn có thể làm cho trang tổng quan của mình tải nhanh hơn nữa và đảm bảo bạn sẽ đạt được hiệu suất tốt nhất có thể bằng cách làm theo các mẹo và thủ thuật được nêu trong bài đăng này.

Luồng dữ liệu và thực hiện tải bảng thông tin QuickSight

Luồng dữ liệu trong QuickSight bắt đầu từ trình duyệt máy khách đến máy chủ web, sau đó chuyển sang công cụ QuickSight, trong một số trường hợp thực hiện các truy vấn đối với SPICE—Công cụ tính toán trong bộ nhớ, song song, siêu nhanh—hoặc trong các trường hợp khác trực tiếp đối với kho dữ liệu. SPICE sử dụng kết hợp lưu trữ theo cột, công nghệ trong bộ nhớ được hỗ trợ thông qua các cải tiến phần cứng mới nhất và tạo mã máy để chạy các truy vấn tương tác trên các tập dữ liệu lớn và nhận được phản hồi nhanh chóng.

Máy chủ web, công cụ QuickSight và SPICE được QuickSight tự động điều chỉnh tỷ lệ. Đây là dịch vụ được quản lý hoàn toàn—bạn không cần lo lắng về việc cung cấp hoặc quản lý cơ sở hạ tầng khi muốn mở rộng quy mô một bảng thông tin cụ thể từ hàng chục đến hàng nghìn người dùng trên SPICE. Bảng thông tin được xây dựng dựa trên nguồn dữ liệu truy vấn trực tiếp có thể yêu cầu cung cấp hoặc quản lý cơ sở hạ tầng từ phía khách hàng.

Sơ đồ sau minh họa luồng dữ liệu:

Chúng ta hãy xem quá trình thực hiện chung để hiểu ý nghĩa:

  • Một yêu cầu được kích hoạt trong trình duyệt, dẫn đến một số nội dung tĩnh như JavaScript, phông chữ và hình ảnh được tải xuống.
  • Tất cả siêu dữ liệu (chẳng hạn như cấu hình và bố cục trực quan) đều được tìm nạp cho trang tổng quan.
  • Các truy vấn được thực hiện, có thể bao gồm thiết lập bảo mật cấp hàng và cấp cột hoặc tìm nạp các giá trị điều khiển động, tham số mặc định và tất cả các giá trị của danh sách thả xuống trong điều khiển bộ lọc.
  • Đến giới hạn đồng thời của bạn, các truy vấn để hiển thị hình ảnh của bạn sẽ chạy theo một trình tự cụ thể (được mô tả sau trong bài đăng này). Nếu bạn đang sử dụng SPICE, khả năng truy vấn đồng thời sẽ cao hơn nhiều. Phân trang trong hình ảnh có thể dẫn đến các truy vấn bổ sung.

Quá trình thực thi thực tế phức tạp hơn và phụ thuộc vào cách định cấu hình bảng thông tin cũng như các yếu tố khác như loại nguồn dữ liệu, Truy vấn trực tiếp so với SPICE, số lượng trường và tần suất dữ liệu được làm mới, v.v. Nhiều thao tác chạy song song và tất cả đều trực quan- các truy vấn liên quan được chạy qua WebSocket, như minh họa trong ảnh chụp màn hình sau. Nhiều bước chạy trong trình duyệt của người dùng cuối, do đó có những hạn chế như số lượng trình tự và khối lượng công việc có thể được đẩy lên trình duyệt. Hiệu suất cũng có thể hơi khác nhau tùy theo loại trình duyệt vì mỗi trình duyệt xử lý tranh chấp khác nhau.

Bây giờ, hãy xem nhiều mẹo hay có thể cải thiện hiệu suất trang tổng quan của bạn!

Spice

Việc sử dụng các khả năng của SPICE khi có thể là một cách tuyệt vời để tăng hiệu suất tổng thể vì SPICE quản lý việc mở rộng quy mô cũng như lưu vào bộ đệm kết quả cho bạn. Chúng tôi khuyên bạn nên sử dụng SPICE bất cứ khi nào có thể.

Siêu dữ liệu

Như đã thấy trong trình tự thực thi trước đó, QuickSight tìm nạp trước siêu dữ liệu cho một bảng thông tin nhất định trong lần tải đầu tiên. Chúng tôi khuyên bạn nên thực hiện các hành động sau liên quan đến siêu dữ liệu.

Xóa các tập dữ liệu không sử dụng khỏi phân tích

Các bộ dữ liệu có thể đã được sử dụng trước đây nhưng không có hình ảnh liên kết với trang tổng quan nữa sẽ bổ sung vào tải trọng siêu dữ liệu một cách không cần thiết. Nó có thể ảnh hưởng đến hiệu suất của bảng điều khiển.

Đảm bảo bảo mật cấp hàng và cấp cột của bạn được thực hiện

Mỗi tham số bảo mật cấp hàng, bảo mật cấp cột và mặc định động đều yêu cầu thực hiện tra cứu trước khi đưa ra các truy vấn trực quan. Khi có thể, hãy cố gắng giới hạn số lượng và độ phức tạp của bộ dữ liệu quy tắc của bạn để giúp những tra cứu này thực thi nhanh hơn. Sử dụng SPICE cho tập dữ liệu quy tắc của bạn khi có thể. Nếu bạn phải sử dụng truy vấn trực tiếp, hãy đảm bảo rằng các truy vấn đó ở mức tối ưu và nguồn dữ liệu bạn đang truy vấn được điều chỉnh tỷ lệ phù hợp ngay từ đầu.

Đối với bảng thông tin được nhúng, một cách tuyệt vời để tối ưu hóa tra cứu bảo mật cấp hàng là sử dụng thẻ phiên để bảo mật cấp hàng được ghép nối với một danh tính ẩn danh. Tương tự, các tham số mặc định động, nếu được sử dụng, có thể được đánh giá trước trong ứng dụng máy chủ và được chuyển bằng SDK nhúng.

Hàm tính toán

Trong phần này, chúng tôi đưa ra các mẹo liên quan đến các hàm được tính toán.

Chuyển các tính toán sang giai đoạn chuẩn bị dữ liệu

QuickSight cho phép bạn thêm các trường được tính toán vào trải nghiệm phân tích hoặc chuẩn bị dữ liệu. Chúng tôi đặc biệt khuyến khích bạn chuyển càng nhiều phép tính càng tốt sang giai đoạn chuẩn bị dữ liệu. Điều này sẽ cho phép QuickSight cụ thể hóa các phép tính không chứa tập hợp hoặc tham số vào tập dữ liệu SPICE. Việc cụ thể hóa các trường được tính toán trong tập dữ liệu giúp bạn giảm bớt các phép tính trong thời gian chạy, giúp cải thiện hiệu suất truy vấn. Ngay cả khi bạn đang sử dụng tổng hợp hoặc tham số trong phép tính của mình, vẫn có thể di chuyển các phần của phép tính sang chuẩn bị dữ liệu. Ví dụ: nếu bạn có một công thức như sau:

Bạn có thể loại bỏ sum() và chỉ cần giữ ifelse(), điều này sẽ cho phép QuickSight hiện thực hóa (tính toán trước) nó và lưu nó dưới dạng trường thực trong tập dữ liệu SPICE của bạn. Sau đó, bạn có thể thêm một phép tính khác để tính tổng hoặc chỉ sử dụng phép tính tổng sau khi bạn thêm nó vào hình ảnh của mình.

Nói chung cụ thể hóa các tính toán sử dụng phức tạp ifelse logic hoặc thực hiện thao tác/tra cứu chuỗi sẽ mang lại những cải thiện lớn nhất về hiệu suất của trang tổng quan.

Thực hiện cú pháp ifelse đơn giản

Sản phẩm ifelse chức năng hỗ trợ các câu lệnh đơn giản hóa. Ví dụ: bạn có thể bắt đầu bằng câu lệnh sau:

Câu lệnh đơn giản sau đây có hiệu suất cao hơn:

Sử dụng hàm toString() một cách thận trọng

Sản phẩm toString() Hàm có hiệu suất thấp hơn nhiều và nặng hơn trên công cụ cơ sở dữ liệu so với các phép tính số học dựa trên số hoặc số nguyên đơn giản. Vì vậy, bạn nên sử dụng nó một cách tiết kiệm.

Biết khi nào hệ thống trả về giá trị rỗng và sử dụng tùy chỉnh giá trị rỗng

Hầu hết các tác giả đều đảm bảo rằng các điều kiện rỗng trên các trường được tính toán được xử lý một cách khéo léo. QuickSight thường xử lý các giá trị rỗng một cách khéo léo cho bạn. Bạn có thể sử dụng điều đó làm lợi thế của mình và làm cho việc tính toán trở nên đơn giản hơn. Trong ví dụ sau, phép chia cho 0 đã được QuickSight xử lý:

Bạn có thể viết đoạn mã trước như sau:

Nếu bạn cần biểu thị giá trị rỗng trên hình ảnh bằng một chuỗi tĩnh, QuickSight cho phép bạn đặt các giá trị tùy chỉnh khi giá trị rỗng được trả về trong cấu hình hình ảnh. Trong ví dụ trước, bạn chỉ có thể đặt giá trị tùy chỉnh là 0 trong tùy chọn định dạng. Việc loại bỏ cách xử lý như vậy khỏi các trường được tính toán có thể giúp ích đáng kể cho hiệu suất truy vấn.

Bộ lọc trên trang tính so với tham số

Các tham số dường như là một cấu trúc rất đơn giản nhưng chúng có thể nhanh chóng trở nên phức tạp, đặc biệt khi được sử dụng trong các hàm tính toán lồng nhau hoặc khi được sử dụng trong các điều khiển. Tất cả các tham số đều được đánh giá nhanh chóng, buộc tất cả các phần phụ thuộc phải được xử lý theo thời gian thực. Hãy tự hỏi liệu mỗi tham số có thực sự cần thiết hay không. Trong một số trường hợp, bạn có thể thay thế chúng bằng điều khiển thả xuống đơn giản, như trong ví dụ sau cho $market.

Thay vì tạo tham số điều khiển để sử dụng trong trường được tính toán, bạn có thể sử dụng trường với điều khiển bộ lọc thả xuống.

Điều khiển bộ lọc trường văn bản so với thả xuống (hoặc Danh sách)

Khi thiết kế bản phân tích, bạn có thể thêm điều khiển bộ lọc cho hình ảnh bạn muốn lọc. nếu kiểu dữ liệu của trường là chuỗi, bạn có một số lựa chọn cho kiểu bộ lọc điều khiển. Trường văn bản hiển thị hộp văn bản nơi bạn có thể nhập một mục nhập hoặc nhiều mục nhập được đề xuất để có hiệu suất tốt hơn, thay vì Trường thả xuống (hoặc Danh sách) yêu cầu tìm nạp các giá trị để điền vào danh sách mà bạn có thể chọn một hoặc nhiều giá trị .

Điều khiển trên trang tính

Theo mặc định, bảng điều khiển ở đầu trang tổng quan có thể thu gọn nhưng cài đặt này cho phép bạn có trạng thái mở rộng trong khi xuất bản trang tổng quan. Nếu cài đặt này được bật, QuickSight sẽ ưu tiên các cuộc gọi để tìm nạp các giá trị của điều khiển trước khi tải hình ảnh. Nếu bất kỳ điều khiển nào có lượng số cao, điều đó có thể ảnh hưởng đến hiệu suất tải trang tổng quan. Đánh giá nhu cầu này dựa trên thực tế là QuickSight vẫn duy trì các giá trị kiểm soát được sử dụng lần cuối và người đọc có thể không thực sự cần điều chỉnh các điều khiển như bước đầu tiên.

Các loại hình ảnh: Biểu đồ

Trong phần này, chúng tôi đưa ra lời khuyên khi sử dụng Biểu đồ.

Sử dụng 'Ẩn danh mục "khác"' khi thứ nguyên của bạn nhỏ hơn giới hạn giới hạn

Bạn có thể chọn giới hạn số lượng điểm dữ liệu bạn muốn hiển thị trong hình ảnh của mình trước khi chúng được thêm vào khác loại. Danh mục này chứa dữ liệu tổng hợp cho tất cả dữ liệu vượt quá giới hạn giới hạn cho loại hình ảnh bạn đang sử dụng – loại bạn áp đặt hoặc loại dựa trên giới hạn hiển thị. Nếu bạn biết kích thước của mình nhỏ hơn giới hạn giới hạn, hãy sử dụng tùy chọn này. Điều này sẽ cải thiện hiệu suất bảng điều khiển của bạn.

Sản phẩm khác danh mục không hiển thị trên biểu đồ phân tán, bản đồ nhiệt, bản đồ, bảng (báo cáo dạng bảng) hoặc chỉ số hiệu suất chính (KPI). Nó cũng không hiển thị trên biểu đồ đường khi trục x là một ngày.

Các loại trực quan: Bảng và bảng tổng hợp

Trong phần này, chúng tôi đưa ra lời khuyên khi sử dụng bảng và bảng tổng hợp.

Sử dụng tốt trường Giá trị khi hiển thị chế độ xem bảng thô

Nếu bạn muốn xuất tất cả dữ liệu thô vào bảng, bạn có thể sử dụng Nhóm theo lĩnh vực, Các giá trị các trường hoặc sự kết hợp của chúng. Cách tiếp cận hiệu quả nhất là đặt mọi lĩnh vực vào Các giá trị. Khi đang sử dụng Nhóm theo, trước tiên, một truy vấn được chạy ẩn, sau đó là Nhóm theo hàm, do đó tất cả dữ liệu được lấy từ cơ sở dữ liệu, điều này rất tốn kém.

Triển khai một tập hợp tối thiểu các phép tính hàng, cột, số liệu và bảng

Nếu bạn bao gồm quá nhiều kết hợp các hàng, cột, số liệu và phép tính bảng trong một bảng tổng hợp, bạn có nguy cơ khiến người xem choáng ngợp. Bạn cũng có thể gặp phải những hạn chế về tính toán của cơ sở dữ liệu cơ bản. Để giảm mức độ phức tạp và các lỗi tiềm ẩn, bạn có thể thực hiện các hành động sau:

  • Áp dụng các bộ lọc để giảm dữ liệu được đưa vào cho hình ảnh
  • Sử dụng ít trường hơn trong RowCột giếng đồng ruộng
  • Sử dụng càng ít trường càng tốt trong Các giá trị giếng đồng
  • Tạo các bảng tổng hợp bổ sung để mỗi bảng hiển thị ít số liệu hơn
  • Giảm tổng phụ, tổng và định dạng có điều kiện khi có thể

Các cột không được thu gọn luôn là trường hợp đơn giản nhất và có thể sẽ vẫn hoạt động hiệu quả hơn trong một số trường hợp.

Trình tự truy vấn trực quan

Việc thực hiện chuỗi hình ảnh riêng lẻ được thực hiện từ trái sang phải, sau đó từ trên xuống dưới. Hiểu trình tự thực hiện có thể hữu ích: bạn có thể sắp xếp lại hình ảnh trên trang tổng quan của mình mà không làm mất ngữ cảnh. Đặt các hình ảnh trực quan nặng hơn ở phía dưới bảng điều khiển, đồng thời đặt các hình ảnh trực quan và KPI nhẹ nhàng ở gần trên cùng để hiển thị nội dung “trong màn hình đầu tiên” sớm hơn, giúp cải thiện nhận thức về hiệu suất của trang tổng quan cho người đọc của bạn.

Nhúng

Nhóm đề xuất cuối cùng của chúng tôi liên quan đến việc nhúng.

Xóa luồng quản lý người dùng khỏi đường dẫn quan trọng

Hầu hết các luồng quản lý và xác thực người dùng (chẳng hạn như DescribeUserRegisterUser API) có thể chạy không đồng bộ trên ứng dụng máy chủ.

Hãy cân nhắc đăng ký trước người dùng trước khi nhúng thực tế để loại bỏ chi phí hoạt động mỗi lần truy cập trang phân tích.

Xác thực người dùng trên trang web của bạn trước và thu thập bất kỳ Nhận thức về Amazon or Dịch vụ mã thông báo bảo mật AWS (Amazon STS) mã thông báo phiên (nếu được yêu cầu) trước (ví dụ: tại thời điểm người dùng đăng nhập hoặc truy cập trang chủ). Điều này làm giảm chi phí độ trễ thời gian chạy bổ sung khi người dùng truy cập trang phân tích.

Di chuyển khối lượng công việc từ máy khách đến máy chủ web hoặc dịch vụ phụ trợ

Nếu bảng thông tin QuickSight được nhúng trên một trang web trên ứng dụng máy chủ, đồng thời cũng thực hiện các hoạt động khác, hãy chú ý đến chuỗi lệnh gọi API trên máy chủ. Tải bảng thông tin QuickSight có thể bị kiểm soát bởi các lệnh gọi API nặng khác trên ứng dụng máy chủ. Di chuyển logic đến máy chủ web hoặc dịch vụ phụ trợ càng nhiều càng tốt để hạn chế tranh chấp trên trình duyệt.

Không phá bỏ iFrame nhúng khi người dùng điều hướng khỏi phần phân tích

Khi người dùng tạm thời di chuyển đến một trang không phân tích trong ứng dụng web của bạn (đặc biệt là trong các ứng dụng một trang), thay vì xóa iframe nhúng khỏi DOM, bạn có thể ẩn nó khỏi người dùng trong khi vẫn giữ iFrame trong các thành phần DOM của trang. Điều này cho phép bạn tiếp tục phiên tương tự khi người dùng điều hướng quay lại phần phân tích trong ứng dụng của bạn và họ không cần đợi tải lại.

Sử dụng điều hướngToDashboard() và điều hướngToSheet() bất cứ khi nào có thể

Nếu bạn có nhiều bảng thông tin trên ứng dụng máy chủ không cần tải đồng thời, bạn có thể tối ưu hóa luồng xác thực bằng cách sử dụng hai API mà chúng tôi cung cấp, navigateToDashboard() or navigateToSheet(), trong SDK JavaScript của chúng tôi. Các API này sử dụng lại cùng một iFrame cho mỗi lần tải trong khi sử dụng lại mã thông báo xác thực.

Kỹ thuật này đã được chứng minh là rất hiệu quả đối với nhiều người dùng nhúng của chúng tôi.

Để biết thêm thông tin về các API này, hãy tham khảo SDK nhúng QuickSight của Amazon.

Kết luận

Trong bài đăng này, chúng tôi đã chia sẻ một số mẹo và thủ thuật để điều chỉnh hiệu suất của bảng thông tin QuickSight. Vào năm 2021, chúng tôi đã tăng gấp đôi giới hạn dữ liệu SPICE lên 500 triệu hàng dữ liệu cho mỗi tập dữ liệu. Ngoài ra, tính năng làm mới dữ liệu gia tăng có sẵn cho các nguồn dữ liệu dựa trên SQL như Amazon RedShift, amazon Athena, Amazon RDS, Amazon cực quang, PostgreSQL, MySQL, Oracle, SQL Server, MariaDB, Presto, Teradata hoặc Snowflake tối đa 15 phút một lần, giúp giảm 75% thời gian giữa các lần cập nhật dữ liệu. Vào năm 2022, chúng tôi tiếp tục thay mặt bạn đổi mới để giúp việc tải trang tổng quan QuickSight đạt hiệu suất cao hơn nữa.

Chúng tôi mong nhận được phản hồi của bạn về cách những mẹo và thủ thuật này đã giúp trang tổng quan của bạn tải nhanh hơn như thế nào.


Về các tác giả

Shekhar Kopuri là Giám đốc phát triển phần mềm cấp cao của Amazon QuickSight. Ông lãnh đạo nhóm kỹ thuật nền tảng phía trước, tập trung vào các khía cạnh khác nhau của trải nghiệm giao diện người dùng, bao gồm cả hiệu suất trang web. Trước khi gia nhập AWS, Shekhar đã lãnh đạo việc phát triển nhiều ứng dụng OSS mạng cấp phép và kích hoạt cho một nhà cung cấp dịch vụ viễn thông lớn trên toàn cầu.

Blake Carroll là Kỹ sư giao diện người dùng cấp cao của Amazon QuickSight. Anh ấy làm việc với nhóm kỹ thuật nền tảng giao diện người dùng, tập trung vào hiệu suất trang web và trước đây là trưởng nhóm giao diện người dùng cho chức năng tạo chủ đề và báo cáo ban đầu trong QuickSight. Trước khi gia nhập Amazon, Blake là người đồng sáng lập trong lĩnh vực đại lý tương tác kỹ thuật số, làm việc với các thương hiệu quốc gia để tạo ra trải nghiệm web sáng tạo.

Vijay Chaudhari là Kỹ sư phát triển phần mềm cao cấp cho Amazon QuickSight, dịch vụ BI được quản lý hoàn toàn trên nền tảng đám mây của AWS. Vijay bắt đầu sự nghiệp của mình tại IBM, viết phần mềm cho nhóm Quản lý Thông tin. Tại Amazon, anh đã xây dựng các ứng dụng phụ trợ cho các hệ thống bán lẻ và các hệ thống phân tích, báo cáo và tính toán trước dữ liệu theo thời gian thực ở quy mô Amazon. Anh ấy đam mê tìm hiểu và giải quyết các vấn đề mới của khách hàng, đồng thời giúp họ áp dụng các công nghệ gốc trên nền tảng đám mây.

Wakana Vilquin-Sakashita là Kiến trúc sư giải pháp chuyên gia cho Amazon QuickSight. Cô ấy làm việc chặt chẽ với khách hàng để giúp hiểu rõ dữ liệu thông qua trực quan hóa. Trước đây Wakana làm việc cho S&P Global để hỗ trợ khách hàng truy cập dữ liệu, thông tin chi tiết và nghiên cứu liên quan đến hoạt động kinh doanh của họ.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img