Логотип Зефирнет

Советы и рекомендации по созданию высокопроизводительных информационных панелей в Amazon QuickSight

Дата:

Amazon QuickSight — это облачная служба бизнес-аналитики (BI). QuickSight автоматически оптимизирует запросы и выполнение, чтобы ускорить загрузку панелей мониторинга, но вы можете ускорить загрузку панели мониторинга и обеспечить максимально возможную производительность, следуя советам и рекомендациям, изложенным в этом посте.

Поток данных и выполнение загрузок панели инструментов QuickSight

Поток данных в QuickSight начинается от клиентского браузера к веб-серверу, а затем направляется к механизму QuickSight, который в некоторых случаях выполняет запросы к SPICE — сверхбыстрому, параллельному механизму вычислений в памяти — или, в других случаях, напрямую к базу данных. SPICE использует комбинацию колоночного хранилища, технологий in-memory, реализованных благодаря последним аппаратным инновациям, и генерации машинного кода для выполнения интерактивных запросов к большим наборам данных и получения быстрых ответов.

Веб-сервер, механизм QuickSight и SPICE автоматически масштабируются QuickSight. Это полностью управляемая услуга — вам не нужно беспокоиться о подготовке или управлении инфраструктурой, если вы хотите увеличить количество пользователей SPICE с десятков до тысяч пользователей. Для информационных панелей, созданных на основе источников данных прямого запроса, может потребоваться подготовка или управление инфраструктурой на стороне клиента.

Следующая диаграмма иллюстрирует поток данных:

Давайте посмотрим на общий процесс выполнения, чтобы понять последствия:

  • Запрос запускается в браузере, что приводит к загрузке нескольких статических ресурсов, таких как JavaScript, шрифты и изображения.
  • Все метаданные (например, визуальные конфигурации и макет) извлекаются для панели мониторинга.
  • Выполняются запросы, которые могут включать настройку безопасности на уровне строк и столбцов или получение значений динамического элемента управления, параметров по умолчанию и всех значений раскрывающихся списков в элементах управления фильтрами.
  • В соответствии с вашим ограничением параллелизма запросы для визуализации ваших визуальных элементов выполняются в определенной последовательности (описанной далее в этом посте). Если вы используете SPICE, параллелизм запросов намного выше. Разбивка на страницы в визуальных элементах может привести к дополнительным запросам.

Фактическое выполнение является более сложным и зависит от того, как настроены информационные панели и других факторов, таких как типы источников данных, Direct Query или SPICE, кардинальность полей и частота обновления данных и т. д. Многие операции выполняются параллельно, и все они визуализируются. связанные запросы выполняются через WebSocket, как показано на следующем снимке экрана. Многие шаги выполняются в браузере конечного пользователя, поэтому существуют ограничения, такие как количество последовательностей и рабочих нагрузок, которые можно передать в браузер. Производительность также может немного отличаться в зависимости от типа браузера, поскольку каждый браузер по-разному обрабатывает конкуренцию.

Теперь давайте рассмотрим множество отличных советов, которые могут улучшить производительность вашей приборной панели!

SPICE

Использование возможностей SPICE, когда это возможно, — отличный способ повысить общую производительность, поскольку SPICE управляет масштабированием, а также кэширует результаты за вас. Мы рекомендуем использовать SPICE, когда это возможно.

Метаданные

Как видно из предыдущей последовательности выполнения, QuickSight заранее извлекает метаданные для заданной панели мониторинга во время начальной загрузки. Мы рекомендуем следующие действия в отношении метаданных.

Удалить неиспользуемые наборы данных из анализа

Наборы данных, которые, возможно, использовались в прошлом, но не имеют визуальных элементов, связанных с информационной панелью, больше излишне добавляются к полезной нагрузке метаданных. Вероятно, это повлияет на производительность приборной панели.

Убедитесь, что безопасность на уровне строк и столбцов эффективна.

Безопасность на уровне строк, безопасность на уровне столбцов и динамические параметры по умолчанию требуют выполнения поиска до выдачи визуальных запросов. По возможности старайтесь ограничить количество и сложность наборов данных правил, чтобы поиск выполнялся быстрее. По возможности используйте SPICE для набора данных правил. Если вы должны использовать прямой запрос, убедитесь, что запросы оптимальны и что источник данных, к которому вы обращаетесь, заранее соответствующим образом масштабируется.

