76 подписчиков
🔍 ETL с помощью SQL: Полная перегрузка данных (Full Reload)
Привет! В сегодняшней публикации рассмотрим процесс полной перегрузки данных между двумя таблицами: исходной (source) и целевой (target) с помощью SQL. Full reload (полная перезагрузка данных в таблице) является одним из способов пакетной (batch) передачи данных. Существуют другие способы инкрементальной загрузки, о которых напишу в следующих постах.
🔄 Первый шаг: Очистка целевой таблицы (target)
Перед началом перегрузки важно убедиться, что целевая таблица пуста, чтобы избежать дублирования данных.
TRUNCATE TABLE target;
📊 Второй шаг: Вставка данных в целевую таблицу (target)
Затем осуществляем перенос данных с помощью простого SQL запроса, который считывает все данных из source таблицы и делает вставку в target
INSERT INTO target SELECT * FROM source;
✅ Третий шаг: Проверка успешности перегрузки
После выполнения перегрузки проверяем, что количество записей совпадает в обеих таблицах. Это самый простой способ убедиться, что данные в source и target таблицах совпадают (по объему). При необходимости можно написать и другие проверки из этого поста, например на контрольные суммы.
SELECT COUNT(*) FROM source;
SELECT COUNT(*) FROM target;
Следуя этим 3 простым шагам, вы сможете эффективно осуществить полную перегрузку данных, что является важной частью ETL-процессов.
Full reload применяется обычно при существовании одного из следующих факторов:
✏️ при первой загрузке данных
✏️ внесены существенные изменения в структуру таблицы или в сами значения данных
✏️ специфика данных в source такая, что при каждой загрузке следует загружать либо бОльшую часть данных, либо всю таблицу целиком
✏️ структура данных такая сложная или наоборот сильно простая, что невозможно корректно определить инкремент для частичной загрузки, поэтому стоит перегружать все целиком
🔥 если пост понравился
1 минута
21 мая 2024