Анализируйте и визуализируйте данные о транзакциях по кредитным картам в Bigtable с помощью BigQuery и Looker.

1. Обзор

В этом практическом занятии вы узнаете, как анализировать поток данных о транзакциях по кредитным картам, записываемых в Bigtable. Вы научитесь использовать шаблон Bigtable ChangeStreams to BigQuery для экспорта данных в режиме реального времени. Затем вы увидите методы запроса журнала изменений и способы переформатирования данных для создания панели мониторинга с помощью Looker.

Данный практический семинар предназначен для технически подкованных пользователей, знакомых с Bigtable, использованием инструментов командной строки и сервисами потоковой передачи событий.

426dc59200875a20.png

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

  • Создайте таблицу Bigtable с включенной функцией отслеживания изменений.
  • Создайте набор данных BigQuery.
  • Разверните шаблон Dataflow Bigtable change streams to BigQuery.
  • Выполните запрос к потоку событий в BigQuery.
  • Визуализируйте поток событий с помощью Looker.

На этой диаграмме показана архитектура системы, которую вы будете развертывать.

336e940307d0e0a.png

2. Настройка проекта

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .

eb5309715175de69.png

  1. Убедитесь, что для вашего проекта в Google Cloud включена функция выставления счетов .
  2. Перейдите на эту предварительно заполненную страницу включения API , чтобы активировать необходимые API для Dataflow, Bigtable, BigQuery, Looker и Cloud Storage.

3. Создайте набор данных BigQuery.

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

  1. В консоли Google Cloud перейдите на страницу BigQuery .
  2. В панели «Проводник» найдите название своего проекта и щелкните по значку меню (три вертикальные точки рядом с идентификатором проекта).
  3. Нажмите «Создать набор данных» .

122bc1a411b8dc63.png

  1. На панели «Создать набор данных» выполните следующие действия:
  • В поле "Идентификатор набора данных" введите bigtable_bigquery_tutorial .
  • Остальные настройки по умолчанию оставьте без изменений.
  • Нажмите «Создать набор данных» .

4. Создайте таблицу Bigtable с включенной функцией отслеживания изменений.

Bigtable — это NoSQL-база данных с низкой задержкой и горизонтальной масштабируемостью, и одним из распространенных вариантов её использования является обработка финансовых данных. Здесь вы создадите таблицу для хранения транзакций по кредитным картам. Bigtable может обрабатывать большое количество операций записи транзакций по всему миру и даже использовать эти данные для обнаружения мошенничества в режиме реального времени .

  1. В консоли Google Cloud перейдите на страницу "Экземпляры Bigtable" .
  2. Щелкните идентификатор экземпляра, который вы используете в этом руководстве. Если у вас нет доступного экземпляра, создайте экземпляр с именем по вашему выбору в ближайшем к вам регионе. Для всего остального можно использовать конфигурации по умолчанию.

a2e8de7b66dc42e.png

  1. В левой панели навигации нажмите «Таблицы» .
  2. Нажмите «Создать таблицу» .

9c267c00f93747c4.png

  • Назовите таблицу retail-database .
  • Добавьте семейство столбцов с именем " transactions .
  • Выберите «Включить поток изменений» .
  • Leave the garbage collection policy and retention period with their default values.
  • Нажмите «Создать» .

696cd1399c354816.png

5. Инициализируйте конвейер обработки данных для захвата потока изменений.

Производительность Bigtable оптимальна для точечного чтения и сканирования диапазонов строк, но аналитика по всей таблице может создавать нагрузку на серверную мощность и ресурсы ЦП. BigQuery отлично подходит для аналитики по всей таблице, поэтому здесь вам понадобится решение с двойной записью. Это означает, что вы будете записывать данные как в Bigtable, так и в BigQuery, что является распространенным методом. Это не потребует дополнительного программирования, поскольку вы будете использовать шаблон Bigtable change streams to BigQuery Dataflow: когда данные записываются в Bigtable, конвейер записывает запись об изменении в BigQuery. После того, как данные окажутся в BigQuery, вы сможете выполнять оптимизированные запросы ко всему набору данных, которые не повлияют на производительность обслуживания данных в Bigtable.

f4cd9d8faf10ce77.png

  1. На странице Bigtable Tables найдите свою таблицу retail-database .
  2. В столбце «Изменить поток» нажмите «Подключиться» .
  3. В диалоговом окне «Подключиться к Dataflow» выберите BigQuery .
  4. Нажмите «Создать задание Dataflow» .
  5. В предоставленных полях для параметров введите значения ваших параметров. Указывать какие-либо необязательные параметры не требуется.
  • Установите идентификатор профиля приложения Cloud Bigtable на default .
  • Установите набор данных BigQuery на bigtable_bigquery_tutorial .
  1. Нажмите «Запустить задание» .
  2. Дождитесь, пока статус задания не изменится на «Запуск» или «Выполнение», прежде чем продолжить. После постановки задания в очередь это может занять около пяти минут. Страница обновится автоматически. Этот шаблон создает потоковое задание, поэтому он может непрерывно обрабатывать новые данные, записываемые в Bigtable, до тех пор, пока задание не будет остановлено вручную.

a04908b37c6fe96b.png

6. Запишите данные в Bigtable.

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

  1. Откройте Cloud Shell, нажав кнопку в правом верхнем углу консоли облака.

