1. Введение
Представьте себе, что вы можете быстрее и эффективнее подготовить данные для анализа, не будучи экспертом по программированию. Благодаря подготовке данных BigQuery это стало реальностью. Эта мощная функция упрощает прием, преобразование и очистку данных, предоставляя подготовку данных всем специалистам по работе с данными в вашей организации.
Готовы раскрыть секреты, скрытые в данных вашего продукта?
Предварительные условия
- Базовое понимание Google Cloud, консоли.
 - Базовое понимание SQL
 
Что вы узнаете
- Как подготовка данных BigQuery может очистить и превратить ваши необработанные данные в полезную бизнес-аналитику на реалистичном примере из индустрии моды и красоты.
 - Как запустить и запланировать подготовку очищенных данных
 
Что вам понадобится
- Учетная запись Google Cloud и проект Google Cloud
 - Веб-браузер, например Chrome
 
2. Базовая настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
 



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

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

Чтобы использовать подготовку данных BigQuery, вам потребуются следующие роли и разрешения:
- Редактор данных BigQuery (roles/bigquery.dataEditor)
 - Потребитель использования службы (roles/serviceusage.serviceUsageConsumer)
 
4. Поиск и подписка на «демо-версию подготовки данных bq» в BigQuery Analytics Hub.
 Для этого урока мы будем использовать bq data preparation demo . Это связанный набор данных в BigQuery Analytics Hub, из которого мы будем читать.
При подготовке данных никогда не производится запись обратно в источник, и мы попросим вас определить целевую таблицу для записи. Таблица, с которой мы будем работать в этом упражнении, содержит всего 1000 строк, чтобы свести затраты к минимуму, но подготовка данных выполняется в BigQuery и будет масштабироваться параллельно.
Выполните следующие действия, чтобы найти связанный набор данных и подписаться на него:
- Доступ к Analytics Hub : в Google Cloud Console перейдите к BigQuery.
 - В меню навигации BigQuery в разделе «Управление» выберите «Центр аналитики».
 

- Найдите объявление: в пользовательском интерфейсе Analytics Hub нажмите «Поиск объявлений ».
 -  Введите 
bq data preparation demoв строку поиска и нажмите Enter. 

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

- Доступ к набору данных в BigQuery. После успешной подписки наборы данных в списке будут связаны с вашим проектом BigQuery.
 
Вернитесь в BigQuery Studio .
5. Изучите данные и начните подготовку данных.
-  Найдите набор данных и таблицу. На панели «Проводник» выберите свой проект, а затем найдите набор данных, который был включен в 
bq data preparation demo. Выберите таблицуstg_product. -  Открыть при подготовке данных. Нажмите три вертикальные точки рядом с именем таблицы и выберите 
Open in Data Preparation. 
Откроется таблица в интерфейсе подготовки данных, готовая к преобразованию данных.

Как вы можете видеть в предварительном просмотре данных ниже, у нас есть некоторые проблемы с данными, которые мы решим, в том числе:
- Столбец цены содержит как сумму, так и валюту, что затрудняет анализ.
 - В столбце продукта сочетаются название продукта и категория (разделенные символом вертикальной черты |).
 

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

6. Работа со столбцом цен
Давайте займемся столбцом «Цена» . Как мы видели, он содержит как валюту, так и сумму. Наша цель — разделить их на два отдельных столбца: Валюта и Сумма .
Gemini определила несколько рекомендаций для столбца «Цена».
- Найдите рекомендацию, в которой говорится что-то похожее на:
 
Описание: «Это выражение удаляет начальную букву «USD» из указанного поля».
REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
- Выберите предварительный просмотр
 

- Выберите Применить.
 
Далее, что касается столбца «Цена» , давайте преобразуем тип данных из STRING в NUMERIC .
- Найдите рекомендацию, в которой говорится что-то похожее на:
 
Описание: «Преобразует столбец Price из типа string в тип float64».
SAFE_CAST(Price AS float64)
- Выберите Применить.
 
Теперь вы должны увидеть три выполненных шага в своем списке шагов.

7. Обработка столбца продукта
Столбец продукта содержит название продукта и категорию, разделенные вертикальной чертой (|).
Хотя мы снова можем использовать естественный язык, давайте рассмотрим еще одну мощную функцию Gemini.
Очистите название продукта
-  Выберите часть категории записи продукта, включая 
|символ и удалите его. 

Близнецы разумно распознают этот шаблон и предложат преобразование, применимое ко всему столбцу.
- Выберите «Редактировать».
 

