Выгрузка данных из несвязанных таблиц в отдельные файлы с помощью python
В предыдущей статье мы рассмотрели, как с помощью Python можно создать и запустить SQL запрос с множеством условий для выгрузки информации из баз данных (БД) Oracle в один файл частями.
В данной статье мы расскажем, как использовать рассмотренный скрипт (частично изменив его) для выгрузки записей из различных несвязанных таблиц в отдельные файлы.
Не секрет, что прежде чем писать SQL запросы к таблицам БД для формирования выгрузок, необходимо проанализировать, какая информация в них содержится. Особенно это актуально в случае, если описание к БД отсутствует (что в нашей работе встречается нередко). Для этого, например, можно выгрузить небольшое количество записей из нужных таблиц в отдельные файлы excel. При этом зачастую таблиц, которые необходимо изучить, довольно много. Чтобы не выгружать информацию из каждой вручную, можно воспользоваться Python. Ниже мы рассмотрим, как это сделать на примере БД Oracle.
Для начала создадим txt файл с названием «dt_in.txt», в котором укажем таблицы для выгрузки данных в следующем виде:
Название_базы_данных_1.Название_таблицы_1;
Название_базы_данных_1.Название_таблицы_2;
Название_базы_данных_2.Название_таблицы_1;
Название_базы_данных_3.Название_таблицы_1
Обратите внимание, в файле не должно быть пробелов и пустых строк, в том числе после названия последней таблицы в списке. Указать можно таблицы разных БД.
Далее запускаем скрипт на Python (импорт библиотек, подключение к Oracle, описание функций для взаимодействия с Oracle и выполнения запроса можно найти в указанной выше статье).
В результате, данные из таблиц автоматически выгружаются в отдельные файлы excel, названия которых содержат наименование БД и таблицы. Если таблица пустая – файл не формируется. В Python выводится сообщение о том, сколько записей выгружено из каждой таблицы, или, что она пустая.
Таким образом, с помощью Python можно:
— уменьшить трудозатраты на выгрузку информации для анализа из несвязанных таблиц БД в отдельные файлы;
— выгружать данные для анализа сразу из нескольких БД.