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

1. Введение

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

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

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

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

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

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

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

  • Учетная запись Google Cloud и проект Google Cloud
  • Веб-браузер, например Chrome

2. Базовая настройка и требования

Самостоятельная настройка среды

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

Включить API

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

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

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

  1. В IAM и Admin выберите IAM.

4477412d79f29e0b.png

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

5eb558e04ad12362.png

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

4. Поиск и подписка на «демо-версию подготовки данных bq» в BigQuery Analytics Hub.

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

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

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

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

6ddfac4dd863ca7b.png

  1. Найдите объявление: в пользовательском интерфейсе Analytics Hub нажмите «Поиск объявлений ».
  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. Выберите Применить.

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

  1. Найдите рекомендацию, в которой говорится что-то похожее на:

Описание: «Преобразует столбец Price из типа string в тип 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. В поле подсказки на естественном языке введите «извлечь слово после вертикальной черты (|) в столбце «Продукт». затем нажмите «Return» , чтобы сгенерировать SQL.

82efc2447a3210bd.png

  1. Оставьте целевой столбец «Продукт».
  2. Нажмите Применить.

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

d741c66d9e0e8e00.png

8. Присоединение для обогащения данных

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

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

dca14451c3fbc7f0.png

Gemini в BigQuery автоматически выбрал для нас ключ соединения Productid и определил левую и правую части, поскольку имя ключа идентично.

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

productid

= Р.

productid . 4d6dbfea28772f34.png

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

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

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

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

f9b570d7c2d3a98d.png

Прежде чем создавать какие-либо преобразования, ознакомьтесь с рекомендациями Близнецов.

  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 предоставляет представление «График», которое визуально отображает последовательность шагов преобразования в вашем конвейере.

95e64d8152228f7b.png

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

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

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

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

adb5722f05c1b205.png

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

  1. Выберите столбец Производитель.
  2. Близнецы, скорее всего, предвидят соответствующую трансформацию. Найдите рекомендацию, в которой сохраняются только те строки, в которых поле «Производитель» не пусто. Он будет иметь 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. Поздравления

Поздравляем с завершением работы над кодом.

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

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