Подготовьте данные с помощью агентов ИИ в лаборатории кода BigQuery.

1. Введение

Представьте, что вы можете быстрее и эффективнее подготавливать данные к анализу, не будучи экспертом в программировании. С функцией подготовки данных BigQuery это становится реальностью. Эта мощная функция упрощает ввод, преобразование и очистку данных, предоставляя подготовку данных в руки всех специалистов по работе с данными в вашей организации.

Готовы раскрыть секреты, скрытые в данных о вашей продукции?

Предварительные требования

  • Базовое понимание Google Cloud и консоли.
  • Базовое понимание SQL

Что вы узнаете

  • Как подготовка данных в BigQuery может очистить и преобразовать ваши исходные данные в полезную бизнес-аналитику, на реалистичном примере из индустрии моды и красоты.
  • Как запустить и запланировать подготовку данных для очищенных данных

Что вам понадобится

  • Аккаунт Google Cloud и проект Google Cloud
  • Веб-браузер, например Chrome.

2. Основные настройки и требования

Настройка среды для самостоятельного обучения

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

3. Прежде чем начать

Включить API

Для использования Gemini в BigQuery необходимо включить API Gemini для Google Cloud. Обычно этот шаг выполняет администратор сервиса или владелец проекта с разрешением IAM serviceusage.services.enable .

  1. Чтобы включить API Gemini для Google Cloud, перейдите на страницу Gemini для Google Cloud в Google Cloud Marketplace. Перейдите на страницу Gemini для Google Cloud.
  2. В окне выбора проекта выберите проект.
  3. Нажмите «Включить» . Страница обновится и отобразит статус «Включено» . Gemini в BigQuery теперь доступен в выбранном проекте Google Cloud всем пользователям, имеющим необходимые разрешения IAM.

Настройте роли и права доступа для разработки процессов подготовки данных.

  1. В разделе IAM и администрирование выберите IAM.

4477412d79f29e0b.png

  1. Выберите пользователя и нажмите на значок карандаша, чтобы «Изменить данные руководителя».

5eb558e04ad12362.png

Для использования функции подготовки данных BigQuery вам потребуются следующие роли и разрешения:

4. Поиск и подписка на демонстрационную версию «bq data preparation demo» в BigQuery Analytics Hub.

В этом уроке мы будем использовать bq data preparation demo . Это связанный набор данных в BigQuery Analytics Hub, из которого мы будем считывать данные.

Подготовка данных никогда не включает запись обратно в исходный файл, и мы попросим вас определить целевую таблицу для записи. Таблица, с которой мы будем работать в этом упражнении, содержит всего 1000 строк, чтобы минимизировать затраты, но подготовка данных выполняется на BigQuery и будет масштабироваться параллельно.

Выполните следующие шаги, чтобы найти связанный набор данных и подписаться на него:

  1. Для доступа к Analytics Hub : в консоли Google Cloud перейдите в раздел BigQuery.
  2. В меню навигации BigQuery в разделе «Управление» выберите «Центр аналитики».

6ddfac4dd863ca7b.png

  1. Поиск объявления: В интерфейсе центра аналитики нажмите «Поиск объявлений ».
  2. Введите в строку поиска bq data preparation demo и нажмите Enter.

7e0cb82b80174cdc.png

  1. Подпишитесь на рассылку: выберите bq data preparation demo из результатов поиска.
  2. На странице с подробной информацией о товаре нажмите кнопку «Подписаться» .
  3. Просмотрите все диалоговые окна подтверждения и при необходимости обновите проект/набор данных. Настройки по умолчанию должны быть правильными.

2ef0ac1e3557f2f9.png

  1. Доступ к набору данных в BigQuery: После успешной подписки наборы данных из списка будут связаны с вашим проектом BigQuery.

Вернуться в BigQuery Studio .

5. Изучите данные и запустите подготовку данных.

  1. Найдите набор данных и таблицу: на панели «Проводник» выберите свой проект, а затем найдите набор данных, который был включен в bq data preparation demo . Выберите таблицу stg_product .
  2. Открыть в режиме подготовки данных: Щелкните три вертикальные точки рядом с названием таблицы и выберите Open in Data Preparation .

Это откроет таблицу в интерфейсе подготовки данных, готовую к преобразованию ваших данных.

76ace3d4b5cfc2d0.png

