Amazon QuickSight — это масштабируемое, бессерверное решение бизнес-аналитики (BI) на основе машинного обучения (ML), которое позволяет легко подключаться к вашим данным, создавать интерактивные информационные панели, получать доступ к информации с поддержкой ML и обмениваться визуальными данными и информационными панелями с десятками тысяч внутренних и внешних пользователей либо в самом QuickSight, либо в любом приложении.
Обратная запись — это возможность обновлять витрину данных, хранилище данных или любую другую серверную часть базы данных из панелей мониторинга BI и анализировать обновленные данные практически в реальном времени на самой панели мониторинга. В этом посте мы покажем, как выполнять безопасную обратную запись базы данных с помощью QuickSight.
Обзор вариантов использования
Чтобы продемонстрировать, как включить возможность обратной записи с помощью QuickSight, давайте рассмотрим вымышленную компанию AnyCompany Inc. AnyCompany — это фирма, предоставляющая профессиональные услуги, которая специализируется на предоставлении кадровых решений своим клиентам. AnyCompany определила, что запуск рабочих нагрузок в облаке для поддержки растущих глобальных бизнес-потребностей является конкурентным преимуществом, и использует облако для размещения всех своих рабочих нагрузок. AnyCompany решила улучшить способ, которым ее филиалы предоставляют котировки своим клиентам. В настоящее время филиалы генерируют расценки клиентов вручную, и в качестве первого шага на этом инновационном пути AnyCompany стремится разработать корпоративное решение для генерации расценок клиентов с возможностью динамического применения данных о местных ценах во время формирования расценок.
В настоящее время AnyCompany использует Амазонка Redshift в качестве платформы корпоративного хранилища данных и QuickSight в качестве решения для бизнес-аналитики.
Создание нового решения связано со следующими проблемами:
- AnyCompany требуется решение, которое легко создавать и поддерживать, и они не хотят вкладывать средства в создание отдельного пользовательского интерфейса.
- AnyCompany хочет расширить возможности своей существующей информационной панели QuickSight BI, чтобы также включить создание и принятие предложений. Это упростит развертывание функций, поскольку их сотрудники уже используют информационные панели QuickSight и пользуются простым в использовании интерфейсом, предоставляемым QuickSight.
- AnyCompany хочет сохранить историю согласования котировок, которая включает созданные, проверенные и принятые котировки.
- AnyCompany хочет создать новую панель инструментов с данными истории котировок для анализа и бизнес-аналитики.
В этом посте описываются шаги, необходимые для включения функции обратной записи в Amazon Redshift из QuickSight. Обратите внимание, что традиционные инструменты бизнес-аналитики доступны только для чтения и практически не имеют возможности обновлять исходные данные.
Обзор решения
В этом решении используются следующие сервисы AWS:
- Шлюз API Amazon – Размещает и защищает API REST с обратной записью, который будет вызываться QuickSight.
- AWS Lambda – Запускает вычислительную функцию, необходимую для генерации хэша, и вторую функцию для безопасного выполнения обратной записи.
- Amazon QuickSight – Предлагает информационные панели BI и возможности генерации котировок
- Амазонка Redshift - Хранит котировки, цены и другие соответствующие наборы данных
- Менеджер секретов AWS – Хранит и управляет ключами для подписи хэшей (дайджеста сообщений)
Хотя это решение использует Amazon Redshift в качестве хранилища данных, аналогичный подход можно реализовать с любой базой данных, поддерживающей создание определяемых пользователем функций (UDF), которые могут вызывать Lambda.
На следующем рисунке показан рабочий процесс для выполнения обратной записи из QuickSight.
Первым шагом решения является создание хэша или дайджеста сообщения набора атрибутов в Amazon Redshift путем вызова функции Lambda. Этот шаг предотвращает подделку запроса. Для создания хэша Amazon Redshift вызывает скалярная лямбда-определяемая функция. Используемый здесь механизм хеширования является популярным БЛЕЙК2 функция (доступна в библиотеке Python хэшлиб). Для дополнительной защиты хэша используется хеширование с ключом, которое является более быстрой и простой альтернативой код аутентификации сообщения на основе хэша (ХМАК). Этот ключ создается и хранится диспетчером секретов и должен быть доступен только разрешенным приложениям. После создания безопасного хэша он возвращается в Amazon Redshift и объединяется в представлении Amazon Redshift.
Запись сгенерированной котировки обратно в Amazon Redshift выполняется функцией обратной записи Lambda, а конечная точка REST API шлюза API создается для защиты и передачи запросов функции обратной записи. Функция обратной записи выполняет следующие действия:
- Сгенерируйте хэш на основе входных параметров API, полученных от QuickSight.
- Подпишите хэш, применив ключ из Secrets Manager.
- Сравните сгенерированный хэш с хешем, полученным из входных параметров, с помощью метода compare_digest, доступного в HMAC модуль.
- После успешной проверки запишите запись в таблицу отправки котировок в Amazon Redshift.
В следующем разделе представлены подробные шаги с примерами полезной нагрузки и фрагментами кода.
Сгенерировать хэш
Хэш создается с помощью UDF Lambda в Amazon Redshift. Кроме того, ключ Secrets Manager используется для подписи хэша. Чтобы создать хэш, выполните следующие действия:
- Создайте ключ диспетчера секретов из Интерфейс командной строки AWS (интерфейс командной строки AWS):
- Создайте UDF Lambda для генерации хэша для шифрования:
- Определите пользовательскую функцию Amazon Redshift для вызова функции Lambda для создания хэша:
Ассоциация Управление идентификацией и доступом AWS (IAM) на предыдущем шаге должна быть прикреплена следующая политика, чтобы иметь возможность вызывать функцию Lambda:
- Получите ключ от Secrets Manager.
Этот ключ используется функцией Lambda для дополнительной защиты хэша. Это указано в get_secret функция на шаге 2.
Настройка наборов данных Amazon Redshift в QuickSight
На панели формирования котировок используется следующее представление Amazon Redshift.
Создайте представление Amazon Redshift, в котором используются все предыдущие столбцы вместе со столбцом хеша:
Записи будут выглядеть так, как показано на следующем снимке экрана.
Предыдущее представление будет использоваться в качестве набора данных QuickSight для создания котировок. Анализ QuickSight будет создан с использованием набора данных. Для анализа практически в реальном времени можно использовать режим прямого запроса QuickSight.
Создание ресурсов шлюза API
Операция обратной записи инициируется QuickSight, вызывающим ресурс шлюза API, который вызывает функцию обратной записи Lambda. В качестве предварительного условия для создания вычисляемого поля в QuickSight для вызова API обратной записи необходимо сначала создать эти ресурсы.
Шлюз API защищает и вызывает функцию Lambda с обратной записью с параметрами, созданными как параметры строки запроса URL с шаблонами сопоставления. Параметров сопоставления можно избежать, используя интеграцию с прокси-сервером Lambda.
Создайте ресурс REST API с типом метода GET, который использует функции Lambda (созданные на следующем шаге) в качестве типа интеграции. Инструкции см. Создание REST API в Amazon API Gateway и Настройте интеграцию Lambda в API Gateway.
На следующем снимке экрана показаны сведения о создании параметра строки запроса для каждого параметра, передаваемого в шлюз API.
На следующем снимке экрана показаны сведения о создании параметра шаблона сопоставления для каждого параметра, передаваемого в шлюз API.
Создайте лямбда-функцию
Создайте новую функцию Lambda для вызова шлюзом API. Функция Lambda выполняет следующие шаги:
- Получите параметры от QuickSight через шлюз API и хэшируйте объединенные параметры.
В следующем примере кода параметры извлекаются из вызова шлюза API с помощью объекта события функции Lambda:
Функция выполняет логику хеширования, как показано на создать хэш на шаг раньше, используя объединенные параметры, переданные QuickSight.
- Сравните хешированный вывод с параметром hash.
Если они не совпадают, обратной записи не произойдет.
- Если хэши совпадают, выполните обратную запись. Проверить наличие записи в таблице генерации котировок, сформировав запрос из таблицы с параметрами, переданными из QuickSight:
- Выполните следующие действия на основе результатов запроса:
- Если для предыдущей комбинации не существует записи, сгенерируйте и запустите запрос на вставку, используя все параметры со статусом «сгенерировано».
- Если для предыдущей комбинации существует запись, сгенерируйте и запустите запрос на вставку со статусом "на рассмотрении". Идентификатор quote_Id для существующей комбинации будет использоваться повторно.
Создайте визуализацию QuickSight
Этот шаг включает в себя создание визуальной таблицы, которая использует вычисляемое поле для передачи параметров в шлюз API и вызывает предыдущую функцию Lambda.
- Добавьте вычисляемое поле QuickSight с именем Generate Quote для хранения URL-адреса, размещенного на шлюзе API, который будет запускаться для обратной записи истории котировок в Amazon Redshift:
- Создайте визуализацию таблицы QuickSight.
- Добавьте обязательные поля, такие как «Клиент», «Навык» и «Стоимость».
- Добавьте вычисляемое поле «Создать предложение» и оформите его как гиперссылку.
При выборе этой ссылки запись будет записана в Amazon Redshift. Это необходимо для возврата того же хеш-значения, когда лямбда-функция выполняет хеширование параметров.
На следующем снимке экрана показан образец таблицы.
Запись в базу данных Amazon Redshift
Ключ Secrets Manager извлекается и используется функцией Lambda для создания хэша для сравнения. Обратная запись будет выполнена только в том случае, если хеш совпадает с хешем, переданным в параметре.
В следующей таблице Amazon Redshift будет сохранена история котировок, заполненная функцией Lambda. Записи, выделенные зеленым цветом, представляют самые последние записи для цитаты.
Соображения и следующие шаги
Использование безопасных хэшей предотвращает подделку параметров полезных данных, которые отображаются в окне браузера при вызове URL-адреса обратной записи. Чтобы дополнительно защитить URL-адрес обратной записи, вы можете использовать следующие методы:
- Разверните REST API в частном облаке VPC, доступном только для пользователей QuickSight.
- Чтобы предотвратить повторные атаки, вместе с функцией хеширования можно создать временную метку и передать ее в качестве дополнительного параметра в URL-адресе обратной записи. Затем внутреннюю функцию Lambda можно изменить, чтобы разрешить обратную запись только в течение определенного порогового значения, основанного на времени.
- Следите за шлюзом API контроль доступа и безопасность лучшие практики.
- смягчать потенциальный отказ в обслуживании для общедоступных API.
Вы можете дополнительно улучшить это решение, чтобы отображать веб-форму при открытии URL-адреса обратной записи. Это может быть реализовано путем динамического создания HTML-формы в бэкэнд-функции Lambda для поддержки ввода дополнительной информации. Если ваша рабочая нагрузка требует большого количества операций обратной записи, требующих более высокой пропускной способности или параллелизма, специально созданное хранилище данных, такое как Версия, совместимая с Amazon Aurora PostgreSQL может быть лучшим выбором. Для получения дополнительной информации см. Вызов функции AWS Lambda из кластера БД Aurora PostgreSQL. Затем эти обновления можно синхронизировать с таблицами Amazon Redshift с помощью федеративные запросы.
Заключение
В этом посте показано, как использовать QuickSight вместе с Lambda, API Gateway, Secrets Manager и Amazon Redshift для сбора вводимых пользователем данных и безопасного обновления хранилища данных Amazon Redshift, не выходя из среды QuickSight BI. Это решение устраняет необходимость создания внешнего приложения или пользовательского интерфейса для операций обновления или вставки базы данных, а также снижает связанные с этим накладные расходы на разработку и обслуживание. Вызов шлюза API также можно защитить с помощью ключа или токена, чтобы шлюз API принимал только вызовы, исходящие из QuickSight. Об этом будет в следующих постах.
Об авторах
Шрикант Бахети является специализированным главным архитектором решений по всему миру для Amazon QuickSight. Он начал свою карьеру в качестве консультанта и работал в нескольких частных и государственных организациях. Позже он работал в PerkinElmer Health and Sciences & eResearch Technology Inc, где отвечал за проектирование и разработку веб-приложений с высоким трафиком, хорошо масштабируемых и удобных в обслуживании конвейеров данных для платформ отчетности с использованием сервисов AWS и бессерверных вычислений.
Раджи Шивасубраманиам является старшим архитектором решений в AWS, специализирующейся на аналитике. Раджи специализируется на разработке комплексных решений для управления корпоративными данными, бизнес-аналитики и аналитики для компаний из списка Fortune 500 и Fortune 100 по всему миру. Она имеет обширный опыт работы с интегрированными медицинскими данными и аналитикой с широким спектром наборов медицинских данных, включая управляемый рынок, таргетинг на врачей и аналитику пациентов.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- ПлатонАйСтрим. Анализ данных Web3. Расширение знаний. Доступ здесь.
- Чеканка будущего с Эдриенн Эшли. Доступ здесь.
- Покупайте и продавайте акции компаний PREIPO® с помощью PREIPO®. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/big-data/perform-secure-database-write-backs-with-amazon-quicksight/
- :имеет
- :является
- :куда
- $UP
- 100
- 11
- 13
- 22
- 500
- 7
- 8
- 9
- a
- способность
- в состоянии
- принятие
- принятый
- доступ
- доступной
- через
- Действие
- действия
- дополнительный
- Дополнительная информация
- Дополнительно
- плюс
- После
- Все
- позволять
- вдоль
- рядом
- уже
- причислены
- альтернатива
- Amazon
- Amazon QuickSight
- an
- анализ
- аналитика
- анализировать
- и
- любой
- API
- API
- Применение
- Приложения
- Применить
- Применение
- подхода
- МЫ
- аргумент
- Аргументы
- AS
- At
- нападки
- Атрибуты
- Aurora
- Аутентификация
- доступен
- избегать
- AWS
- AWS Lambda
- назад
- Backend
- основанный
- BE
- , так как:
- ЛУЧШЕЕ
- лучшие практики
- Лучшая
- ветви
- браузер
- строить
- Строительство
- бизнес
- бизнес-аналитика
- by
- рассчитанный
- призывают
- Объявления
- CAN
- возможности
- захватить
- Карьера
- случаев
- определенный
- проблемы
- проверка
- выбор
- клиент
- облако
- код
- Column
- Колонки
- сочетание
- сочетании
- выходит
- Компании
- Компания
- сравнение
- конкурентоспособный
- полный
- Вычисление
- вычисление
- Свяжитесь
- Рассматривать
- консультант
- контекст
- Цена
- может
- покрытый
- Создайте
- создали
- Создающий
- В настоящее время
- клиент
- Клиенты
- приборная панель
- данным
- управление данными
- информационное хранилище
- База данных
- Наборы данных
- решенный
- По умолчанию
- демонстрировать
- Отказ в обслуживании
- проектирование
- подробный
- подробнее
- определены
- развивать
- развивающийся
- Развитие
- Digest
- направлять
- Dont
- динамично
- e
- каждый
- Ранее
- легко
- Простой в использовании
- эффект
- или
- ликвидирует
- встроенный
- сотрудников
- включить
- шифрование
- впритык
- Конечная точка
- повышать
- пользоваться
- обеспечивать
- Предприятие
- Окружающая среда
- Эфир (ETH)
- События
- пример
- Кроме
- исключение
- существующий
- существует
- опыт
- продлить
- и, что лучший способ
- ложный
- быстрее
- Особенность
- Получено
- вымышленный
- поле
- Поля
- фигура
- Фирма
- Во-первых,
- фокусировка
- после
- Что касается
- форма
- Fortune
- от
- функция
- функциональность
- Функции
- далее
- шлюз
- порождать
- генерируется
- порождающий
- поколение
- получить
- Глобальный
- глобальный бизнес
- земной шар
- идет
- Правительство
- Зелёная
- Рост
- обрабатывать
- происходить
- хэш
- хешированное
- Хеширования
- Есть
- he
- Медицина
- здравоохранение
- здесь
- High
- высший
- очень
- его
- история
- держать
- кашель
- состоялся
- хостов
- Как
- How To
- HTML
- HTTP
- HTTPS
- IAM
- Личность
- if
- в XNUMX году
- Импортировать
- in
- углубленный
- Инк
- включает в себя
- В том числе
- возложенный
- указанный
- информация
- Инновации
- вход
- размышления
- инструкции
- интегрированный
- интеграции.
- интеграций
- Интеллекта
- интерактивный
- Интерфейс
- в нашей внутренней среде,
- в
- Грин- карта инвестору
- вызывается
- Запускает
- IT
- ЕГО
- саму трезвость
- путешествие
- JPG
- JSON
- Основные
- ключи
- новее
- изучение
- уход
- Библиотека
- такое как
- линия
- LINK
- мало
- локальным
- логика
- посмотреть
- выглядит как
- искать
- машина
- обучение с помощью машины
- поддерживать
- Ремонтопригодный
- техническое обслуживание
- ДЕЛАЕТ
- управляемого
- управление
- менеджер
- управляет
- вручную
- отображение
- рынок
- Совпадение
- механизм
- сообщение
- метод
- может быть
- ML
- режим
- модифицировало
- модуль
- БОЛЕЕ
- самых
- с разными
- должен
- Названный
- Необходимость
- потребности
- Новые
- новое решение
- следующий
- нет
- номер
- объект
- of
- Предложения
- on
- только
- открытый
- операция
- Операционный отдел
- Опции
- or
- организации
- Другое
- выходной
- параметр
- параметры
- pass
- Прошло
- пациент
- выполнять
- выполняет
- врач
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- политика
- Популярное
- населенный
- После
- Postgresql
- Блог
- потенциал
- практиками
- присутствие
- предотвращать
- предотвращает
- Цены
- цены
- Основной
- частная
- профессиональный
- обеспечивать
- приводит
- обеспечение
- полномочие
- Питон
- повышение
- получила
- последний
- запись
- учет
- снижает
- Связанный
- соответствующие
- замещать
- Reporting
- представлять
- запросить
- Запросы
- требовать
- обязательный
- требуется
- ресурс
- Полезные ресурсы
- ответственный
- ОТДЫХ
- Итоги
- возвращают
- возвращение
- Возвращает
- обзоре
- отзывы
- Роли
- Run
- Бег
- то же
- масштабируемые
- НАУКА
- Во-вторых
- Secret
- Раздел
- безопасный
- обеспеченный
- безопасно
- Защищает
- посмотреть
- отдельный
- Serverless
- обслуживание
- Услуги
- Сессия
- набор
- Поделиться
- она
- сдвиг
- должен
- показывать
- показанный
- Шоу
- подпись
- аналогичный
- упростить
- умение
- Решение
- Решения
- Источник
- специализированный
- специализируется
- конкретный
- стабильный
- и политические лидеры
- заявление
- Статус:
- Шаг
- Шаги
- магазин
- хранить
- магазины
- строка
- стиль
- представление
- последующее
- успех
- успешный
- такие
- поддержка
- Поддержка
- ТАБЛИЦЫ
- направлены
- снижения вреда
- Технологии
- шаблон
- шаблоны
- десятки
- который
- Ассоциация
- их
- тогда
- Эти
- они
- этой
- тысячи
- порог
- Через
- пропускная способность
- время
- отметка времени
- в
- знак
- инструменты
- традиционный
- трафик
- срабатывает
- правда
- стараться
- напишите
- Обновление ПО
- обновление
- Updates
- URL
- использование
- используемый
- Информация о пользователе
- Пользовательский интерфейс
- пользователей
- через
- Проверка
- ценностное
- разнообразие
- версия
- Вид
- видимый
- визуальные
- хотеть
- хочет
- Склады
- законопроект
- Путь..
- we
- Web
- веб-приложений
- Web-Based
- когда
- , которые
- широкий
- Википедия.
- будете
- в
- без
- работавший
- рабочий
- Трудовые ресурсы
- Мир
- записывать
- являетесь
- ВАШЕ
- зефирнет