Рекомендация Gemini точна: она удаляет все после символа «|», эффективно изолируя название продукта.
Но на этот раз мы не хотим перезаписывать исходные данные.
- В раскрывающемся списке целевого столбца выберите «Создать новый столбец».
 - Установите имя ProductName .
 

- Просмотрите изменения, чтобы убедиться, что все выглядит хорошо.
 - Примените Трансформацию.
 
Извлеките категорию продукта
Используя естественный язык, мы поручим Gemini извлечь слово после вертикальной черты (|) в столбце «Продукт». Это извлеченное значение будет перезаписано в существующий столбец с названием «Продукт».
-  Нажмите 
Add Step, чтобы добавить новый шаг преобразования. 

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

- Оставьте целевой столбец «Продукт».
 - Нажмите Применить.
 
Преобразование должно дать следующие результаты.

8. Присоединение для обогащения данных
 Часто вам захочется дополнить свои данные информацией из других источников. В нашем примере мы объединим данные о наших продуктах с расширенными атрибутами продукта stg_extended_product из сторонней таблицы. В этой таблице указаны такие данные, как марка и дата запуска.
-  Нажмите « 
Add Step -  Выберите 
Join -  Перейдите к таблице 
stg_extended_product. 

Gemini в BigQuery автоматически выбрал для нас ключ соединения Productid и определил левую и правую части, поскольку имя ключа идентично.
Примечание. Убедитесь, что в поле описания указано «Присоединиться по идентификатору продукта». Если оно включает дополнительные ключи соединения, перезапишите поле описания на «Присоединиться по идентификатору продукта» и нажмите кнопку «Создать» в поле описания, чтобы повторно сгенерировать выражение соединения со следующим условием L.
 productid
= Р.
 productid . 
- При необходимости выберите «Предварительный просмотр», чтобы просмотреть результаты.
 -  Нажмите 
Apply. 
Очистка расширенных атрибутов
 Хотя объединение прошло успешно, данные расширенных атрибутов требуют некоторой очистки. Столбец LaunchDate имеет несовместимые форматы даты, а столбец Brand содержит некоторые пропущенные значения.
 Начнем с рассмотрения столбца LaunchDate . 

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

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

9. Добавление целевой таблицы
Теперь наш набор данных очищен и готов к загрузке в таблицу измерений в нашем хранилище данных.
-  Нажмите 
ADD STEP. -  Выберите 
Destination. -  Заполните необходимые параметры: Набор данных: 
bq_data_preparation_demoТаблица:DimProduct -  Нажмите 
Save. 

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

10. Бонус А: обработка столбца «Производитель» и создание таблицы ошибок.
 Мы также обнаружили пустые значения в столбце Manufacturer . Для этих записей мы хотим реализовать проверку качества данных и переместить их в таблицу ошибок для дальнейшего просмотра.
Создайте таблицу ошибок
-  Нажмите кнопку 
Moreрядом с заголовкомstg_product data preparation. -  В разделе 
SettingвыберитеError Table. -  Установите флажок 
Enable error table, настройте параметры следующим образом: 
-  Набор данных: выберите 
bq_data_preparation_demo -  Таблица: Введите 
err_dataprep -  В разделе 
Define duration for keeping errorsвыберите30 days (default) 
-  Нажмите 
Save. 

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

- Установите флажок «Строки, не прошедшие проверку, переходят в таблицу ошибок», если он не установлен.
 -  Нажмите 
Apply. 
В любой момент вы можете просмотреть, изменить или удалить примененные преобразования, нажав кнопку «Примененные шаги».

Очистите лишний столбец ProductID_1.
Столбец ProductID_1, который дублирует ProductID из нашей объединенной таблицы, теперь можно удалить.
-  Перейдите на вкладку 
Schema -  Нажмите на три точки рядом со столбцом 
ProductID_1. -  Нажмите 
Drop. 
Теперь мы готовы запустить задание по подготовке данных и проверить весь наш конвейер. Как только мы будем удовлетворены результатами, мы можем запланировать автоматический запуск задания.
-  Прежде чем выйти из режима подготовки данных, сохраните приготовления. Рядом с заголовком 
stg_product data preparationвы должны увидеть кнопкуSave. Нажмите кнопку, чтобы сохранить. 
11. Очистите окружающую среду
-  Удалите 
stg_product data preparation -  Удалите 
bq data preparation demo 
12. Поздравления
Поздравляем с завершением работы над кодом.
Что мы рассмотрели
- Настройка подготовки данных
 - Открытие таблиц и навигация по подготовке данных
 - Разделение столбцов с числовыми данными и данными дескриптора единицы измерения
 - Стандартизация форматов дат
 - Выполнение подготовки данных