JavaRush /Курси /SQL SELF /Вступ до масового завантаження даних

Вступ до масового завантаження даних

SQL SELF
Рівень 23 , Лекція 0
Відкрита

Уяви, що тобі прислали CSV-файл з інформацією про студентів, наприклад, з іншої бази даних або стороннього застосунку. Копіювати кожен запис вручну? Та ну, дякую. Ось тут і виникає потреба у масовому завантаженні даних.

Ось кілька сценаріїв, де масове завантаження даних реально рятує:

  • Міграція даних: треба перенести дані з однієї системи в іншу. Наприклад, з Excel або іншої бази даних у PostgreSQL.
  • Ініціалізація бази даних: наповнення твоєї бази стартовими даними, наприклад, список міст, курсів чи категорій продуктів.
  • Інтеграція з зовнішніми системами: регулярне додавання нових даних, наприклад, оновлення даних від третіх осіб через файл.
  • Оновлення великих обсягів даних: треба замінити застарілі дані на оновлені.

Поки що все зрозуміло? Якщо так, рухаємося далі!

Основні підходи до масового завантаження даних

Перш ніж занурюватися в деталі, давай коротко обговоримо, які взагалі є способи додати в базу не один-два рядки, а одразу багато. Ми розглянемо, як це можна зробити за допомогою SQL-запитів, а потім подивимось на більш зручний і сучасний спосіб — завантаження даних з файлів.

SQL-запити для вставки даних

Ти вже знаєш, що для додавання даних використовується команда INSERT INTO. Це чудово працює, якщо записів небагато. Наприклад:

INSERT INTO students (id, name, age, course)
VALUES (1, 'Otto Lin', 20, 'Програмування');

Але якщо мова йде про десятки, сотні чи тисячі рядків, такий спосіб стає неефективним. Звісно, це можна автоматизувати на рівні коду, але вручну підтримувати такий обсяг вставок складно і незручно.

Завантаження з файлів

Саме тому часто використовують завантаження даних з файлів, таких як CSV (Comma-Separated Values). Це простий текстовий формат, у якому кожен рядок — це окремий запис, а значення розділені комами або крапками з комою.

Приклад вмісту CSV-файлу:

id,name,age,course
1,Otto Lin,20,Програмування
2,Maria Chi,21,Дизайн
3,Alex Ming,19,Математика

Такий формат добре читається як людиною, так і програмами. CSV можна відкрити в Excel, обробити в Python чи іншій мові, і без проблем імпортувати в базу. Масове завантаження даних з файлу відбувається значно швидше порівняно з ручною вставкою і зменшує ймовірність помилок при введенні.

Підготовка до масового завантаження

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

Перевірка структури таблиць

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

Приклад таблиці для завантаження даних про студентів:

CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL,
    course TEXT
);

Важливі моменти:

  • Переконайся, що типи даних у стовпцях збігаються з даними у твоєму файлі. Якщо age — це число, то в CSV у відповідному стовпці теж мають бути лише числа.
  • Стовпці з обмеженнями (NOT NULL, UNIQUE) вимагають особливої уважності при підготовці даних.

Перевірка даних

Тепер коротко про дані. Ось що треба перевірити перед завантаженням:

  1. Відсутність порожніх рядків або некоректних значень. Наприклад, рядок: 12,,20,Програмування викличе помилку, бо у нас name — це обов'язкове поле.
  1. Відповідність роздільників. Якщо у твоєму CSV використовується кома (,), переконайся, що вона налаштована правильно. Якщо замість ком використані крапки з комою (;), це треба вказати при завантаженні даних.

  2. Кодування. PostgreSQL очікує файли у UTF-8. Якщо твій файл в іншому кодуванні (наприклад, Windows-1251), його треба перетворити.

Маленький програмістський жарт для розвантаження

Чому програмісти так люблять використовувати CSV? Бо після довгих годин роботи з JSON, вони нарешті бачать "простi" дані... поки не зустрінуть кому в тексті.

Практичне застосування масового завантаження

У реальних проектах масове завантаження використовується всюди. Наприклад:

  • Під час оновлення каталогу товарів для інтернет-магазину. CSV-файл з тисячами товарів можна завантажити за секунди.
  • Під час міграції клієнтів з однієї CRM-системи в іншу. Всі дані про клієнтів, їх адреси та замовлення завантажуються з CSV у PostgreSQL.
  • В аналітиці, коли треба завантажити дані про продажі за місяць для аналізу.

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

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