Загрузка данных , или просто загрузка , является частью обработки данных , при которой данные перемещаются между двумя системами таким образом, чтобы они оказались в промежуточной области в целевой системе.
При традиционном методе извлечения, преобразования и загрузки (ETL) задание по загрузке является последним шагом, а загружаемые данные уже преобразованы. При альтернативном методе извлечения, загрузки и преобразования (ELT) задание по загрузке является средним шагом, а преобразованные данные загружаются в исходном формате для преобразования данных в целевой системе.
Традиционно загрузка заданий на больших системах занимала много времени и, как правило, выполнялась ночью, вне часов работы компании.
Две основные цели загрузки данных — получить более свежие данные в системах после загрузки и сделать загрузку быстрой, чтобы данные можно было часто обновлять. Для полного обновления данных более быстрой загрузки можно добиться, отключив ссылочную целостность , вторичные индексы и протоколирование , но это обычно не допускается при инкрементальном обновлении или тонкой подаче.
Загрузка данных может осуществляться либо полным обновлением (немедленно), либо инкрементной загрузкой и обновлением (немедленно), либо тонкой подачей (отложенно). Выбор метода может зависеть от объема данных, которые обновляются, изменяются или добавляются, а также от того, насколько актуальными должны быть данные. Тип данных, предоставляемых исходной системой, и можно ли доверять историческим данным, предоставляемым исходной системой, также являются важными факторами.
Полное обновление данных означает, что существующие данные в целевой таблице сначала удаляются. Затем все данные из источника загружаются в целевую таблицу, в целевой таблице создаются новые индексы, а для обновленной таблицы рассчитываются новые меры .
Полное обновление легко реализовать, но оно подразумевает перемещение большого количества данных, что может занять много времени и затруднить сохранение исторических данных. [1]
Инкрементальное обновление или инкрементальное обновление означает, что из исходной системы извлекаются только новые или обновленные данные. [2] [3] Затем обновленные данные добавляются к существующим данным в целевой системе, а существующие данные в целевой системе обновляются. Индексы и статистика обновляются соответствующим образом. Инкрементальное обновление может ускорить загрузку и упростить отслеживание истории, но может быть сложным в настройке и обслуживании. [1]
Тройная подача или струйная загрузка означает, что при обновлении исходной системы изменения в целевой системе произойдут практически немедленно. [4] [5]
При загрузке данных в систему, которая в данный момент используется пользователями или другими системами, необходимо решить, когда система должна быть обновлена и что произойдет с таблицами, которые используются в то же время, когда система должна быть обновлена. Одним из возможных решений является использование теневых таблиц . [6] [7]
Хранилище данных обычно представляет собой набор исторических данных, предназначенных для поддержки принятия решений, поэтому оно периодически обновляется из источников, в основном ежедневно. Однако современный бизнес требует более свежих данных. Хранилище в реальном времени является одной из тенденций для достижения этой цели, но существует ряд проблем на пути к настоящему реальному времени. В этой статье предлагается методология «многоэтапного ручейка и переворота» для обновления хранилища данных. Она основана на принципе «ручейка и переворота» и расширена для дальнейшей изоляции действий по загрузке и запросам, что позволяет им быть более эффективными.