Амазонка Афіна це інтерактивна служба запитів, яка дозволяє легко аналізувати дані Служба простого зберігання Amazon (Amazon S3) і джерела даних, що знаходяться в AWS, локальних або інших хмарних системах, що використовують SQL або Python. Athena побудовано на механізмах Trino та Presto з відкритим кодом, а також на фреймворках Apache Spark, не потребуючи жодних зусиль з підготовки чи налаштування. У Athena немає серверів, тому немає інфраструктури для керування, і ви платите лише за запити, які виконуєте.
Айсберг Апач це формат відкритої таблиці для дуже великих аналітичних наборів даних. Він керує великими колекціями файлів у вигляді таблиць і підтримує сучасні аналітичні операції озера даних, такі як запити на вставку, оновлення, видалення та подорожі в часі на рівні записів. Athena підтримує запити на читання, подорожі в часі, запис і DDL для таблиць Apache Iceberg, які використовують формат Apache Parquet для даних і Каталог даних AWS Glue для їх метасховища.
Особливість інженерії це процес ідентифікації та перетворення необроблених даних (зображень, текстових файлів, відео тощо), заповнення відсутніх даних і додавання одного або кількох значущих елементів даних для забезпечення контексту, щоб модель машинного навчання (ML) могла навчатися на цьому. Позначення даних потрібне для різних випадків використання, включаючи прогнозування, комп’ютерне бачення, обробку природної мови та розпізнавання мовлення.
У поєднанні з можливостями Athena Apache Iceberg забезпечує спрощений робочий процес для науковців із обробки даних для створення нових функцій даних без необхідності копіювати чи відтворювати весь набір даних. Ви можете створювати функції за допомогою стандартного SQL на Athena без використання будь-якої іншої служби для розробки функцій. Науковці даних можуть скоротити час, витрачений на підготовку та копіювання наборів даних, і натомість зосередитися на розробці функцій даних, експериментуванні та аналізі даних у масштабі.
У цій публікації ми розглядаємо переваги використання Athena з форматом відкритої таблиці Apache Iceberg і те, як це спрощує загальні завдання розробки функцій для науковців з даних. Ми демонструємо, як Athena може конвертувати існуючу таблицю у форматі Apache Iceberg, потім додавати стовпці, видаляти стовпці та змінювати дані в таблиці без повторного створення або копіювання набору даних, а також використовувати ці можливості для створення нових функцій у таблицях Apache Iceberg.
Огляд рішення
Науковці даних зазвичай звикли працювати з великими наборами даних. Набори даних зазвичай зберігаються у JSON, CSV, ORC або Паркет Apache або аналогічні формати, оптимізовані для швидкого читання. Фахівці з обробки даних часто створюють нові функції даних і заповнюють їх зведеними та допоміжними даними. Історично це завдання вирішувалося шляхом створення подання поверх таблиці з базовими даними у форматі Apache Parquet, куди такі стовпці та дані додавалися під час виконання, або шляхом створення нової таблиці з додатковими стовпцями. Хоча цей робочий процес добре підходить для багатьох випадків використання, він неефективний для великих наборів даних, оскільки дані потрібно буде генерувати під час виконання або набори даних потрібно буде копіювати та трансформувати.
Афіна представила Транзакція ACID (Atomicity, Consistency, Isolation, Durability). можливості, що додають INSERT, UPDATE, DELETE, MERGE та операції подорожі в часі, побудовані на Таблиці Apache Iceberg. Ці можливості дозволяють дослідникам обробки даних створювати нові функції даних і видаляти наявні функції даних у наявних наборах даних, не турбуючись про копіювання чи перетворення набору даних або абстрагування його за допомогою подання. Науковці даних можуть зосередитися на розробці функцій і уникати копіювання та перетворення наборів даних.
Операція Athena Iceberg UPDATE записує файли видалення позиції Apache Iceberg і щойно оновлені рядки як файли даних в одній транзакції. Ви можете внести виправлення запису за допомогою єдиного оператора UPDATE.
З випуском двигуна Athena версії 3 можливості для таблиць Apache Iceberg розширені завдяки підтримці таких операцій, як СТВОРИТИ ТАБЛИЦЮ ЯК ВИБІР (CTAS) і команди MERGE, які спрощують керування життєвим циклом ваших даних Iceberg. CTAS дозволяє швидко та ефективно створювати таблиці з інших форматів, таких як Apache Paquet та ВЛИВАТИСЯ В умовно оновлює, видаляє або вставляє рядки в таблицю Iceberg. Один оператор може поєднувати дії оновлення, видалення та вставки.
Передумови
Налаштуйте робочу групу Athena з механізмом Athena версії 3 для використання команд CTAS і MERGE з таблицею Apache Iceberg. Щоб оновити існуючий механізм Athena до версії 3 у вашій робочій групі Athena, дотримуйтесь інструкцій у Оновіть механізм Athena до версії 3, щоб підвищити продуктивність запитів і отримати доступ до додаткових функцій аналітики або посилайтеся на Зміна версії двигуна в консолі Athena.
Набір даних
Для демонстрації ми використовуємо таблицю Apache Parquet, яка містить кілька мільйонів записів випадково розподілених фіктивних даних про продажі за останні кілька років, що зберігаються у відрі S3. Завантажити набір даних, розархівуйте його на локальному комп’ютері та завантажте в сегмент S3. У цій публікації ми завантажили наш набір даних у s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
.
У наступній таблиці показано макет таблиці customer_orders
.
Назва стовпця | Тип даних | Опис |
ключ замовлення | рядок | Номер замовлення для замовлення |
ключ клієнта | рядок | Ідентифікаційний номер клієнта |
статус замовлення | рядок | Статус замовлення |
Загальна сума | рядок | Загальна вартість замовлення |
дата замовлення | рядок | Дата замовлення |
orderpriority | рядок | Пріоритетність замовлення |
діловод | рядок | ПІБ працівника, який обробляв замовлення |
пріоритет корабля | рядок | Пріоритет на доставку |
ім'я | рядок | Ім'я клієнта |
адреса | рядок | Адреса клієнта |
національний ключ | рядок | Ключ країни клієнта |
телефон | рядок | Номер телефону клієнта |
acctbal | рядок | Баланс на рахунку клієнта |
mktsegment | рядок | Сегмент клієнтського ринку |
Виконайте розробку функцій
Як дослідники даних ми хочемо працювати інженерія функцій даних про замовлення клієнтів шляхом додавання розрахованих загальних покупок за рік і середніх покупок за рік для кожного клієнта в наявному наборі даних. Для демонстраційних цілей ми створили customer_orders
таблиці в sampledb
бази даних за допомогою Athena, як показано в наступній команді DDL. (Ви можете використати будь-який із наявних наборів даних і виконати кроки, згадані в цій публікації.) customer_orders
набір даних було згенеровано та збережено в локації S3 s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
у форматі Паркет. Ця таблиця не є таблицею Apache Iceberg.
Перевірте дані в таблиці, виконавши запит:
Ми хочемо додати нові функції до цієї таблиці, щоб отримати глибше розуміння продажів клієнтам, що може призвести до швидшого навчання моделі та отримання більш цінної інформації. Щоб додати нові функції до набору даних, конвертуйте customer_orders
Таблиця Athena до таблиці Apache Iceberg на Athena. Випуск а CTAS оператор запиту для створення нової таблиці у форматі Apache Iceberg із customer_orders
стіл. При цьому додається нова функція для отримання загальної суми покупки за минулий рік (максимальний рік у наборі даних) для кожного клієнта.
У наступному запиті CTAS новий стовпець під назвою one_year_sales_aggregate
зі значенням за замовчуванням як 0.0
типу даних double
додається і table_type
встановлений в ICEBERG
:
Виконайте наступний запит, щоб перевірити дані в таблиці Apache Iceberg із новим стовпцем one_year_sales_aggregate
значення як 0.0
:
Ми хочемо заповнити значення для нової функції one_year_sales_aggregate
у наборі даних, щоб отримати загальну суму покупки для кожного клієнта на основі їхніх покупок за минулий рік (максимальний рік у наборі даних). Видайте оператор запиту MERGE до таблиці Apache Iceberg за допомогою Athena для заповнення значень для one_year_sales_aggregate
функції:
Виконайте такий запит, щоб перевірити оновлене значення загальних витрат кожного клієнта за минулий рік:
Ми вирішили додати ще одну функцію до існуючої таблиці Apache Iceberg для обчислення та зберігання середньої суми покупки кожного клієнта за минулий рік. Видайте оператор запиту ALTER, щоб додати новий стовпець до наявної таблиці для функції one_year_sales_average
:
Перш ніж заповнювати значення цієї нової функції, ви можете встановити значення за умовчанням для функції one_year_sales_average
до 0.0
. Використовуючи ту саму таблицю Apache Iceberg на Athena, надішліть оператор запиту UPDATE, щоб заповнити значення для нової функції як 0.0
:
Виконайте наступний запит, щоб перевірити оновлене значення середніх витрат кожного клієнта за минулий рік 0.0
:
Тепер ми хочемо заповнити значення для нової функції one_year_sales_average
у наборі даних, щоб отримати середню суму покупки для кожного клієнта на основі їхніх покупок за минулий рік (максимальний рік у наборі даних). Видайте оператор запиту MERGE до існуючої таблиці Apache Iceberg на Athena за допомогою механізму Athena для заповнення значень для функції one_year_sales_average
:
Виконайте такий запит, щоб перевірити оновлені значення середніх витрат кожного клієнта:
Після додавання додаткових функцій даних до набору даних спеціалісти з обробки даних зазвичай переходять до навчання моделей машинного навчання та роблять висновки за допомогою Amazon Sagemaker або еквівалентного набору інструментів.
Висновок
У цьому дописі ми продемонстрували, як виконати розробку функцій за допомогою Athena з Apache Iceberg. Ми також продемонстрували використання запиту CTAS для створення таблиці Apache Iceberg на Athena з існуючого набору даних у форматі Apache Parquet, додавання нових функцій до існуючої таблиці Apache Iceberg на Athena за допомогою запиту ALTER і використання операторів запиту UPDATE і MERGE для оновлення значення ознак існуючих стовпців.
Ми рекомендуємо вам використовувати запити CTAS для швидкого й ефективного створення таблиць, а також використовувати оператор запиту MERGE для синхронізації таблиць за один крок, щоб спростити підготовку даних і завдання оновлення під час трансформації функцій за допомогою Athena з Apache Iceberg. Якщо у вас є коментарі чи відгуки, залиште їх у розділі коментарів.
Про авторів
Вівек Гаутам є архітектором даних зі спеціалізацією на озерах даних у AWS Professional Services. Він працює з корпоративними клієнтами, створюючи продукти даних, аналітичні платформи та рішення на AWS. Хоча Вівек не створює та не проектує сучасні платформи даних, він є ентузіастом їжі, який також любить досліджувати нові туристичні напрямки та ходити в походи.
Михайло Вайнштейн є архітектором рішень Amazon Web Services. Михайло співпрацює з клієнтами в галузі охорони здоров’я та біологічних наук, щоб створити рішення, які допоможуть покращити результати лікування пацієнтів. Михайло спеціалізується на послугах аналітики даних.
Нареш Гаутам є лідером аналітики даних і AI/ML в AWS з 20-річним досвідом, який із задоволенням допомагає клієнтам розробляти високодоступні, високопродуктивні та економічно ефективні рішення для аналізу даних і AI/ML, щоб надати клієнтам можливість приймати рішення на основі даних. . У вільний час захоплюється медитацією та кулінарією.
Харша Тадіпарті є спеціалізованим головним архітектором рішень аналітики в AWS. Йому подобається вирішувати складні проблеми клієнтів у базах даних і аналітиці та досягати успішних результатів. Поза роботою він любить проводити час із сім’єю, дивитися фільми та подорожувати, коли це можливо.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- EVM Фінанси. Уніфікований інтерфейс для децентралізованих фінансів. Доступ тут.
- Quantum Media Group. ІЧ/ПР посилений. Доступ тут.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- джерело: https://aws.amazon.com/blogs/big-data/accelerate-data-science-feature-engineering-on-transactional-data-lakes-using-amazon-athena-with-apache-iceberg/
- : має
- :є
- : ні
- :де
- $UP
- 10
- 100
- 12
- 17
- 20
- 20 роки
- 23
- 27
- 7
- a
- МЕНЮ
- прискорювати
- доступ
- виконано
- рахунки
- дії
- додавати
- доданий
- додати
- Додатковий
- адреса
- AI / ML
- Також
- хоча
- Amazon
- Амазонка Афіна
- Amazon SageMaker
- Amazon Web Services
- кількість
- an
- Аналітичний
- Аналітичний
- аналітика
- аналізувати
- Аналізуючи
- та
- Інший
- будь-який
- Apache
- Apache Spark
- ЕСТЬ
- AS
- At
- доступний
- середній
- уникнути
- AWS
- Професійні послуги AWS
- заснований
- BE
- оскільки
- було
- Переваги
- будувати
- Створюємо
- побудований
- by
- розрахований
- CAN
- можливості
- випадків
- класифікація
- хмара
- Колекції
- Колонка
- Колони
- об'єднувати
- коментарі
- загальний
- комплекс
- обчислення
- комп'ютер
- Комп'ютерне бачення
- конфігурація
- містить
- контекст
- конвертувати
- приготування
- копіювання
- Виправлення
- рентабельним
- створювати
- створений
- створення
- клієнт
- Клієнти
- дані
- Analytics даних
- Озеро даних
- наука про дані
- вчений даних
- керовані даними
- Database
- базами даних
- набори даних
- Дата
- вирішувати
- Прийняття рішень
- глибше
- дефолт
- надання
- постачає
- демонструвати
- продемонстрований
- проектування
- напрямки
- розподілений
- справи
- подвійний
- Падіння
- довговічність
- кожен
- легко
- ефективний
- продуктивно
- зусилля
- або
- елементи
- уповноважувати
- включіть
- заохочувати
- двигун
- Машинобудування
- Двигуни
- підвищена
- підприємство
- корпоративні клієнти
- ентузіаст
- Весь
- Еквівалент
- Ефір (ETH)
- існуючий
- досвід
- дослідити
- зовнішній
- false
- сім'я
- ШВИДКО
- швидше
- особливість
- риси
- зворотний зв'язок
- Файли
- Сфокусувати
- стежити
- після
- харчування
- для
- формат
- каркаси
- Безкоштовна
- від
- в цілому
- генерується
- отримати
- Go
- Group
- Hadoop
- Мати
- he
- охорона здоров'я
- допомога
- допомогу
- висока продуктивність
- дуже
- Походи
- його
- історично
- Вулик
- Як
- How To
- HTML
- HTTPS
- Ідентифікація
- ідентифікує
- if
- зображень
- удосконалювати
- in
- У тому числі
- Augmenter
- неефективний
- Інфраструктура
- Вставки
- розуміння
- замість
- інструкції
- інтерактивний
- в
- введені
- ізоляція
- питання
- IT
- JPG
- json
- маркування
- озеро
- мова
- великий
- останній
- макет
- лідер
- УЧИТЬСЯ
- вивчення
- Залишати
- життя
- Life Sciences
- Життєвий цикл
- МЕЖА
- місцевий
- розташування
- любить
- машина
- навчання за допомогою машини
- зробити
- РОБОТИ
- управляти
- управління
- управляє
- багато
- ринок
- відповідає
- Макс
- значущим
- Медитація
- згаданий
- Злиття
- мільйона
- відсутній
- ML
- модель
- Моделі
- сучасний
- змінювати
- більше
- кіно
- ім'я
- Названий
- народ
- Природний
- Природна мова
- Обробка природних мов
- Необхідність
- нужденних
- Нові
- Нова функція
- Нові можливості
- нещодавно
- немає
- номер
- of
- часто
- on
- ONE
- тільки
- відкрити
- з відкритим вихідним кодом
- операція
- операції
- or
- замовлень
- Інше
- наші
- Результати
- поза
- Минуле
- Платити
- виконувати
- продуктивність
- телефон
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- будь ласка
- положення
- це можливо
- пошта
- підготовка
- price
- Головний
- проблеми
- процес
- оброблена
- обробка
- Продукти
- професійний
- забезпечувати
- покупка
- Купівля
- цілей
- Python
- запити
- швидко
- Сировина
- необроблені дані
- Читати
- визнання
- запис
- облік
- зменшити
- звільнити
- вимагається
- результат
- огляд
- ROW
- прогін
- біг
- мудрець
- продажів
- то ж
- шкала
- наука
- НАУКИ
- вчений
- Вчені
- розділ
- Без сервера
- обслуговування
- Послуги
- комплект
- кілька
- показаний
- Шоу
- аналогічний
- простий
- спрощений
- спростити
- один
- So
- Рішення
- Розв’язування
- Джерела
- Іскритися
- спеціаліст
- спеціалізується
- мова
- Розпізнавання мови
- витрачати
- відпрацьований
- SQL
- standard
- Заява
- заяви
- Крок
- заходи
- зберігання
- зберігати
- зберігати
- раціоналізувати
- рядок
- успішний
- такі
- підтримка
- Опори
- Systems
- таблиця
- Завдання
- завдання
- Що
- Команда
- Злиття
- їх
- Їх
- потім
- Там.
- Ці
- це
- час
- подорож у часі
- до
- топ
- Усього:
- поїзд
- Навчання
- угода
- транзакційний
- перетворений
- перетворення
- подорожувати
- тип
- що лежить в основі
- розуміння
- Оновити
- оновлений
- Updates
- модернізація
- завантажено
- використання
- використання
- зазвичай
- ПЕРЕВІР
- Цінний
- значення
- Цінності
- різний
- перевірити
- версія
- дуже
- через
- Відео
- вид
- бачення
- хотіти
- було
- годинник
- we
- Web
- веб-сервіси
- були
- коли
- коли б ні
- який
- в той час як
- ВООЗ
- з
- без
- Work
- робочий
- Робоча група
- робочий
- працює
- б
- запис
- рік
- років
- ви
- вашу
- зефірнет
- Zip