Как вы можете видеть в предварительном просмотре данных ниже, у нас есть несколько задач по работе с данными, которые мы будем решать, в том числе:

  • В столбце «Цена» указаны как сумма, так и валюта, что затрудняет анализ.
  • В столбце «Товар» название товара и категория указаны вместе (разделены символом вертикальной черты |).

f4d93aa59a56447a.png

Сразу же Gemini анализирует ваши данные и предлагает несколько преобразований. В этом примере мы видим ряд рекомендаций . На следующих шагах мы применим те, которые нам необходимы.

fd4d14e4fa3c31c1.png

6. Работа с ценовым столбцом

Давайте разберемся со столбцом «Цена» . Как мы уже видели, он содержит как валюту, так и сумму. Наша цель — разделить их на два отдельных столбца: «Валюта» и «Сумма» .

Компания Gemini выделила несколько рекомендаций для рубрики «Цены».

  1. Найдите рекомендацию, содержащую примерно следующее:

Описание: "Это выражение удаляет начальный символ 'USD' из указанного поля"

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. Выберите «Предварительный просмотр»

c9327cfbd32247d6.png

  1. Выберите «Применить»

Далее, для столбца «Цена» преобразуем тип данных из строкового в числовой .

  1. Найдите рекомендацию, содержащую примерно следующее:

Описание: "Преобразует столбец Price из строкового типа в тип float64"

SAFE_CAST(Price AS float64)
  1. Нажмите «Применить».

Теперь в списке выполненных шагов должны отображаться три уже примененных шага.

d3359af47dce0c15.png

7. Работа со столбцом «Продукт».

В столбце «Товар» указаны как название товара, так и категория, разделённые вертикальной чертой (|).

Хотя мы могли бы снова использовать естественный язык, давайте рассмотрим еще одну мощную особенность Gemini.

Исправьте название продукта.

  1. Выделите часть записи о товаре, содержащую категорию, включая символ | ", и удалите её.

5171d598a8cb3a75.png

Близнецы умело распознают эту закономерность и предложат преобразование, которое следует применить ко всей колонке.

  1. Выберите «Редактировать».

b36cac918b4f30e9.png

Рекомендация Gemini абсолютно верна: она удаляет все, что находится после символа '|', эффективно изолируя название продукта.

Но на этот раз мы не хотим перезаписывать исходные данные.

  1. В раскрывающемся списке «Целевой столбец» выберите «Создать новый столбец».
  2. Задайте имя ProductName .

bda19e0e5e536ccd.png

  1. Предварительно просмотрите изменения, чтобы убедиться, что всё выглядит хорошо.
  2. Примените преобразование.

Извлечь категорию товара

Используя естественный язык, мы дадим указание Gemini извлечь слово после вертикальной черты (|) в столбце «Продукт». Это извлеченное значение будет перезаписано в существующий столбец под названием «Продукт».

  1. Нажмите Add Step , чтобы добавить новый шаг преобразования.

77944047e698494c.png

  1. Выберите Transformation из выпадающего меню.
  2. В поле запроса на естественном языке введите «извлечь слово после вертикальной черты (|) в столбце «Продукт»», затем нажмите Enter , чтобы сгенерировать SQL-запрос.

82efc2447a3210bd.png

  1. Оставьте столбец «Цель» пустым, указав значение «Продукт».
  2. Нажмите «Применить».

В результате преобразования должны получиться следующие результаты.

d741c66d9e0e8e00.png

8. Объединение данных для их обогащения.

Часто возникает необходимость обогатить данные информацией из других источников. В нашем примере мы объединим данные о продукте с расширенными атрибутами продукта, stg_extended_product , из сторонней таблицы. Эта таблица содержит такие сведения, как бренд и дата выпуска.

  1. Нажмите « Add Step
  2. Выберите Join
  3. Перейдите к таблице stg_extended_product .

dca14451c3fbc7f0.png

В BigQuery Gemini автоматически определил ключ соединения productid и выполнил квалификацию левой и правой частей, поскольку имена ключей идентичны.

Примечание: Убедитесь, что в поле описания указано «Объединение по productid». Если оно содержит дополнительные ключи объединения, замените поле описания на «Объединение по productid» и выберите кнопку «Сгенерировать» в поле описания, чтобы повторно сгенерировать выражение объединения со следующим условием L.

productid

= Р.

productid . 4d6dbfea28772f34.png

  1. При желании выберите «Предварительный просмотр», чтобы просмотреть результаты.
  2. Нажмите Apply .

