Amazon QuickSight це масштабоване, безсерверне рішення для бізнес-аналітики (BI) на основі машинного навчання (ML), яке дозволяє легко підключатися до ваших даних, створювати інтерактивні інформаційні панелі, отримувати доступ до статистики з підтримкою ML і ділитися візуальними матеріалами та інформаційними панелями з десятками тисяч внутрішніх і зовнішніх користувачів, у самому QuickSight або вбудованому в будь-яку програму.
Зворотний запис — це можливість оновлювати вітрину даних, сховище даних або будь-яку іншу базу даних із панелей інструментів BI та аналізувати оновлені дані майже в реальному часі на самій панелі інструментів. У цій публікації ми покажемо, як виконувати безпечні зворотні записи бази даних за допомогою QuickSight.
Огляд варіантів використання
Щоб продемонструвати, як увімкнути функцію зворотного запису за допомогою QuickSight, розглянемо вигадану компанію AnyCompany Inc. AnyCompany — це фірма, що надає професійні послуги, яка спеціалізується на наданні рішень для персоналу своїм клієнтам. AnyCompany визначила, що виконання робочих навантажень у хмарі для підтримки зростаючих потреб глобального бізнесу є конкурентною перевагою, і використовує хмару для розміщення всіх своїх робочих навантажень. AnyCompany вирішила покращити спосіб надання цінових пропозицій своїм клієнтам у своїх відділеннях. Наразі філії генерують клієнтські пропозиції вручну, і як перший крок у цій інноваційній подорожі AnyCompany прагне розробити корпоративне рішення для створення клієнтських цінових пропозицій із можливістю динамічного застосування даних про місцеві ціни під час створення цінової пропозиції.
Зараз використовує AnyCompany Амазонська червона зміна як платформу корпоративного сховища даних і QuickSight як рішення BI.
Створення нового рішення пов’язане з такими проблемами:
- AnyCompany хоче рішення, яке легко створювати та підтримувати, і вони не хочуть інвестувати в створення окремого інтерфейсу користувача.
- AnyCompany хоче розширити можливості своєї існуючої інформаційної панелі QuickSight BI, щоб також увімкнути генерацію та прийняття пропозицій. Це спростить розгортання функцій, оскільки їхні співробітники вже використовують інформаційні панелі QuickSight і насолоджуються простим у використанні інтерфейсом, який надає QuickSight.
- AnyCompany хоче зберігати історію узгодження цінових пропозицій, яка включає створені, перевірені та прийняті пропозиції.
- AnyCompany хоче створити нову інформаційну панель із даними історії котирувань для аналізу та бізнес-аналізу.
У цій публікації описано кроки, щоб увімкнути функцію зворотного запису в Amazon Redshift від QuickSight. Зауважте, що традиційні інструменти BI доступні лише для читання та мають мінімальні можливості для оновлення вихідних даних.
Огляд рішення
Це рішення використовує такі служби AWS:
- API -шлюз Amazon – Розміщує та захищає API REST із зворотним записом, який буде викликано QuickSight
- AWS Lambda – Запускає функцію обчислення, необхідну для створення хешу, і другу функцію для безпечного виконання зворотного запису
- Amazon QuickSight – Пропонує інформаційні панелі BI та можливості формування пропозицій
- Амазонська червона зміна – Зберігає котирування, ціни та інші відповідні набори даних
- Менеджер секретів AWS – Зберігає та керує ключами для підпису хешів (дайджест повідомлень)
Хоча це рішення використовує Amazon Redshift як сховище даних, подібний підхід можна реалізувати з будь-якою базою даних, яка підтримує створення визначених користувачем функцій (UDF), які можуть викликати Lambda.
На наступному малюнку показано робочий процес для виконання зворотного запису з QuickSight.
Першим кроком у рішенні є створення хешу або дайджесту повідомлення набору атрибутів у Amazon Redshift за допомогою функції Lambda. Цей крок запобігає підробці запиту. Щоб створити хеш, Amazon Redshift викликає a скаляр Лямбда UDF. Використаний тут механізм хешування є популярним ПЛІНКА2 функція (доступна в бібліотеці Python хешліб). Щоб додатково захистити хеш, використовується хешування з ключем, яке є швидшою та простішою альтернативою код автентифікації повідомлення на основі хешу (HMAC). Цей ключ створюється та зберігається диспетчером секретів і має бути доступним лише для дозволених програм. Після створення захищеного хешу він повертається в Amazon Redshift і об’єднується в поданні Amazon Redshift.
Записування згенерованої цитати назад до Amazon Redshift виконується функцією зворотного запису Lambda, а кінцева точка API REST API Gateway створюється для захисту та передачі запитів функції зворотного запису. Функція зворотного запису виконує такі дії:
- Згенеруйте хеш на основі вхідних параметрів API, отриманих від QuickSight.
- Підпишіть хеш, застосувавши ключ із диспетчера секретів.
- Порівняйте згенерований хеш із хешем, отриманим із вхідних параметрів, використовуючи метод compare_digest, доступний у HMAC модуль
- Після успішної перевірки запишіть запис у таблицю подання пропозицій в Amazon Redshift.
У наступному розділі наведено докладні кроки із зразками корисних даних і фрагментами коду.
Згенеруйте хеш
Хеш генерується за допомогою Lambda UDF в Amazon Redshift. Крім того, для підпису хешу використовується ключ диспетчера секретів. Щоб створити хеш, виконайте такі кроки:
- Створіть ключ диспетчера секретів із Інтерфейс командного рядка AWS (AWS CLI):
- Створіть Lambda UDF, щоб створити хеш для шифрування:
- Визначте UDF Amazon Redshift для виклику функції Lambda для створення хешу:
Команда Управління ідентифікацією та доступом AWS Роль (IAM) на попередньому кроці повинна мати наведену нижче політику, щоб мати можливість викликати функцію Lambda:
- Отримайте ключ у менеджера секретів.
Цей ключ використовується функцією лямбда для додаткового захисту хешу. Про це вказано в get_secret функцію на кроці 2.
Налаштуйте набори даних Amazon Redshift у QuickSight
На інформаційній панелі генерації пропозицій використовується наступне подання Amazon Redshift.
Створіть подання Amazon Redshift, яке використовує всі попередні стовпці разом із стовпцем хешу:
Записи виглядатимуть так, як на скріншоті нижче.
Попереднє подання використовуватиметься як набір даних QuickSight для генерації котирувань. За допомогою набору даних буде створено аналіз QuickSight. Для аналізу майже в реальному часі ви можете використовувати режим прямого запиту QuickSight.
Створення ресурсів API Gateway
Операція зворотного запису ініціюється QuickSight, викликаючи ресурс API Gateway, який викликає функцію зворотного запису Lambda. Як передумова для створення обчислюваного поля в QuickSight для виклику API зворотного запису, ви повинні спочатку створити ці ресурси.
Шлюз API захищає та викликає функцію лямбда-запису з параметрами, створеними як параметри рядка запиту URL-адреси з шаблонами зіставлення. Параметрів зіставлення можна уникнути за допомогою інтеграції проксі-сервера Lambda.
Створіть ресурс REST API типу методу GET, який використовує лямбда-функції (створені на наступному кроці) як тип інтеграції. Інструкції див Створення REST API в Amazon API Gateway та Налаштуйте інтеграцію Lambda в API Gateway.
На наступному знімку екрана показано деталі створення параметра рядка запиту для кожного параметра, переданого до API Gateway.
На наступному знімку екрана показано деталі створення параметра шаблону зіставлення для кожного параметра, переданого до API Gateway.
Створіть лямбда-функцію
Створіть нову лямбда-функцію для виклику шлюзу API. Функція Лямбда виконує такі дії:
- Отримувати параметри від QuickSight через API Gateway і хешувати об’єднані параметри.
Наведений нижче приклад коду отримує параметри з виклику API Gateway за допомогою об’єкта події функції Lambda:
Функція виконує логіку хешування, як показано в створити хеш кроком раніше, використовуючи об’єднані параметри, передані QuickSight.
- Порівняйте хешований вихід із хеш-параметром.
Якщо вони не збігаються, зворотний запис не відбудеться.
- Якщо хеші збігаються, виконайте зворотний запис. Перевірте наявність запису в таблиці генерації котирувань, сформувавши запит із таблиці за допомогою параметрів, переданих із QuickSight:
- За результатами запиту виконайте наступну дію:
- Якщо для попередньої комбінації не існує запису, згенеруйте та запустіть запит на вставку, використовуючи всі параметри зі статусом, як згенеровано.
- Якщо існує запис для попередньої комбінації, згенеруйте та запустіть запит на вставку зі статусом як у перегляді. quote_Id для існуючої комбінації буде використано повторно.
Створіть візуал QuickSight
Цей крок передбачає створення візуалізації таблиці, яка використовує обчислюване поле для передачі параметрів до API Gateway і виклику попередньої функції Lambda.
- Додайте обчислюване поле QuickSight під назвою Generate Quote, щоб зберігати URL-адресу, розміщену на шлюзі API, яка буде ініційована для запису історії котирувань в Amazon Redshift:
- Створіть візуал таблиці QuickSight.
- Додайте обов’язкові поля, такі як Клієнт, Навички та Вартість.
- Додайте обчислюване поле «Створити пропозицію» та оформіть його як гіперпосилання.
Якщо вибрати це посилання, запис буде записано в Amazon Redshift. Це стосується того самого хеш-значення, яке повертається, коли лямбда-функція виконує хешування параметрів.
На наступному знімку екрана показано приклад візуалізації таблиці.
Записати в базу даних Amazon Redshift
Ключ диспетчера секретів отримується та використовується функцією лямбда для створення хешу для порівняння. Зворотний запис буде виконано, лише якщо хеш збігається з хешем, переданим у параметрі.
Наступна таблиця Amazon Redshift фіксуватиме історію котирувань, заповнену функцією лямбда. Записи, виділені зеленим кольором, представляють останні записи для цитати.
Міркування та наступні кроки
Використання захищених хешів запобігає підробці параметрів корисного навантаження, які відображаються у вікні браузера під час виклику URL-адреси зворотного запису. Щоб додатково захистити URL-адресу зворотного запису, ви можете застосувати такі методи:
- Розгорніть REST API у приватному VPC, доступному лише для користувачів QuickSight.
- Щоб запобігти атакам повторного відтворення, разом із функцією хешування можна створити мітку часу та передати її як додатковий параметр у URL-адресі зворотного запису. Потім можна модифікувати бекенд-функцію Lambda, щоб дозволити зворотний запис лише протягом певного порогового значення на основі часу.
- Слідкуйте за шлюзом API управління доступом та безпеку Кращі практики.
- Пом'якшити потенційна відмова в обслуговуванні для загальнодоступних API.
Ви можете додатково покращити це рішення, щоб відтворити веб-форму, коли відкривається URL-адреса зворотного запису. Це можна реалізувати шляхом динамічного створення HTML-форми у серверній функції Lambda для підтримки введення додаткової інформації. Якщо ваше робоче навантаження вимагає великої кількості зворотних записів, які вимагають вищої пропускної здатності або паралельності, спеціально створене сховище даних, наприклад Редакція Amazon Aurora, сумісна з PostgreSQL може бути кращим вибором. Для отримання додаткової інформації див Виклик функції AWS Lambda з кластера Aurora PostgreSQL DB. Потім ці оновлення можна синхронізувати в таблиці 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 по всьому світу. Вона має глибокий досвід роботи з інтегрованими даними та аналітикою охорони здоров’я з широким спектром наборів даних у сфері охорони здоров’я, включаючи керований ринок, орієнтацію на лікаря та аналітику пацієнтів.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою 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
- Інтерфейси
- додаток
- застосування
- Застосовувати
- Застосування
- підхід
- ЕСТЬ
- аргумент
- аргументація
- AS
- At
- нападки
- Атрибути
- Аврора
- Authentication
- доступний
- уникати
- AWS
- AWS Lambda
- назад
- Backend
- заснований
- BE
- оскільки
- КРАЩЕ
- передового досвіду
- Краще
- гілки
- браузер
- будувати
- Створюємо
- бізнес
- бізнес-аналітика
- by
- розрахований
- call
- Виклики
- CAN
- можливості
- захоплення
- кар'єра
- випадок
- певний
- проблеми
- перевірка
- вибір
- клієнт
- хмара
- код
- Колонка
- Колони
- поєднання
- комбінований
- приходить
- Компанії
- компанія
- порівняння
- конкурентоспроможний
- повний
- обчислення
- обчислення
- З'єднуватися
- Вважати
- консультант
- контекст
- Коштувати
- може
- покритий
- створювати
- створений
- створення
- В даний час
- клієнт
- Клієнти
- приладова панель
- дані
- управління даними
- сховище даних
- Database
- набори даних
- вирішене
- дефолт
- демонструвати
- Відмова в обслуговуванні
- проектування
- докладно
- деталі
- певний
- розвивати
- розвивається
- розробка
- Digest
- прямий
- Не знаю
- динамічно
- e
- кожен
- Раніше
- легко
- легкий у використанні
- ефект
- або
- Усуває
- вбудований
- співробітників
- включіть
- шифрування
- кінець в кінець
- Кінцева точка
- підвищувати
- користуватися
- забезпечувати
- підприємство
- Навколишнє середовище
- Ефір (ETH)
- Event
- приклад
- Крім
- виняток
- існуючий
- існує
- досвід
- продовжити
- зовнішній
- false
- швидше
- особливість
- Отримано
- вигаданий
- поле
- Поля
- Рисунок
- Фірма
- Перший
- фокусування
- після
- для
- форма
- стан
- від
- функція
- функціональність
- Функції
- далі
- шлюз
- породжувати
- генерується
- породжує
- покоління
- отримати
- Глобальний
- глобальний бізнес
- земну кулю
- йде
- Уряд
- зелений
- Зростання
- обробляти
- траплятися
- мішанина
- хеш
- хешування
- Мати
- he
- здоров'я
- охорона здоров'я
- тут
- Високий
- вище
- дуже
- його
- історія
- тримати
- господар
- відбувся
- хостів
- Як
- How To
- HTML
- HTTP
- HTTPS
- IAM
- Особистість
- if
- реалізовані
- імпорт
- in
- поглиблений
- Инк
- includes
- У тому числі
- Складно
- зазначений
- інформація
- інновація
- вхід
- розуміння
- інструкції
- інтегрований
- інтеграція
- інтеграцій
- Інтелект
- інтерактивний
- інтерфейс
- внутрішній
- в
- Invest
- викликали
- викликає
- IT
- ЙОГО
- сам
- подорож
- JPG
- json
- ключ
- ключі
- пізніше
- вивчення
- догляд
- бібліотека
- як
- Лінія
- LINK
- трохи
- місцевий
- логіка
- подивитися
- виглядає як
- шукати
- машина
- навчання за допомогою машини
- підтримувати
- Підлягає ремонту
- обслуговування
- РОБОТИ
- вдалося
- управління
- менеджер
- управляє
- вручну
- відображення
- ринок
- матч
- механізм
- повідомлення
- метод
- може бути
- ML
- режим
- модифікований
- Модулі
- більше
- найбільш
- множинний
- повинен
- Названий
- Необхідність
- потреби
- Нові
- нове рішення
- наступний
- немає
- номер
- об'єкт
- of
- Пропозиції
- on
- тільки
- відкритий
- операція
- операції
- Опції
- or
- організації
- Інше
- вихід
- параметр
- параметри
- проходити
- Пройшов
- пацієнт
- виконувати
- виступає
- лікар
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- політика
- популярний
- заселений
- пошта
- postgresql
- Пости
- потенціал
- практики
- наявність
- запобігати
- запобігає
- ціни
- ціни без прихованих комісій
- Головний
- приватний
- професійний
- забезпечувати
- забезпечує
- забезпечення
- повноваження
- Python
- підвищення
- отримано
- останній
- запис
- облік
- знижує
- пов'язаний
- доречний
- замінювати
- Звітність
- представляти
- запросити
- запитів
- вимагати
- вимагається
- Вимагається
- ресурс
- ресурси
- відповідальний
- REST
- результати
- повертати
- повернення
- Умови повернення
- огляд
- відгуки
- Роль
- прогін
- біг
- то ж
- масштабовані
- НАУКИ
- другий
- секрет
- розділ
- безпечний
- Забезпечений
- безпечно
- Захищає
- побачити
- окремий
- Без сервера
- обслуговування
- Послуги
- Сесія
- комплект
- Поділитись
- вона
- зсув
- Повинен
- Показувати
- показаний
- Шоу
- підпис
- аналогічний
- спростити
- майстерність
- рішення
- Рішення
- Source
- спеціалізований
- спеціалізується
- конкретний
- стабільний
- почалася
- Заява
- Статус
- Крок
- заходи
- зберігати
- зберігати
- магазинів
- рядок
- стиль
- уявлення
- наступні
- успіх
- успішний
- такі
- підтримка
- Опори
- таблиця
- націлювання
- методи
- Технологія
- шаблон
- Шаблони
- тензор
- Що
- Команда
- їх
- потім
- Ці
- вони
- це
- тисячі
- поріг
- через
- пропускна здатність
- час
- відмітка часу
- до
- знак
- інструменти
- традиційний
- трафік
- спрацьовує
- правда
- намагатися
- тип
- Оновити
- оновлений
- Updates
- URL
- використання
- використовуваний
- користувач
- Інтерфейс користувача
- користувачі
- використання
- перевірка достовірності
- значення
- різноманітність
- версія
- вид
- видимий
- візуальні ефекти
- хотіти
- хоче
- Склад
- було
- шлях..
- we
- Web
- веб-додатки
- Web-Based
- коли
- який
- широкий
- Вікіпедія
- волі
- з
- в
- без
- працював
- робочий
- Трудові ресурси
- світ
- запис
- ви
- вашу
- зефірнет