/
ODS

ODS

Ноутбук, используемый в примере:



Тип статьиИнструкция
КомпетенцииJupyterLab, Python, Pandas, ODF, ODS
Необходимые праваДоступ к JupyterLab
Версии компонентовJupyter core - 4.7.1 , pandas - 1.4.3, Sqlalchemy - 1.3.23
Статус
БЕТА
СложностьЛЕГКО
Полезные ссылкиPandas 
Дополнительные сведенияОС Ubuntu 20.04


В данной статье рассматривается пример обработки данных из ODS файла(OpenDocument). Данный файл содержит в себе несколько столбцов.

Для выгрузки данных из ODS будет использована библиотека ODF. Для выгрузки данных в PostgreSQL используется библиотека Pandas с движком sqlalchemy.

Целью этого задания является получение данных из ODS файла для выгрузки их в платформу и построения дашборда.
Пример не является шаблонным: в каждом случае задачи разнятся, и работать с данными придется по-другому.

Вот особенности данного кейса:

  • Количество получаемых данных небольшое, но для демонстрации правильного подхода все выгруженные и обработанные данные сохраняются в Excel файл и базу данных PostgreSQL. Для загрузки данных в платформу вы можете использовать любой из вариантов. Когда получаемых данных много - правильнее всего использовать запись в базу данных.

Здесь не рассматривается:


Для работы нам понадобятся такие библиотеки, как: ODF, Pandas, SQLAlchemy.

Если они у вас не установлены, то вы можете воспользоваться статьей по установке библиотек:

Установка Python библиотек

Теперь можно приступать к работе в JupyterLab.


  1. Создаем ноутбук, например, с названием odf_example.
  2. Первым блоком подключаем все необходимые нам для работы Python библиотеки.

    from odf import text, teletype                        ##   odf    для работы с файлами формата ods ##
    from odf.opendocument import load             ##                                                                          ##
    import xlsxwriter                                            ##      для сохранения в excel                             ##
    import pandas as pd                                     ##   pandas                                                           ##
    import sqlalchemy                                         ##   для подключения к postgres                        ##
    
  3. Вторым блоком выгрузим данные из нашего ODS файла и запишем их в переменную ods_df

    ## загружаем ods file ##
    ods_df = pd.read_excel('fname.ods', engine='odf')
  4. Проверяем загруженные данные.


  5. Сохраняем в Excel.

    ##сохраняем в excel
    name = 'hello_1234.xlsx'                               ## задаём имя файла, который будет создаваться ##
    writer = pd.ExcelWriter(name, engine = 'xlsxwriter')   ## задаём переменную будущего файла          ##
    ods_df.to_excel(writer, sheet_name = '1')              ## записываем наш массив в файл         ##
    writer.save()										   ## save  ##
    writer.close()										   ## close ##
  6. Загружаем данные в Postgres.

    ## создаём engine##
    engine = sqlalchemy.create_engine('postgresql://admin:pass@10.10.10.10:5432/postgres')
    
    ##загружаем данные в postgress ##
    end_df.to_sql('ods_df', engine, index=False, if_exists='replace', dtype={
        'fname': sqlalchemy.VARCHAR(50),
        'lname': sqlalchemy.VARCHAR(255),
        'salary': sqlalchemy.Integer()
    })
  7. Создаём задание планировщика в Cronicle, внутри пишем shell script.


Мы получили таблицу Excel и таблицу в базе данных PostgreSQL.

Excel таблица:


Таблица в базе данных:

Полученные файлы можно брать и загружать в платформу через стандартный SQL/Excel загрузчик. На этом работа в ViXtract завершена.🥳







Related content

JSON
Read with this
Creatio
Creatio
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this