BigQuery Сховище Даних: Повний Посібник для Початківців

pic

Огляд сховища даних

Що таке сховище даних?

Сховище даних — це система, спеціально розроблена для зберігання, запиту та аналізу величезних обсягів даних, зазвичай розміром від терабайтів (TB) або більше.

Чому необхідно впроваджувати сховище даних у проект?

Сховище даних є важливим для покращення продуктивності та ефективного управління даними в проектах, особливо коли обсяг інформації збільшується. Бази даних часто не можуть задовольнити потреби в довгостроковому зберіганні та аналізі більших наборів даних.

Які обмеження має база даних?

Пряма взаємодія з користувацькими додатками: Бази даних зазвичай розробляються для підтримки операційних додатків, забезпечуючи користувачам безперебійну роботу. Однак, коли ми починаємо зберігати великі обсяги даних — особливо історичні дані, такі як транзакції клієнтів — це може вплинути на продуктивність бази даних. Наприклад, якщо додаток працює 10 чи 20 років без видалення жодної інформації, обсяг даних може вирости настільки, що це сповільнить всю систему.

Вимоги до звітності та аналізу даних: Бізнеси часто вимагають, щоб інформація, така як транзакції та бізнес-активності, збиралася в періодичні звіти для моніторингу, аналізу та розробки стратегій. Це не тільки збільшує обсяг збережених даних, але й впливає на продуктивність, коли база даних повинна обробляти складні завдання, такі як агрегація та аналіз даних.

Це створює дві основні проблеми:

  • Обсяг даних збільшується без прямої взаємодії з користувачами.
  • Продуктивність знижується, коли база даних повинна виконувати складні аналітичні запити, що впливає на користувацький досвід.

Рішення: Впровадження сховища даних

Сховище даних — це спеціалізована система, призначена для зберігання, запиту та аналізу великих обсягів даних. Воно дозволяє відокремити дані, що не взаємодіють безпосередньо з користувачами — такі як історичні дані або регулярні звіти — від основної бази даних. Це розділення дає кілька ключових переваг:

  • Оптимізована продуктивність: База даних може зосередитися виключно на обслуговуванні запитів від додатків, що допомагає зберегти швидкість і високу продуктивність, забезпечуючи безперебійний досвід для користувачів.
  • Ефективний аналіз даних: Сховище даних створює ідеальне середовище для вирішення складних аналітичних завдань без переривання роботи основної системи. Таким чином, бізнеси можуть легко генерувати звіти, визначати тенденції та приймати обґрунтовані стратегічні рішення, не хвилюючись про уповільнення своїх систем.

Цілі посібника

  1. Перенести дані, які потрібно відокремити від бази даних, до сховища даних.
  2. Ефективно генерувати періодичні звіти та зберігати звіти в сховищі даних.

Використовувані технології:

База даних: MySQL
Сховище даних: Google BigQuery
Мова програмування: Java

Огляд впровадження

Мета 1: Перенести дані, які потрібно відокремити від бази даних, до сховища даних.

Цей посібник проведе вас через два методи перенесення даних з бази даних MySQL в Google BigQuery:

  • Використовуючи Java додаток: Ви можете створити Java додаток, який використовує бібліотеку Google BigQuery для завантаження даних у сховище даних.
  • Використовуючи Google Data Stream: Ви можете скористатися можливістю Google Cloud Data Stream для автоматизації процесу перенесення даних між MySQL і BigQuery.

Мета 2: Ефективно генерувати періодичні звіти та зберігати звіти в сховищі даних.

Цей посібник охоплює два методи створення звітів і збереження результатів у BigQuery:

  • Використовуючи Java додаток: Створіть Java додаток для виконання запитів, збору даних з BigQuery і збереження результатів звітів.
  • Використовуючи заплановані запити BigQuery: Скористайтеся функцією запланованих запитів BigQuery для автоматизації регулярного створення періодичних звітів.

Посібник з впровадження

Налаштування середовища на Google BigQuery:

  1. Перейдіть на головну сторінку Google Cloud Console за посиланням нижче.
    https://console.cloud.google.com/

pic

  1. Створіть новий проект для вашого застосунку

pic

pic

  1. Після створення та вибору проекту перейдіть до панелі пошуку і введіть ‘BigQuery’

pic

  1. Після переходу на сторінку BigQuery натисніть ‘Enable’, щоб активувати Google BigQuery API. (Коли ви хочете використовувати конкретну функцію Google Cloud, необхідно активувати її API, щоб ваш застосунок міг підключитися до цього API)

pic

  1. Після активації BigQuery API необхідно надати дозволи для роботи з BigQuery для облікового запису, який ви будете використовувати для застосунку. Перейдіть до меню навігації => Виберіть розділ ‘IAM & Admin’ => Виберіть ‘IAM’ (Управління ідентифікацією та доступом)

