Базы данных, в общем, и хранилища данных, в частности, нуждаются в регулярном извлечении данных из различных источников и преобразовании их в более удобную форму. Например, хранилище данных может накапливать данные от источников OLTP и трансформировать их в соответствии с некоторыми бизнес-правилами, чтобы облегчить управление ими.
Традиционно способ загрузки данных в хранилище состоит в том, что сначала загружаются таблицы с необработанными (“сырыми”) данными. Иногда данные должны трансформироваться вне базы данных Oracle Database и загружаться напрямую за один проход в таблицы хранилища. Любой из этих методов обычно довольно запутанный, даже если применяются изощренные инструменты извлечения и трансформации либо специализированные сценарии.
База данных Oracle позволяет использовать внешние таблицы (external table) — т. е. таблицы, использующие данные, которые находятся во внешних файлах операционной системы. Внешние таблицы не нуждаются ни в каком хранилище в терминах экстентов базы данных Oracle — определение внешней таблицы просто создает вхождение в словаре данных, которое позволяет загружать данные в другие таблицы базы данных Oracle из внешних таблиц. Если вы уничтожаете внешнюю таблицу в Oracle, то тем самым лишь удаляете ее определение из словаря данных; сами данные остаются в безопасности во внешних исходных файлах.
Внешние таблицы обычно используются в качестве промежуточного хранилища во время трансформаций данных. Внешние таблицы позволяют видеть внешне хранимые данные, как если бы они были таблицами базы данных Oracle. Вы можете выполнять запросы и соединения с внешними таблицами, но не можете обновлять, вставлять или удалять данные из этих таблиц; никакие операции DML с внешними таблицами не допускаются.
На заметку! В моих следующих публикациях в блоге будет представлен подробный пример использования внешних таблиц наряду с детальной дискуссией на эту тему.