/
Creatio

Creatio

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

Тип статьи

Инструкция

Компетенции

JupyterLab, Python, Petl, Pandas, Creatio API

Необходимые права

Доступ к JupyterLab

Версии компонентов

Jupyter core - 4.7.1, pandas - 1.2.3, Sqlalchemy - 1.3.23,

Статус

БЕТА

Сложность

ЛЕГКО

Полезные ссылки

Requests, Pandas, Creatio API OData 4, SQLAlchemy

Дополнительные сведения

ОС Ubuntu 18.04

 

В статье рассматривается пример обработки данных, полученных с помощью Creatio API OData 4.

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

Цель - получение данных с помощью Creatio API OData 4 для загрузки их в платформу и анализа на дашбордах.

 

Стратегия.


  • Последовательно получить записи из сущностей Creatio в требуемом временном промежутке и загрузить эти данные в соответствующие таблицы промежуточной базы PostgreSQL. Финальным этапом загрузить данные из этой базы в ViQube через SQL-загрузчик.

В этой статье не рассматривается:

  • Данные загружаются разово. Для регулярной автоматический выгрузки необходимо настроить планировщик Chronicle.

  • Для дальнейшей загрузки в платформу можно воспользоваться стандартными средствами в платформе: “создание загрузчика” и “планы загрузки”. Всё описано в разделе документации (ссылка для версии 2.20):
    Загрузка данных и формирование структуры в аналитической базе данных ViQube

  • Получение наименований и полей сущностей Creatio.

  • Подробности работы подключенных Python библиотек.


Нам понадобятся такие библиотеки, как: Requests, Pandas, SQLAlchemy.

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

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

Для работы скрипта необходима созданная база PostgreSQL и пользователь в ней с необходимыми правами для создания сущностей.


#Подключаем библиотеки

import requests import pandas as pd import sys import sqlalchemy from datetime import datetime

#Фиксируем момент запуска скрипта

starttime = datetime.now()

#Авторизационные данные

postgreHost = '*****' postgreDB = '*****' postgreSchema = 'creatio' postgreUser = '*****' postgrePort = '5432' postgrePass = '*****' baseCreatioUser = "*****" baseCreatioPass = "*****" baseCreatioURL = '*****'

#Пути

#GET фильтры для Creatio

#Признак первого запуска

#Крайняя дата начала выгрузки

#Подключение к базе Postgre

#Проверка наличия схемы, если отсутствует, создаём

#Проверка наличия служебной таблицы TransferControl

#Если таблицы нет, создаем

#Иначе берём последнюю дату удачной выгрузки

#Подготовка строки фильтра по датам

#Удаляем VIEW из базы, если он есть

#Заголовок для запросов

#Получаем токен от Creatio

#Далее следует основная функция, получающая необходимые данные

#Функция записи статуса в служебную таблицу TransferControl, которая позволяет при повторных запусках выбрать только записи, модифицированные с момента последнего удачного запуска. Сохраняем время завершения скрипта, статус и время исполнения скрипта

#Функция UPSERT, аналог MERGE. Добавляет новые или обновляет старые, если таковые уже имеются. Признак для этого - первичный ключ Id

#Далее следует основная рутина

Получение интересующих коллекций по фильтрам

#Запись успешного состояния

#Создаём VIEW на основе полученных данных для загрузки таблицы фактов через SQL-загрузчик

 

Related content

ODS
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this
Инкрементальная загрузка
Инкрементальная загрузка
More like this