f6395329b04ecb64.png

  1. Если появится запрос, подтвердите авторизацию Cloud Shell.
  2. Загрузите набор данных.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Настройте переменные среды в командной строке.
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Используйте интерфейс командной строки cbt для записи ряда транзакций по кредитным картам в таблицу retail-database .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

В результате будет показано следующее

Done importing 10000 rows.

7. Просмотрите журналы изменений в BigQuery.

  1. В консоли Google Cloud перейдите на страницу BigQuery .
  2. В панели «Проводник» разверните свой проект и набор данных bigtable_bigquery_tutorial .
  3. Щелкните таблицу retail-database_changelog . Возможно, потребуется обновить набор данных, если таблица отсутствует.
  4. Чтобы просмотреть список изменений, нажмите «Предварительный просмотр» .

aa97ff01f944832.png

Попробуйте выполнить несколько запросов.

Теперь вы можете выполнить несколько запросов к этому набору данных, чтобы получить некоторые аналитические выводы. SQL-запросы приведены здесь, но в документации BigQuery по запросу к журналу изменений Bigtable содержится более подробная информация о том, как писать запросы к данным журнала изменений.

Найдите одну транзакцию.

Используйте следующий запрос для поиска данных по одной конкретной транзакции.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

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

Найдите количество покупок в каждой категории.

Используйте следующий запрос для подсчета количества покупок по каждой категории.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

Переформатируйте данные

Чтобы преобразовать каждую транзакцию в одну строку таблицы BigQuery, вам нужно будет выполнить сводную операцию с данными и сохранить результат в новую таблицу. Это более удобный формат для выполнения запросов.

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

Create a Looker dashboard

  1. Нажмите «Перейти к просмотру» , чтобы перейти на страницу с подробной информацией о новом представлении.
  2. Нажмите «Экспорт» .
  3. Выберите «Исследовать с помощью Looker Studio» .

bb45482e9101b0f.png

8. Добавьте диаграммы на панель управления.

Теперь вы можете представить информацию в виде графиков, чтобы ее было легче воспринимать и публиковать в виде отчета. На вашу панель мониторинга будут добавлены три диаграммы:

  • Суммы транзакций с течением времени
  • Общее количество транзакций по каждому продавцу
  • Процент транзакций по категориям

426dc59200875a20.png

Настройте страницу

  1. Чтобы удалить каждый существующий график, щелкните по нему и нажмите клавишу Delete.
  2. Чтобы изменить данные графика, выберите пункт «Свойства» в правой части страницы.

Добавьте диаграммы

Суммы транзакций с течением времени

  1. Нажмите «Добавить диаграмму» и создайте диаграмму временного ряда.
  2. Установите параметр "Dimension" равным transaction_date .
  1. Установите метрику на sales_dollars .

372bdf2a2bcdb817.png

Общее количество транзакций по каждому продавцу

  1. Нажмите «Добавить диаграмму» и создайте таблицу.
  2. Установите параметр merchant .
  3. Установите метрику на sales_dollars

Процент транзакций по категориям

  1. Нажмите «Добавить диаграмму» и создайте круговую диаграмму.
  2. Установите параметр category .
  3. Установите метрику на sales_dollars

Отслеживайте изменения в режиме реального времени.

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

  1. Вернитесь в свою оболочку Cloud Shell.
  2. Загрузите и запишите второй набор данных.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. Вернитесь на панель управления Looker и обновите данные с помощью комбинации клавиш Ctrl+Shift+E или нажмите «Обновить данные» в меню «Вид» . Теперь на графиках должны отображаться данные за январь 2024 года.

Помимо этого, вы можете создавать множество других вариантов графиков и метрик. Подробнее читайте в документации Looker .

9. Уборка

Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, либо удалите проект, содержащий эти ресурсы, либо сохраните проект и удалите отдельные ресурсы.

Остановить конвейер обработки изменений

  1. В консоли Google Cloud перейдите на страницу заданий Dataflow .
  2. Выберите свою задачу по организации трансляции из списка задач.
  3. В меню навигации нажмите «Стоп» .
  4. В диалоговом окне «Остановить задание» выберите «Отмена» , а затем нажмите «Остановить задание» .

Удалить ресурсы Bigtable

Если вы создали экземпляр Bigtable для этого урока, вы можете удалить его или очистить созданную вами таблицу.

  1. В консоли Google Cloud перейдите на страницу "Экземпляры Bigtable" .
  2. Щелкните по идентификатору экземпляра, который вы используете в этом руководстве.
  3. В левой панели навигации нажмите «Таблицы» .
  4. Найдите таблицу retail-database .
  5. Нажмите «Редактировать» .
  6. Очистить Включить изменение потока .
  7. Нажмите « Сохранить ».
  8. Откройте меню переполнения для таблицы.
  9. Нажмите «Удалить» и введите название таблицы для подтверждения.
  10. (Необязательно) Удалите экземпляр, если вы создали новый для этого урока.

Удалите набор данных BigQuery.

  1. В консоли Google Cloud перейдите на страницу BigQuery .
  2. В панели «Проводник» найдите набор данных bigtable_bigquery_tutorial и щелкните по нему.
  3. Нажмите кнопку «Удалить» , введите delete, а затем нажмите кнопку «Удалить» для подтверждения.

Что дальше?