pic

  1. Виберіть обліковий запис, для якого ви надаєте роль ‘BigQuery Admin’

pic

  1. Потім натисніть ‘ADD ANOTHER ROLE’ => Виберіть роль BigQuery Admin для вашого облікового запису

pic

pic

  1. Далі необхідно завантажити ключі для облікового запису, щоб створити облікові дані Google в застосунку. Перейдіть до меню навігації => Виберіть розділ ‘IAM & Admin’ => Виберіть ‘Service Accounts’

pic

  1. Виберіть обліковий запис, для якого ви надали роль ‘BigQuery Admin’ на попередньому кроці

pic

  1. Натисніть ‘KEYS’ => Виберіть ‘ADD KEY’ => Виберіть ‘Create new key’ => Оберіть тип ключа JSON => Натисніть ‘Create’. На цьому етапі Google автоматично завантажить JSON-ключ на ваш комп’ютер

pic

pic

pic

Створення набору даних у Google BigQuery (відповідно до схеми в базі даних)

  1. Поверніться до BigQuery, і тут ви побачите ресурс для створеного вами проекту. Виберіть ‘create dataset’, щоб створити набір даних у BigQuery. Заповніть інформацію в таблиці ‘Create dataset’:
  • Dataset ID: Унікальний ідентифікатор вашого набору даних.
  • Location type: Виберіть місце для зберігання вашого набору даних (це впливає на ліміти квот [кількість API запитів] та витрати)

Потім натисніть ‘CREATE DATASET’

pic

pic

  1. Після створення набору даних, продовжимо створення таблиці в наборі даних (відповідно до таблиці в базі даних)

pic

  1. Заповніть інформацію в таблиці ‘Create table’
  • Table: Назва таблиці, наприклад.
    transaction, report, etc.
  • Схема: Створіть стовпці в таблиці
  • Налаштування розподілу та кластеризації: Виберіть стовпець, який ви хочете використовувати для розподілу та кластеризації

pic

pic

Ви успішно налаштували середовище на Google BigQuery! Тепер давайте перейдемо до наступних кроків, щоб досягти ваших цілей!

Використання Java-застосунку для передачі даних з бази даних у BigQuery та запиту даних з BigQuery назад у Java-застосунок.

  1. Відкрийте файл pom.xml і додайте залежності для Google BigQuery

pic

pic

  1. Збережіть деталі проекту, набору даних та таблиці, з якими потрібно взаємодіяти в BigQuery

pic

pic

  1. Налаштуйте Google Credential та проект

Це шлях до завантаженого JSON-ключа.

pic

  1. Запит даних з бази даних (Цей посібник лише змокує дані)

pic

pic

  1. Перетворіть дані в об’єкт RowToInsert Google BigQuery

pic

pic

  1. Вставте дані в BigQuery

pic

pic

Тепер ви завершили функцію передачі даних з бази даних у сховище даних за допомогою Java-застосунку. Далі ви реалізуєте функціональність для запиту даних з BigQuery.
7. Створіть запит

pic

  1. Створіть завдання BigQuery з запиту та виконайте його

pic

  1. Перевірте на наявність помилок і відобразіть отримані результати.

pic

pic

Приклад результату:

[
FieldValue{attribute=PRIMITIVE, value=1},
FieldValue{attribute=PRIMITIVE, value=BTC},
FieldValue{attribute=PRIMITIVE, value=A},
FieldValue{attribute=PRIMITIVE, value=B},
FieldValue{attribute=PRIMITIVE, value=1},
FieldValue{attribute=PRIMITIVE, value=1725718844.0}
]

Тепер ви завершили налаштування процесу запиту даних з BigQuery за допомогою Java-застосунку. Далі ми розповімо, як передавати дані з бази даних в BigQuery та генерувати регулярні звіти — без необхідності використання Java-застосунку.

Використання DataStream для передачі даних з бази даних у BigQuery

Datastream для BigQuery — це сервіс Google Cloud, який дозволяє вам реплікувати дані з реляційних баз даних, таких як MySQL, PostgreSQL, Oracle та інші, у BigQuery

pic

  1. Перейдіть до консолі Google Cloud, знайдіть Datastream і активуйте API функції

pic

  1. Створіть потік

pic

3.
Заповніть інформацію в таблиці «Створити потік»:

– Назва потоку: Встановіть ім’я для вашого потоку
– Регіон: Виберіть регіон
– Тип джерела: Виберіть один з цих типів джерел: Oracle, MySQL, Postgre, SQL Server

pic

– Тип призначення: Виберіть один з цих типів призначення: Хмарне сховище, BigQuery

pic

pic

  1. Щоб Datastream міг отримувати дані з бази даних, базі даних потрібні деякі налаштування. Залежно від типу бази даних, яку ви використовуєте, дотримуйтесь відповідних інструкцій для налаштування. (У цьому посібнику ми будемо використовувати Cloud SQL для MySQL).