Очистка расширенных атрибутов

Несмотря на успешное объединение, данные расширенных атрибутов нуждаются в некоторой очистке. В столбце LaunchDate наблюдаются несогласованные форматы дат, а в столбце Brand присутствуют пропущенные значения.

Начнём с рассмотрения столбца LaunchDate .

f9b570d7c2d3a98d.png

Перед выполнением каких-либо преобразований ознакомьтесь с рекомендациями Gemini.

  1. Щёлкните по названию столбца LaunchDate . Вы увидите несколько сгенерированных рекомендаций, похожих на те, что показаны на изображении ниже.

62b6e6027a46ba75.png

  1. Если вы видите рекомендацию со следующим SQL-запросом, примените её и пропустите следующие шаги.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Если вы не нашли рекомендацию, соответствующую приведенному выше SQL-запросу, нажмите Add Step .
  2. Выберите Transformation .
  3. В поле SQL введите следующее:
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Установите Target Columns в LaunchDate .
  2. Нажмите Apply .

Теперь столбец LaunchDate имеет единый формат даты.

ccf34aa05754a834.png

9. Добавление целевой таблицы

Наш набор данных теперь очищен и готов к загрузке в таблицу измерений в нашем хранилище данных.

  1. Нажмите ADD STEP .
  2. Выберите Destination .
  3. Укажите необходимые параметры: Набор данных: bq_data_preparation_demo Таблица: DimProduct
  4. Нажмите « Save ».

79fdc3666a3a21b9.png

Мы уже поработали с вкладками «Данные» и «Схема». В дополнение к ним, BigQuery Data Preparation предоставляет представление «График», которое визуально отображает последовательность шагов преобразования в вашем конвейере.

95e64d8152228f7b.png

10. Бонус A: Обработка столбца «Производитель» и создание таблицы ошибок.

Мы также обнаружили пустые значения в столбце Manufacturer . Для этих записей мы хотим провести проверку качества данных и переместить их в таблицу ошибок для дальнейшего анализа.

Создайте таблицу ошибок.

  1. Нажмите кнопку More рядом с заголовком stg_product data preparation .
  2. В разделе Setting выберите Error Table .
  3. Установите флажок Enable error table и настройте параметры следующим образом:
  • Набор данных: Select bq_data_preparation_demo
  • Таблица: Введите err_dataprep
  • В разделе Define duration for keeping errors выберите 30 days (default)
  1. Нажмите « Save ».

adb5722f05c1b205.png

Настройте проверку данных в столбце «Производитель».

  1. Выберите столбец «Производитель».
  2. Вероятно, Gemini уже определила подходящую трансформацию. Найдите рекомендацию, которая сохраняет только те строки, где поле «Производитель» не пустое. SQL-запрос будет выглядеть примерно так:
Manufacturer IS NOT NULL

2. Нажмите кнопку «Редактировать» рядом с этой рекомендацией, чтобы просмотреть её.

4749b551a03d8193.png

  1. Если флажок не установлен, установите флажок «Строки, не прошедшие проверку, переносятся в таблицу ошибок».
  2. Нажмите Apply .

В любой момент вы можете просмотреть, изменить или удалить примененные преобразования, нажав кнопку «Примененные шаги».

15df6caacbdd6a69.png

Удалите избыточный столбец ProductID_1.

Теперь можно удалить столбец ProductID_1, в котором дублируется ProductID из объединенной таблицы.

  1. Перейдите на вкладку Schema .
  2. Нажмите на три точки рядом со столбцом ProductID_1 .
  3. Нажмите на Drop .

Теперь мы готовы запустить задачу подготовки данных и проверить весь наш конвейер обработки данных. Как только мы будем удовлетворены результатами, мы можем запланировать автоматическое выполнение этой задачи.

  1. Прежде чем покинуть окно подготовки данных, сохраните ваши подготовительные действия. Рядом с заголовком stg_product data preparation вы увидите кнопку Save ». Нажмите на эту кнопку, чтобы сохранить.

11. Очистка окружающей среды

  • Удалите stg_product data preparation
  • Удалите bq data preparation demo

12. Поздравляем!

Поздравляем с завершением практического занятия!

Что мы рассмотрели

  • Настройка подготовки данных
  • Открытие таблиц и навигация по подготовке данных
  • Разделение столбцов с числовыми данными и данными, описывающими единицы измерения.
  • Стандартизация форматов дат
  • Выполнение подготовки данных