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. Поздравления
Поздравляем с завершением работы над кодом.
Что мы рассмотрели
- Настройка подготовки данных
- Открытие таблиц и навигация по подготовке данных
- Разделение столбцов с числовыми данными и данными дескриптора единицы измерения
- Стандартизация форматов дат
- Выполнение подготовки данных