1. Обзор
В этой кодовой лаборатории вы проведете анализ потока данных о транзакциях по кредитным картам, записываемых в Bigtable. Вы узнаете, как использовать потоки изменений Bigtable в шаблоне BigQuery для экспорта данных в режиме реального времени. Затем вы познакомитесь с методами запроса журнала потока изменений и переформатирования данных для создания информационной панели с помощью Looker.
Эта лаборатория кода предназначена для технических пользователей, знакомых с Bigtable, использующих инструменты командной строки и службы потоковой передачи событий.
В этой кодовой лаборатории показано, как сделать следующее:
- Создайте таблицу Bigtable с включенным потоком изменений.
- Создайте набор данных BigQuery.
- Разверните
Bigtable change streams to BigQuery.
- Запросите поток событий в BigQuery.
- Визуализируйте поток событий с помощью Looker.
На этой диаграмме показана архитектура системы, которую вы будете развертывать.
2. Настройка проекта
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
- Убедитесь, что для вашего проекта Google Cloud включена оплата .
- Посетите эту предварительно заполненную страницу включения API , чтобы включить необходимые API для Dataflow, Bigtable, BigQuery, Looker и Cloud Storage.
3. Создайте набор данных BigQuery.
Вы будете анализировать данные с помощью BigQuery позже в лаборатории кода. Следуйте этим инструкциям, чтобы создать набор данных для выходных данных вашего конвейера данных.
- В консоли Google Cloud перейдите на страницу BigQuery .
- На панели «Проводник» найдите имя своего проекта и щелкните меню переполнения (три вертикальные точки рядом с идентификатором проекта).
- Нажмите Создать набор данных .
- На панели «Создать набор данных» выполните следующие действия:
- В качестве идентификатора набора данных введите
bigtable_bigquery_tutorial
. - Остальные настройки по умолчанию оставьте такими, какие они есть.
- Нажмите Создать набор данных .
4. Создайте таблицу Bigtable с включенным потоком изменений.
Bigtable — это горизонтально масштабируемая служба баз данных NoSQL с малой задержкой, и одним из распространенных вариантов ее использования является обслуживание финансовых данных. Здесь вы собираетесь создать таблицу, в которой будут храниться транзакции по кредитным картам. Bigtable может обрабатывать записи транзакций с высокой пропускной способностью по всему миру и даже использовать эти данные для обнаружения мошенничества в режиме реального времени .
- В консоли Google Cloud перейдите на страницу Bigtable Instances .
- Щелкните идентификатор экземпляра, который вы используете для этого руководства. Если у вас нет доступного экземпляра, создайте экземпляр с выбранным вами именем в ближайшем к вам регионе. Для всего остального вы можете использовать конфигурации по умолчанию.
- На левой панели навигации нажмите Таблицы .
- Нажмите Создать таблицу .
- Назовите таблицу
retail-database
. - Добавьте семейство столбцов с именем
transactions
. - Выберите «Включить поток изменений» .
- Оставьте для политики сбора мусора и периода хранения значения по умолчанию.
- Нажмите Создать .
5. Инициализируйте конвейер данных для захвата потока изменений.
Производительность Bigtable оптимальна для чтения точек и сканирования диапазона строк, но аналитика в масштабе всей таблицы может создавать нагрузку на обслуживающую мощность и ресурсы ЦП. BigQuery отлично подходит для анализа всей таблицы, поэтому решение, которое вы здесь будете использовать, — двойная запись. Это означает, что вы будете записывать свои данные в Bigtable и BigQuery, что является распространенным методом. Это не потребует дополнительного написания кода, поскольку вы будете использовать Bigtable change streams to BigQuery
Dataflow: когда данные записываются в Bigtable, конвейер запишет запись об изменении в BigQuery. Как только данные попадут в BigQuery, вы сможете выполнять оптимизированные запросы ко всему набору данных, которые не повлияют на производительность обслуживания ваших данных в Bigtable.
- На странице Bigtable Tables найдите
retail-database
вашей таблицы. - В столбце Изменить поток нажмите Подключиться .
- В диалоговом окне «Подключение к потоку данных» выберите BigQuery .
- Нажмите Создать задание потока данных .
- В предоставленные поля параметров введите значения параметров. Вам не нужно предоставлять какие-либо дополнительные параметры.
- Установите для идентификатора профиля приложения Cloud Bigtable значение
default
. - Установите для набора данных BigQuery значение
bigtable_bigquery_tutorial
.
- Нажмите «Выполнить задание» .
- Прежде чем продолжить, подождите, пока статус задания не станет «Запуск» или «Выполняется» . После постановки задания в очередь это может занять около пяти минут. Страница будет автоматически обновляться. Этот шаблон создает потоковое задание, поэтому он может непрерывно обрабатывать новые данные, записываемые в Bigtable, пока задание не будет остановлено вручную.
6. Запишите данные в Bigtable.
Теперь вы запишете год транзакций по кредитным картам в свою таблицу Bigtable. Этот пример набора данных включает в себя такую информацию, как номер кредитной карты, название и идентификатор продавца, а также сумму. В реальном приложении для обработки кредитных карт эти данные будут передаваться в вашу базу данных в режиме реального времени при выполнении каждой транзакции.
- Откройте Cloud Shell, нажав кнопку в правом верхнем углу облачной консоли.
- При появлении запроса примите запрос на авторизацию Cloud Shell.
- Загрузите набор данных.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Установите переменные среды в командной строке
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Используйте интерфейс командной строки
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.
- В консоли Google Cloud перейдите на страницу BigQuery .
- На панели «Проводник» разверните свой проект и набор данных
bigtable_bigquery_tutorial
. - Щелкните таблицу
retail-database_changelog
. Возможно, вам придется обновить набор данных, если таблица отсутствует. - Чтобы просмотреть журнал изменений, нажмите « Предварительный просмотр» .
Попробуйте несколько запросов
Теперь вы можете выполнить несколько запросов к этому набору данных, чтобы получить некоторую информацию. Здесь представлены SQL-запросы, но в разделе «Запросить журнал изменений Bigtable» в документации BigQuery содержится дополнительная информация о том, как писать запросы к данным журнала изменений.
Найти одну транзакцию
Используйте следующий запрос для поиска данных для одной конкретной транзакции.
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")
)
)
Создайте панель инструментов Looker
- Нажмите Перейти к просмотру , чтобы перейти на страницу сведений о новом представлении.
- Нажмите «Экспорт» .
- Выберите «Исследовать с помощью Looker Studio».
8. Добавьте диаграммы на панель мониторинга.
Теперь вы можете отображать информацию в виде графика, чтобы ее было легче усваивать и публиковать в виде отчета. Вы добавите на панель мониторинга три диаграммы:
- Суммы транзакций с течением времени
- Общее количество транзакций для каждого продавца
- Процент транзакций по категориям
Настроить страницу
- Щелкните каждую существующую диаграмму и нажмите «Удалить», чтобы удалить ее.
- Выберите «Свойства» в правой части страницы, чтобы изменить данные графика.
Добавьте диаграммы
Суммы транзакций с течением времени
- Нажмите Добавить диаграмму и создайте диаграмму временных рядов.
- Установите для параметра «Дата_транзакции» значение
transaction_date
.
- Установите показатель
sales_dollars
.
Общее количество транзакций для каждого продавца
- Нажмите Добавить диаграмму и создайте таблицу.
- Установите для параметра
merchant
. - Установите для метрики значение
sales_dollars
Процент транзакций по категориям
- Нажмите Добавить диаграмму и создайте круговую диаграмму.
- Установите для параметра
category
. - Установите для метрики значение
sales_dollars
Смотрите изменения в реальном времени
Потратьте некоторое время и изучите значения на графиках. Вы можете щелкнуть конкретных продавцов в таблице или определенные категории в таблице, что приведет к фильтрации всех диаграмм по этим конкретным значениям, что даст вам больше информации. Далее вы можете записать больше данных и посмотреть, как этот график будет обновляться в реальном времени.
- Вернитесь в свою Cloud Shell.
- Загрузите и запишите второй набор данных.
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
- Вернитесь на панель управления Looker и обновите данные с помощью команды
Ctrl+Shift+E
или нажмите «Обновить данные» в меню вида . Теперь вы должны увидеть на графиках данные за январь 2024 года.
Помимо этого, вы можете создать множество вариантов графиков и показателей. Подробнее читайте в документации Looker .
9. Очистка
Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, либо удалите проект, содержащий ресурсы, либо сохраните проект и удалите отдельные ресурсы.
Остановить конвейер потока изменений
- В консоли Google Cloud перейдите на страницу Dataflow Jobs .
- Выберите задание потоковой передачи из списка заданий.
- В навигации нажмите «Стоп» .
- В диалоговом окне «Остановить задание» выберите «Отмена» , а затем нажмите «Остановить задание» .
Удалить ресурсы Bigtable
Если вы создали экземпляр Bigtable для этого руководства, вы можете удалить его или очистить созданную таблицу.
- В консоли Google Cloud перейдите на страницу Bigtable Instances .
- Щелкните идентификатор экземпляра, который вы используете для этого руководства.
- На левой панели навигации нажмите Таблицы .
- Найдите таблицу
retail-database
. - Нажмите «Изменить» .
- Снимите флажок Включить поток изменений .
- Нажмите Сохранить .
- Откройте дополнительное меню для таблицы.
- Нажмите «Удалить» и введите имя таблицы для подтверждения.
- Необязательно: удалите экземпляр, если вы создали новый для этого руководства.
Удалить набор данных BigQuery
- В консоли Google Cloud перейдите на страницу BigQuery .
- На панели «Проводник» найдите набор данных
bigtable_bigquery_tutorial
и щелкните его. - Нажмите «Удалить» , введите «Удалить», а затем нажмите «Удалить» для подтверждения.