TL;DR: SageMaker Canvas представил более 40 источников данных, включая Amazon Athena. Athena можно использовать для запросов к файлам паркета, хранящимся в Amazon S3, — как визуально, так и с помощью SQL-запроса. В этом сообщении блога мы покажем, как запрашивать файлы Parquet в корзине Amazon S3, импортировать набор данных в приложение Canvas, чтобы затем использовать его в любой рабочей нагрузке машинного обучения.
Архитектура
В этой записи блога я покажу, как использовать Amazon Athena в качестве одного из новых источников данных в Amazon SageMaker Canvas для выполнения запросов к файлам Parquet, хранящимся в озере данных.
Обратите внимание, что в текущей реализации первоначальная настройка каталога данных AWS Glue и AWS Glue Crawler — это однократная операция. Однако можно изменить реализацию, включив в нее триггер, запускающий сканер по расписанию или при загрузке нового файла Parquet в Amazon S3. Чтобы узнать, как это сделать, перейдите к Документации по AWS Glue Trigger. На данный момент, если необходимо снова запустить Glue Crawler, это нужно сделать вручную в консоли AWS Glue.
Администратор облака: Настройка Glue Crawler
Облачный администратор, который хочет создать Glue Crawler и Glue Data Catalog, должен выполнить следующие шаги:
- Загрузите файлы Parquet в Amazon S3 (в нашем случае мы будем использовать общедоступный набор данных Amazon Reviews dataset — доступен по адресу s3://amazon-reviews-pds/parquet/)
- Перейдите в консоль AWS Glue и создайте Crawler.
- Добавьте вышеуказанное ведро S3 в качестве источника данных.
4. Создайте новую роль IAM
5. Создайте новую базу данных, в которой будут храниться эти функции, нажав «Добавить базу данных» и указав как имя таблицы, так и префикс имени таблицы.
6. Настройте расписание сканирования по желанию, в этом случае оставьте «по запросу».
7. Просмотрите и создайте сканер
8. После создания вы можете запустить сканер, который заполнит базу данных.
9. (необязательно) Перейдите в Amazon Athena, чтобы протестировать запросы к вашему набору данных.
Теперь мы готовы перейти к SageMaker Canvas и использовать набор данных, доступный через Athena!
Бизнес-аналитик: запрос данных с помощью Athena из SageMaker Canvas и обучение модели
Теперь, когда у нас есть набор данных, готовый к запросу, давайте перейдем к SageMaker Canvas. Первый шаг — перейти на вкладку «Наборы данных» и импортировать новый набор данных, который мы назовем «Amazon Reviews».
Измените источник данных на Athena, затем перетащите только что созданную таблицу с левой стороны страницы на большое пространство справа. В моем случае это называется amzn_reviews_parquet
. Запишите это имя, оно понадобится вам на следующем шаге.
Когда мы перетаскиваем таблицу в правую часть экрана, она заполняется полем, показывающим, какую таблицу мы планируем импортировать, а нижняя часть экрана заполняется предварительным просмотром данных, которые будут импортированы. По умолчанию Canvas импортирует каждую строку и каждый столбец вашего набора данных.
Чтобы настроить импортированный набор данных, мы можем нажать «Редактировать в SQL» и предоставить собственный запрос Athena. Для целей этого поста этот запрос будет выбирать случайную выборку из 300 строк для каждого из 25 случайно выбранных значений столбца «product_category» из таблицы Glue и включать только «marketplace», «product_title», и «product_category» в выходных данных.
SELECT "marketplace", "product_title", "product_category" FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY "product_category" ORDER BY RANDOM()) AS rn FROM "AwsDataCatalog"."[INSERT-YOUR-DATABASE-NAME]"."[INSERT-YOUR-TABLE-NAME]" WHERE "product_category" IN ( SELECT "product_category" FROM "AwsDataCatalog"."[INSERT-YOUR-DATABASE-NAME]"."[INSERT-YOUR-TABLE-NAME]" GROUP BY "product_category" ORDER BY RANDOM() LIMIT 25 ) ) subquery WHERE subquery.rn <= 300;
Не забудьте заменить [INSERT-YOUR-DATABASE-NAME] и [INSERT-YOUR-TABLE-NAME] именем, которое вы дали своей таблице Glue. Если вы запустите его без изменения имен или допустили ошибку, нажмите «Отмена» в нижней части экрана и снова запустите процесс импорта набора данных.
Нажмите «Выполнить SQL», и результат будет следующим:
Теперь вы можете импортировать набор данных, дав ему имя, и он будет готов к использованию! Если вы хотите обучить модель на основе только что созданного нами набора данных, вы можете создать модель обработки естественного языка, которая предсказывает категорию продукта с учетом описания продукта.
Когда вы закончите использовать SageMaker Canvas, не забудьте выйти из приложения, чтобы не нести дополнительные расходы! Перейдите к документации Выход из Amazon SageMaker Canvas.
Заключение
В этом сообщении блога мы создали Glue Crawler для создания каталога данных для файлов, хранящихся в Amazon S3, в формате Parquet. Затем мы использовали новый источник данных Athena в Amazon SageMaker Canvas для запроса этого каталога данных и создания подмножества набора данных Amazon Reviews. В качестве следующего шага вы можете использовать извлеченный набор данных для обучения модели НЛП (текстовый анализ) или в качестве обычного табличного набора данных (прогностический анализ). Чтобы узнать больше о том, как обучить модель в SageMaker Canvas, перейдите к разделу Использование пользовательских моделей в документации SageMaker Canvas.
Хотите узнать больше об AWS, No-Code ML и Generative AI? Не забудьте подписаться на меня в Medium и LinkedIn!