Для встроенных информационных панелей отличным способом оптимизации поиска безопасности на уровне строк является использование теги сеанса для безопасности на уровне строк в паре с анонимной личностью. Точно так же динамические параметры по умолчанию, если они используются, могут быть предварительно оценены в ведущем приложении и переданы с помощью SDK для встраивания.

Расчетные функции

В этом разделе мы предлагаем советы по вычисляемым функциям.

Перенести расчеты на стадию подготовки данных

QuickSight позволяет добавлять вычисляемые поля в процесс подготовки или анализа данных. Мы настоятельно рекомендуем вам перенести как можно больше расчетов на стадию подготовки данных, что позволит QuickSight материализовать расчеты, не содержащие агрегирования или параметров, в наборе данных SPICE. Материализация вычисляемых полей в наборе данных помогает сократить время выполнения вычислений, что повышает производительность запросов. Даже если вы используете агрегацию или параметры в своих вычислениях, все равно можно перенести части вычислений в подготовку данных. Например, если у вас есть следующая формула:

Вы можете удалить sum() и просто держи ifelse(), что позволит QuickSight материализовать (предварительно вычислить) его и сохранить как реальное поле в вашем наборе данных SPICE. Затем вы можете либо добавить еще одно вычисление, которое суммирует его, либо просто использовать агрегирование суммы после того, как добавите его к своим визуальным элементам.

Как правило, материализующие расчеты, использующие сложные ifelse логика или манипуляции со строками/поиск приведут к наибольшему улучшению производительности приборной панели.

Реализовать упрощенный синтаксис ifelse

Ассоциация ifelse функция поддерживает упрощенные операторы. Например, вы можете начать со следующего утверждения:

Следующий упрощенный оператор более эффективен:

Используйте функцию toString() разумно

Ассоциация toString() имеет гораздо более низкую производительность и намного тяжелее для ядра базы данных, чем простые целочисленные или числовые арифметические вычисления. Поэтому вы должны использовать его экономно.

Знайте, когда система возвращает пустые значения, и используйте настройку нулевого значения.

Большинство авторов следят за тем, чтобы нулевые условия в вычисляемых полях обрабатывались корректно. QuickSight часто корректно обрабатывает пустые значения. Вы можете использовать это в своих интересах и упростить расчеты. В следующем примере деление на 0 уже выполняется QuickSight:

Вы можете написать предыдущий код следующим образом:

Если вам нужно представить пустые значения в визуальных элементах с помощью статической строки, QuickSight позволяет вам устанавливать пользовательские значения, когда пустое значение возвращается в визуальной конфигурации. В предыдущем примере вы могли просто установить пользовательское значение 0 в параметре форматирования. Удаление такой обработки из вычисляемых полей может значительно повысить производительность запросов.

Фильтры на листе и параметры

Параметры кажутся очень простой конструкцией, но они могут быстро усложниться, особенно при использовании во вложенных функциях вычисления или при использовании в элементах управления. Все параметры оцениваются на лету, поэтому все зависимости обрабатываются в режиме реального времени. Спросите себя, действительно ли необходим каждый параметр. В некоторых случаях вы можете заменить их простым выпадающим меню, как показано в следующем примере для $market.

Вместо создания параметра управления для использования в вычисляемом поле можно использовать поле с раскрывающимся элементом управления фильтром.

Текстовое поле и элементы управления фильтром раскрывающегося списка (или списка)

При разработке анализа вы можете добавить элемент управления фильтром для визуальных элементов, которые вы хотите отфильтровать. если тип данных поля — строка, у вас есть несколько вариантов выбора типа фильтра управления. Текстовое поле, в котором отображается текстовое поле, в котором вы можете ввести одну запись или несколько записей, предлагается для повышения производительности, а не раскрывающийся список (или список), который требует извлечения значений для заполнения списка, в котором вы можете выбрать одно или несколько значений. .

Элементы управления на листе

