Проблеми зі змінами схеми
Зміни в схемах таблиць PostgreSQL, такі як додавання чи видалення стовпців або зміна типів даних, часто стають джерелом розчарування для розробників, інженерів даних та інших зацікавлених сторін. Ці оновлення можуть порушити робочі процеси та призвести до ризиків, таких як проблеми сумісності, зламані процеси і нові баги. Це може спричинити затримки в розробці та ускладнити доставку нових функцій. Без ефективних інструментів або автоматизації ручні зміни схеми можуть бути дуже деструктивними та неефективними.
Автоматичні зміни схеми в RisingWave
Для зменшення цих проблем, RisingWave тепер підтримує автоматичні зміни схеми як функцію преміум-версії при збиранні даних CDC з PostgreSQL. Ця функція дозволяє схемам таблиць RisingWave автоматично синхронізуватися зі змінами схем, внесеними в вихідні таблиці PostgreSQL. Завдяки автоматичним змінам схеми в RisingWave ви зможете витрачати менше часу на ручне обслуговування та керування пайплайнами даних і більше часу на інші операції.
Доступність та ліцензування
Зверніть увагу, що ця функція доступна лише в преміум-версії RisingWave. Щоб дізнатися більше про RisingWave Premium, перегляньте статті Все, що потрібно знати про RisingWave Premium та RisingWave Premium Edition.
Як увімкнути автоматичні зміни схеми для джерел PostgreSQL CDC
Перевірте наявність ліцензійного ключа для преміум-версії
Після запуску RisingWave перевірте, чи має ваша інстанція RisingWave дійсний ліцензійний ключ, виконавши наступний SQL-запит. Якщо ліцензійний ключ налаштовано правильно та він дійсний, буде виведено t
. Щоб дізнатися, як налаштувати ліцензійний ключ, перегляньте статтю RisingWave Premium Edition.
SELECT rw_test_paid_tier();
Налаштування джерела PostgreSQL CDC
Щоб увімкнути функцію автоматичних змін схеми, встановіть параметр auto.schema.change
в значення true
під час створення джерела PostgreSQL CDC. Це необов'язковий параметр при створенні джерела і він доступний тільки в преміум-версії.
Щоб дізнатися більше про те, як збирати дані з таблиці PostgreSQL, перегляньте офіційну документацію.
CREATE SOURCE pg_mydb WITH (
connector = 'postgres-cdc',
hostname = 'localhost',
port = '5432',
username = 'myuser',
password = '123456',
database.name = 'mydb',
auto.schema.change = 'true'
);
Демонстрація: автоматичні зміни схеми PostgreSQL
Налаштування таблиці в PostgreSQL
Для цього прикладу припустимо, що в вашій базі даних PostgreSQL налаштована наступна таблиця pg_names
. Ви будете збирати ці дані в RisingWave.
id | name
----+---------
1 | Alice
3 | Charlie
2 | Bob
Створення джерела PostgreSQL CDC
Запустіть інстанцію RisingWave та налаштуйте ліцензійний ключ преміум-версії. Щоб дізнатися про різні методи швидкого розгортання RisingWave, перегляньте наш Швидкий старт гід.
Щоб читати дані з таблиці PostgreSQL в RisingWave, спочатку потрібно створити джерело, а потім створити таблицю. Джерело підключатиметься до бази даних PostgreSQL, а таблиця збирає дані з конкретної таблиці. Цей процес дозволяє легко збирати дані CDC з кількох таблиць.
Крок 1: Створіть джерело
Використовуйте команду CREATE SOURCE
, щоб підключитися до бази даних PostgreSQL. Увімкніть функцію автоматичних змін схеми, встановивши параметр auto.schema.change
в значення true
.
CREATE SOURCE pg_mydb WITH (
connector = 'postgres-cdc',
hostname = 'localhost',
port = '5432',
username = 'myuser',
password = '123456',
database.name = 'mydb',
auto.schema.change = 'true'
);
Крок 2: Створіть таблицю
Збирайте дані з таблиці pg_names
PostgreSQL, використовуючи команду CREATE TABLE
.
Замість того, щоб визначати схему даних, використовуйте *
, щоб автоматично відображати всі стовпці таблиці PostgreSQL.
CREATE TABLE names (*)
FROM pg_mydb TABLE 'public.pg_names';
Якщо будуть внесені зміни до схеми таблиці в PostgreSQL, схема цієї таблиці в RisingWave автоматично оновиться.
Перегляд змін схеми
Перевірте цю функцію, внесши зміну до схеми даних таблиці в PostgreSQL. Наприклад, можна додати новий стовпець до таблиці в PostgreSQL.
ALTER TABLE simple_table
ADD COLUMN age INT DEFAULT 0;
Потім виконайте запит до таблиці в RisingWave. Новий стовпець автоматично відобразиться.
SELECT * FROM names;
---
id | name | age
----+---------+-----
2 | Bob | 0
1 | Alice | 0
3 | Charlie | 0
(3 rows)
Так само, якщо ви видалите стовпець у PostgreSQL, таблиця в RisingWave відобразить ці зміни.
Висновок
Завдяки функції автоматичних змін схеми, RisingWave усуває необхідність у ручних зусиллях, які традиційно потрібні для оновлень схеми. Вам не потрібно турбуватися про модифікацію залежних робочих процесів або про перебої в пайплайнах. Ця функція забезпечує легкість управління потоковими даними в RisingWave для вас та вашої команди даних.
Перекладено з: RisingWave Feature: Automatic Schema Change for PostgreSQL