Ми нещодавно оголошений підтримка Формування озера AWS детальні політики контролю доступу в Амазонка Афіна запити для даних, що зберігаються в будь-якому підтримуваному форматі файлу, використовуючи такі формати таблиць, як Apache Iceberg, Apache Hudi та Apache Hive. AWS Lake Formation дозволяє визначати та застосовувати політики доступу на рівні бази даних, таблиць і стовпців для запитів до таблиць Iceberg, що зберігаються в Amazon S3. Lake Formation надає рівень авторизації та керування даними, що зберігаються в Amazon S3. Ця можливість потребує оновлення до Двигун Athena версія 3.
Великі організації часто мають напрямки діяльності (LoBs), які автономно керують своїми бізнес-даними. Це робить обмін даними між LoB нетривіальним. Ці організації прийняли федеративну модель, де кожен LoB має право самостійно приймати рішення щодо своїх даних. Вони використовують модель видавець/споживач із централізованим рівнем керування, який використовується для забезпечення контролю доступу. Якщо вам цікаво дізнатися більше про архітектуру сітки даних, відвідайте Створіть архітектуру сітки даних за допомогою AWS Lake Formation і AWS Glue. З рушієм Athena версії 3 клієнти можуть використовувати ті самі детальні елементи керування для фреймворків відкритих даних, таких як Apache Iceberg, Apache Hudi та Apache Hive.
У цій публікації ми детально зануримося в прецедент використання, коли у вас є модель виробник/споживач із увімкненим обміном даними, щоб надати обмежений доступ до таблиці Apache Iceberg, яку споживач може запитувати. Ми обговоримо фільтрування стовпців для обмеження певних рядків, фільтрування для обмеження доступу на рівні стовпців, еволюцію схеми та подорожі в часі.
Огляд рішення
Щоб проілюструвати функціональність детальних дозволів для таблиць Apache Iceberg із Athena та Lake Formation, ми налаштували такі компоненти:
- На рахунку виробника:
- An Клей AWS Каталог даних для реєстрації схеми таблиці у форматі Apache Iceberg
- Lake Formation для забезпечення детального доступу до облікового запису споживача
- Athena для перевірки даних з облікового запису виробника
- В обліковому записі споживача:
- Менеджер доступу до ресурсів AWS (AWS RAM), щоб створити рукостискання між каталогом даних виробника та споживачем
- Lake Formation для забезпечення детального доступу до облікового запису споживача
- Athena для перевірки даних з облікового запису виробника
Наступна схема ілюструє архітектуру.
Передумови
Перш ніж почати, переконайтеся, що у вас є:
Налаштування виробника даних
У цьому розділі ми представляємо кроки для налаштування виробника даних.
Створіть відро S3 для зберігання даних таблиці
Ми створюємо нове відро S3, щоб зберегти дані для таблиці:
- На консолі Amazon S3 створити відро S3 з унікальною назвою (для цієї публікації ми використовуємо
iceberg-athena-lakeformation-blog
). - Створіть папку виробника всередині сегмента для використання в таблиці.
Зареєструйте шлях S3, що зберігає таблицю, використовуючи Lake Formation
Ми реєструємо повний шлях S3 у Lake Formation:
- Перейдіть до консолі Lake Formation.
- Якщо ви входите в систему вперше, вам буде запропоновано створити користувача адміністратора.
- На панелі навігації під Зареєструйтеся та проковтнітьвиберіть Розташування озера даних.
- Вибирати Зареєструвати місцезнаходженняі надайте шлях сегмента S3, який ви створили раніше.
- Вибирати
AWSServiceRoleForLakeFormationDataAccess
та цінності роль IAM.
Додаткову інформацію про ролі див Вимоги до ролей, які використовуються для реєстрації місцеположень.
Якщо ви ввімкнули шифрування свого сегмента S3, ви повинні надати дозволи Lake Formation на виконання операцій шифрування та дешифрування. Відноситься до Реєстрація зашифрованого розташування Amazon S3 для керівництва.
- Вибирати Зареєструвати місцезнаходження.
Створіть стіл «Айсберг» за допомогою Athena
Тепер давайте створимо таблицю за допомогою формату Athena, що підтримується Apache Iceberg:
- На консолі Athena виберіть Запит-редактор у навігаційній панелі.
- Якщо ви використовуєте Athena вперше, під Налаштуваннявиберіть керувати і введіть розташування відра S3, яке ви створили раніше (
iceberg-athena-lakeformation-blog/producer
). - Вибирати зберегти.
- У редакторі запитів введіть наступний запит (замініть розташування на відро S3, яке ви зареєстрували в Lake Formation). Зверніть увагу, що ми використовуємо базу даних за замовчуванням, але ви можете використовувати будь-яку іншу базу даних.
- Вибирати прогін.
Поділіться таблицею з обліковим записом споживача
Щоб проілюструвати функціональність, ми реалізуємо такі сценарії:
- Надати доступ до вибраних стовпців
- Надати доступ до вибраних рядків на основі фільтра
Виконайте такі дії:
- На консолі Lake Formation на навігаційній панелі під Каталог данихвиберіть Фільтри даних.
- Вибирати Створити новий фільтр.
- для Назва фільтра даних, введіть
blog_data_filter
. - для Цільова база даних, введіть
lf-demo-db
. - для Цільова таблиця, введіть
consumer_iceberg
. - для Доступ на рівні стовпціввиберіть Включіть стовпці.
- Виберіть стовпці, якими потрібно поділитися зі споживачем:
country, address, contactfirstname, city, customerid,
таcustomername
. - для Вираз фільтра рядка, введіть фільтр
country='France'
. - Вибирати Створіть фільтр.
Тепер давайте надамо доступ до облікового запису споживача на consumer_iceberg
таблиці.
- На панелі навігації виберіть таблиці.
- Виберіть таблицю consumer_iceberg і виберіть Грант на Дії меню.
- Select Зовнішні рахунки.
- Введіть ідентифікатор зовнішнього облікового запису.
- Select Іменовані ресурси каталогу даних.
- Виберіть базу даних і таблицю.
- для Фільтри данихвиберіть фільтр даних, який ви створили.
- для Дозволи фільтра даних та Надання дозволіввиберіть Select.
- Вибирати Грант.
Налаштування споживача даних
Щоб налаштувати споживача даних, ми приймаємо спільний доступ до ресурсу та створюємо таблицю за допомогою AWS RAM і Lake Formation. Виконайте наступні дії:
- Увійдіть в обліковий запис користувача та перейдіть до консолі AWS RAM.
- під Поділився зі мною на панелі навігації виберіть Акції ресурсів.
- Виберіть свою частку ресурсу.
- Вибирати Прийняти частку ресурсу.
- Запам’ятайте ім’я спільного ресурсу для використання в наступних кроках.
- Перейдіть до консолі Lake Formation.
- Якщо ви входите в систему вперше, вам буде запропоновано створити користувача адміністратора.
- Вибирати Бази даних на панелі навігації, а потім виберіть свою базу даних.
- на Дії меню, виберіть Створити посилання на ресурс.
- для Назва посилання на ресурс, введіть назву свого посилання на ресурс (наприклад,
consumer_iceberg
). - Виберіть свою базу даних і спільну таблицю.
- Вибирати Створювати.
Перевірте рішення
Тепер ми можемо виконувати різні операції над таблицями, щоб перевірити точні елементи керування доступом.
Операція вставки
Давайте вставимо дані в consumer_iceberg
в обліковому записі виробника та перевірте, чи фільтрація даних працює належним чином в обліковому записі споживача.
- Увійдіть в обліковий запис виробника.
- На консолі Athena виберіть Запит-редактор у навігаційній панелі.
- Використовуйте наступний SQL, щоб записати та вставити дані в таблицю Iceberg. Використовуйте редактор запитів, щоб виконувати по одному запиту. Ви можете виділити/вибрати по одному запиту та натиснути «Виконати»/«Виконати знову:
- Використовуйте наступний SQL для читання та вибору даних у таблиці Iceberg:
- Увійдіть в обліковий запис споживача.
- У редакторі запитів Athena виконайте такий запит SELECT для спільної таблиці:
На основі фільтрів споживач бачить підмножину стовпців і рядків, де країною є Франція.
Операції оновлення/видалення
Тепер давайте оновимо один із рядків і видалимо один із набору даних, яким спільно користується споживач.
- Увійдіть в обліковий запис виробника.
- Оновити
city='Paris' WHERE city='Reims'
і видаліть рядокcustomerid = 3;
- Перевірте оновлений і видалений набір даних:
- Увійдіть в обліковий запис споживача.
- У редакторі запитів Athena виконайте такий запит SELECT для спільної таблиці:
Ми можемо помітити, що доступний лише один рядок, і місто оновлюється на Париж.
Еволюція схеми: додайте новий стовпець
Давайте оновимо один із рядків і видалимо один із набору даних, яким спільно користується споживач.
- Увійдіть в обліковий запис виробника.
- Додайте новий стовпець під назвою
geo_loc
в таблиці Айсберг. Використовуйте редактор запитів, щоб виконувати по одному запиту. Ви можете виділити/вибрати по одному запиту та натиснути «Виконати»/«Виконати знову:
Щоб забезпечити видимість новододаних geo_loc
нам потрібно оновити фільтр даних Lake Formation.
- На консолі Lake Formation виберіть Фільтри даних у навігаційній панелі.
- Виберіть свій фільтр даних і виберіть Редагувати.
- під Доступ на рівні стовпців, додайте новий стовпець (
geo_loc
). - Вибирати зберегти.
- Увійдіть в обліковий запис споживача.
- У редакторі запитів Athena виконайте наступне
SELECT
запит до спільної таблиці:
Нова колонка geo_loc
видно і додатковий ряд.
Еволюція схеми: Видалити стовпець
Давайте оновимо один із рядків і видалимо один із набору даних, яким спільно користується споживач.
- Увійдіть в обліковий запис виробника.
- Змініть таблицю, щоб видалити стовпець адреси з таблиці Iceberg. Використовуйте редактор запитів, щоб виконувати по одному запиту. Ви можете виділити/вибрати по одному запиту та натиснути «Виконати»/«Виконати знову:
Ми можемо помітити, що адреса стовпця відсутня в таблиці.
- Увійдіть в обліковий запис споживача.
- У редакторі запитів Athena виконайте такий запит SELECT для спільної таблиці:
Адреса стовпця відсутня в таблиці.
Час у дорозі
Тепер ми кілька разів змінювали таблицю Iceberg. У таблиці Iceberg зберігаються знімки. Виконайте наступні кроки, щоб дослідити функцію подорожей у часі:
- Увійдіть в обліковий запис виробника.
- Запит системної таблиці:
Ми можемо помітити, що ми створили кілька знімків.
- Занотуйте один із
committed_at
значення для використання в наступних кроках (для цього прикладу,2023-01-29 21:35:02.176 UTC
). - Використовуйте подорож у часі, щоб знайти знімок таблиці. Використовуйте редактор запитів, щоб виконувати по одному запиту. Ви можете виділити/вибрати по одному запиту та натиснути «Виконати»/«Виконати знову:
Прибирати
Виконайте наведені нижче дії, щоб уникнути стягнення плати в майбутньому.
- На консолі Amazon S3 видаліть відро для зберігання таблиці (для цієї публікації, iceberg-athena-lakeformation-blog).
- В обліковому записі виробника на консолі Athena виконайте такі команди, щоб видалити створені таблиці:
- В обліковому записі виробника на консолі Lake Formation скасуйте дозволи для облікового запису споживача.
- Видаліть сегмент S3, який використовується для розташування результатів запиту Athena, з облікового запису споживача.
Висновок
Завдяки підтримці перехресних облікових записів, точній політиці контролю доступу для таких форматів, як Iceberg, у вас є можливість працювати з будь-яким форматом, який підтримує Athena. Можливість виконувати операції CRUD з даними у вашому озері даних S3 у поєднанні з детальним керуванням доступом Lake Formation для всіх таблиць і форматів, які підтримує Athena, надає можливості для інновацій та спрощення вашої стратегії даних. Будемо раді почути ваші відгуки!
Про авторів
Кішор Дхамодаран є старшим архітектором рішень у AWS. Кішор допомагає стратегічним клієнтам з їхньою стратегією хмарного бізнесу та міграцією, використовуючи свій багаторічний досвід роботи в галузі та хмарний досвід.
Джек Є є інженером-програмістом команди Athena Data Lake and Storage в AWS. Він є комітентом Apache Iceberg і членом PMC.
Кріс Олсон є інженером з розробки програмного забезпечення в AWS.
Сяосюань Лі є інженером з розробки програмного забезпечення в AWS.
Рахул Сонаване є головним архітектором аналітичних рішень в AWS зі штучним інтелектом/ML та аналітикою в якості своєї спеціальності.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/big-data/interact-with-apache-iceberg-tables-using-amazon-athena-and-cross-account-fine-grained-permissions-using-aws-lake-formation/
- :є
- $UP
- 1
- 10
- 100
- 7
- a
- здатність
- МЕНЮ
- Прийняти
- доступ
- рахунки
- через
- доданий
- Додатковий
- Додаткова інформація
- адреса
- адмін
- прийнята
- проти
- AI / ML
- ВСІ
- дозволяє
- Amazon
- Амазонка Афіна
- аналітика
- та
- Apache
- архітектура
- ЕСТЬ
- ПЛОЩА
- Art
- AS
- At
- авторизації
- доступний
- уникнути
- AWS
- Формування озера AWS
- підтриманий
- заснований
- між
- бізнес
- підприємства
- by
- званий
- CAN
- каталог
- централізована
- певний
- зміна
- вантажі
- Вибирати
- Місто
- клацання
- хмара
- Колонка
- Колони
- COM
- комбінований
- повний
- Компоненти
- Консоль
- споживач
- контроль
- управління
- країна
- створювати
- створений
- створення
- створення
- Перетинати
- Клієнти
- дані
- Озеро даних
- обмін даними
- стратегія даних
- Database
- рішення
- глибокий
- глибоке занурення
- дефолт
- розробка
- різний
- обговорювати
- вниз
- Падіння
- кожен
- Раніше
- редактор
- в регіоні EMEA
- включений
- зашифрованих
- шифрування
- двигун
- інженер
- Що натомість? Створіть віртуальну версію себе у
- підприємство
- Ефір (ETH)
- еволюція
- приклад
- очікуваний
- досвід
- дослідити
- зовнішній
- філе
- фільтрувати
- фільтрація
- Фільтри
- знайти
- Перший
- перший раз
- Гнучкість
- після
- для
- формат
- освіта
- каркаси
- Франція
- від
- Повний
- функціональність
- майбутнє
- генерується
- отримати
- Давати
- управління
- надавати
- керівництво
- Мати
- має
- чути
- допомагає
- Вулик
- HTML
- HTTP
- HTTPS
- ID
- здійснювати
- in
- Инк
- промисловість
- інформація
- оновлювати
- взаємодіяти
- зацікавлений
- IT
- подорож
- JPG
- озеро
- земля
- шар
- вивчення
- рівень
- використання
- МЕЖА
- ліній
- LINK
- розташування
- любов
- Ліон
- зробити
- РОБОТИ
- управління
- член
- Меню
- міграція
- модель
- більше
- множинний
- ім'я
- Переміщення
- навігація
- Необхідність
- Нові
- наступний
- Нью-Йорк
- спостерігати
- of
- on
- ONE
- відкрити
- відкриті дані
- працювати
- операції
- Можливості
- організації
- Інше
- pane
- Паріс
- шлях
- виконувати
- Дозволи
- plato
- Інформація про дані Платона
- PlatoData
- Політика
- пошта
- представити
- Головний
- виробник
- забезпечувати
- забезпечує
- Оперативна пам'ять
- Читати
- нещодавно
- відображено
- реєструвати
- зареєстрований
- замінювати
- Вимагається
- ресурс
- обмежити
- обмежений
- результат
- Роль
- ролі
- ROW
- прогін
- то ж
- зберегти
- сценарії
- розділ
- обраний
- старший
- комплект
- Поділитись
- загальні
- поділ
- спростити
- Знімок
- Софтвер
- розробка програмного забезпечення
- Інженер-програміст
- Рішення
- Спеціальність
- SQL
- почалася
- заходи
- зберігання
- зберігати
- зберігати
- Стратегічний
- Стратегія
- рядок
- такі
- підтримка
- Підтриманий
- система
- таблиця
- команда
- Що
- Команда
- їх
- Ці
- час
- подорож у часі
- times
- відмітка часу
- до
- трек
- подорожувати
- при
- створеного
- Оновити
- оновлений
- модернізація
- USA
- використання
- користувач
- UTC
- ПЕРЕВІР
- Цінності
- перевірити
- версія
- видимість
- видимий
- візит
- з
- Work
- працює
- запис
- років
- вашу
- зефірнет