Панель управления в верхней части сводной панели по умолчанию сворачивается, но этот параметр позволяет иметь развернутое состояние при публикации сводной панели. Если этот параметр включен, QuickSight отдает приоритет вызовам, чтобы получить значения элементов управления до загрузки визуального элемента. Если какой-либо из элементов управления имеет большое количество элементов, это может повлиять на производительность загрузки панели мониторинга. Оцените эту необходимость с учетом того факта, что QuickSight сохраняет последние использовавшиеся значения элементов управления, и читателю может не потребоваться настраивать элементы управления в качестве первого шага.

Визуальные типы: диаграммы

В этом разделе мы даем советы по использованию диаграмм.

Используйте «Скрыть категорию «другое», если размер параметра меньше предельного значения.

Вы можете ограничить количество точек данных, которые вы хотите отобразить в своем визуальном элементе, прежде чем они будут добавлены в другие категория. Эта категория содержит агрегированные данные для всех данных за пределом отсечения для используемого вами визуального типа — либо того, который вы навязываете, либо того, который основан на ограничениях отображения. Если вы знаете, что размер вашего размера меньше предельного значения, используйте этот параметр. Это повысит производительность вашей приборной панели.

Ассоциация другие категория не отображается на точечных диаграммах, тепловых картах, картах, таблицах (табличных отчетах) или ключевых показателях эффективности (KPI). Он также не отображается на линейных диаграммах, когда ось X является датой.

Типы визуальных элементов: таблицы и сводные таблицы.

В этом разделе мы даем советы по использованию таблиц и сводных таблиц.

Хорошо используйте поле «Значения» при отображении необработанного табличного представления.

Если вы хотите вывести все необработанные данные в таблицу, вы можете использовать Группа по поля, Наши ценности поля или их смесь. Самый эффективный подход — установить каждое поле в Наши ценности, Когда используешь Группа по, запрос сначала выполняется под капотом, а затем функция Group by, поэтому все данные извлекаются из базы данных, что дорого.

Разверните минимальный набор строк, столбцов, метрик и табличных вычислений.

Если вы включите слишком много комбинаций строк, столбцов, метрик и табличных вычислений в одну сводную таблицу, вы рискуете перегрузить зрителя. Вы также можете столкнуться с вычислительными ограничениями базовой базы данных. Чтобы снизить уровень сложности и возможные ошибки, вы можете предпринять следующие действия:

  • Примените фильтры, чтобы уменьшить объем данных, включенных в визуальный элемент.
  • Используйте меньше полей в Строка и Column полевые колодцы
  • Используйте как можно меньше полей в Наши ценности полевой колодец
  • Создайте дополнительные сводные таблицы, чтобы в каждой из них отображалось меньше показателей.
  • По возможности сокращайте промежуточные итоги, итоги и условное форматирование.

Несвернутые столбцы всегда являются самым простым случаем и, вероятно, останутся более производительными за исключением нескольких случаев.

Последовательность визуальных запросов

Выполнение отдельной визуальной последовательности слева направо, затем сверху вниз. Понимание последовательности выполнения может быть полезным: вы можете переставлять визуальные элементы на панели инструментов, не теряя контекста. Разместите более тяжелые визуальные элементы ниже на информационной панели, а облегченные визуальные эффекты KPI и аналитических материалов — вверху, чтобы быстрее отображать содержимое «вверху страницы», что улучшает восприятие производительности информационной панели для ваших читателей.

Встраивание

Наш последний набор рекомендаций касается встраивания.

Удалите потоки управления пользователями из критического пути

В большинстве случаев потоки управления пользователями и аутентификации (например, DescribeUser и RegisterUser API) могут работать асинхронно в хост-приложении.

Рассмотрите возможность регистрации пользователя заранее до фактического встраивания, чтобы исключить накладные расходы при каждом посещении страницы аналитики.

Заранее аутентифицируйте пользователя на вашем веб-сайте и получайте любые Амазон Когнито or Сервис токенов безопасности AWS (Amazon STS) токены сеанса (при необходимости) заранее (например, во время входа пользователя в систему или при посещении домашней страницы). Это уменьшает дополнительную задержку во время выполнения, когда пользователь посещает страницу аналитики.