pic

  1. Натисніть «Далі», щоб перейти до наступної форми. У наступній формі потрібно ввести інформацію для створення профілю з’єднання.

pic

  1. Заповніть інформацію в таблиці «Створити профіль з’єднання MySQL»:

– Назва профілю з’єднання: Ім’я профілю з’єднання

– Ім’я хоста або IP: Ім’я хоста або IP-адреса вашої бази даних.

– Порт: Порт бази даних, який ви використовуєте

– Ім’я користувача: Логін для облікового запису бази даних

– Пароль: Пароль для облікового запису

pic

  1. Далі можна налаштувати параметри безпеки для вашого потоку. У цьому посібнику ми використовуємо стандартні налаштування. Наведені нижче IP-адреси будуть доступати вашу базу даних, тому переконайтеся, що налаштували вашу базу даних для дозволу з’єднань з цими IP.

pic

  1. Натисніть «Перевірити з’єднання» і потім натисніть «Продовжити»

pic

  1. Заповніть інформацію в таблиці «Налаштування джерела потоку»:

– Об’єкти для включення:

  • Усі таблиці з усіх схем: Створіть потік для всіх таблиць та схем бази даних

  • Конкретні схеми та таблиці: Виберіть таблиці та схеми, які ви хочете потікати

  • Користувацький: Подібно до конкретних схем і таблиць, але з використанням тексту замість чекбоксів для вибору

pic

  1. Виберіть «ПОКАЗАТИ РО розширені параметри», введіть інформацію в цю таблицю:

– Об’єкти для виключення: Виберіть дані, які ви не хочете потікати: схема, таблиця або стовпець.

– Виберіть режим зворотного заповнення для історичних даних: Виберіть режим для даних, що існували до використання потоку:

  • Автоматичний: Потікати всі існуючі записи в базі даних та всі записи, створені після запуску потоку

  • Ручний: Потікати лише записи, створені після запуску потоку

pic

  1. Натисніть «Продовжити», заповніть інформацію в таблиці «СТВОРЕННЯ ПРОФІЛЮ З’ЄДНАННЯ»

pic

pic

  1. Виберіть «Продовжити», введіть інформацію в таблиці «Налаштування з’єднання між Datastream і BigQuery»:

– Вкажіть, як Datastream повинен потікати в набір даних BigQuery:

  • Набір даних для кожної схеми: Кожна схема потікатиме в окремий набір даних

  • Один набір даних для всіх схем: Всі схеми потікатимуть в один набір даних

– Режим запису потоку:

  • Злиття: Синхронізуйте записи з базою даних. Ми можемо додавати, оновлювати або видаляти записи відповідно до бази даних

  • Лише додавання: Кожна подія (вставка, оновлення, видалення) в базі даних буде записана в BigQuery

– Ліміт статичності: Запланований час оновлення даних з бази даних у BigQuery

pic

13.
Перегляньте інформацію, виберіть перевірку на правильність і створіть потік

pic

Ви успішно налаштували Datastream для передачі даних з бази даних у BigQuery. Далі ми покажемо, як використовувати заплановані запити для генерації періодичних звітів.

Використання запланованих запитів для створення періодичних звітів

  1. Перейдіть на сторінку BigQuery та додайте таблицю для звіту

pic

  1. Увімкніть вкладку Запит, щоб написати запит для створення звітів

pic

  1. Після завершення натисніть розділ «Запланувати», щоб запланувати періодичне виконання запиту

pic

  1. Заповніть інформацію в таблиці «Новий запланований запит»:

– Назва запланованого запиту: Введіть ім’я запланованого запиту

– Опції розкладу: Встановіть частоту виконання запиту: щогодини, щодня, щотижня тощо, а також інші пов’язані опції

pic

– Призначення для результатів запиту:

  • Набір даних: Виберіть набір даних, куди будуть вставлятися агреговані дані

  • TableId: Виберіть таблицю, яка зберігатиме агреговані дані

  • Пріоритет запису в таблицю:

  • Додати в таблицю: Нові дані будуть вставлені в таблицю

  • Перезаписати таблицю: Нові дані перезапишуть існуючу таблицю

pic

– Обліковий запис сервісу: Виберіть обліковий запис, який виконуватиме запланований запит

– Опція сповіщення: Надсилати сповіщення на обліковий запис, якщо запланований запит не вдасться виконати

pic

Ви успішно налаштували запланований запит для створення періодичних звітів

Висновок

Сховище даних — це ідеальне рішення для компаній, які хочуть ефективно управляти та обробляти великі обсяги даних. Воно допомагає зменшити навантаження на базу даних додатка та оптимізує створення звітів. Це не тільки підвищує продуктивність і гнучкість системи, але й покращує загальний досвід користувачів.

Перекладено з: Bigquery Data Warehouse: A Completed Guide for Beginner

Leave a Reply

Your email address will not be published. Required fields are marked *