Перенос рабочих нагрузок с клиентов на веб-сервер или серверные службы

Если на веб-страницу хост-приложения встроена панель инструментов QuickSight, которая также выполняет другие действия, внимательно следите за последовательностью вызовов API на хосте. Загрузка информационной панели QuickSight может ограничиваться другими активными вызовами API в хост-приложении. Максимально переместите логику на веб-сервер или серверные службы, чтобы ограничить конкуренцию в браузере.

Не удаляйте встроенный iFrame, когда пользователь уходит из раздела аналитики.

Когда пользователь временно переходит на неаналитическую страницу вашего веб-приложения (особенно в одностраничных приложениях), вместо удаления встроенного iframe из DOM вы можете скрыть его от пользователя, сохранив iFrame в элементах DOM страницы. Это позволяет вам возобновлять тот же сеанс, когда пользователь возвращается в раздел аналитики вашего приложения, и им не нужно ждать перезагрузки.

По возможности используйте navigationToDashboard() и navigationToSheet().

Если в вашем хост-приложении есть несколько панелей мониторинга, которые не нужно загружать одновременно, вы можете оптимизировать процесс аутентификации, используя два предоставляемых нами API: navigateToDashboard() or navigateToSheet(), в нашем JavaScript SDK. Эти API повторно используют один и тот же iFrame для каждой загрузки, повторно используя токен проверки подлинности.

Этот метод оказался очень эффективным для многих наших пользователей, занимающихся встраиванием.

Дополнительные сведения об этих API см. SDK для встраивания Amazon QuickSight.

Заключение

В этом посте мы поделились некоторыми советами и рекомендациями по настройке производительности ваших информационных панелей QuickSight. В 2021 году мы удвоили наши лимиты данных SPICE до 500 миллионов строк данных на набор данных. Кроме того, добавочное обновление данных доступно для источников данных на основе SQL, таких как Амазонка Redshift, Амазонка Афина, Амазон РДС, Амазон Аврора, PostgreSQL, MySQL, Oracle, SQL Server, MariaDB, Presto, Teradata или Snowflake каждые 15 минут, что сокращает время между обновлениями данных на 75%. В 2022 году мы продолжаем внедрять инновации от вашего имени, чтобы сделать загрузку панели инструментов QuickSight еще более эффективной.

Мы с нетерпением ждем ваших отзывов о том, как эти советы и рекомендации помогли вашим информационным панелям загружаться быстрее.


Об авторах

Шекхар Копури является старшим менеджером по разработке программного обеспечения для Amazon QuickSight. Он возглавляет команду разработчиков фронтенд-платформы, которая занимается различными аспектами интерфейса, включая производительность веб-сайта. До прихода в AWS Шекхар руководил разработкой нескольких сетевых приложений OSS для инициализации и активации для крупного глобального поставщика телекоммуникационных услуг.

Блейк Кэрролл является старшим инженером по внешнему интерфейсу в Amazon QuickSight. Он работает с группой разработки интерфейсной платформы, уделяя особое внимание производительности веб-сайта, и ранее был руководителем внешнего интерфейса для начальных отчетов и функций тем в QuickSight. До прихода в Amazon Блейк был соучредителем цифрового интерактивного агентства, работающего с национальными брендами над созданием креативного веб-сайта.

Виджай Чаудхари — старший инженер по разработке программного обеспечения в Amazon QuickSight, полностью управляемом облачном сервисе бизнес-аналитики AWS. Виджай начал свою карьеру в IBM, написав программное обеспечение для группы управления информацией. В Amazon он создавал серверные приложения для систем розничной торговли, а также системы предварительного расчета данных, отчетности и аналитики в масштабе Amazon, работающие практически в реальном времени. Он увлечен изучением и решением новых проблем клиентов, а также помогает им внедрять облачные технологии.

Вакана Вилкин-Сакашита является специалистом по архитектуре решений для Amazon QuickSight. Она тесно сотрудничает с клиентами, помогая разобраться в данных с помощью визуализации. Ранее Вакана работал в S&P Global, помогая клиентам получать доступ к данным, идеям и исследованиям, имеющим отношение к их бизнесу.

Spot_img

Последняя разведка

Spot_img