Creatio
Ноутбуки, используемые в примере:
Тип статьи | Инструкция |
---|---|
Компетенции | JupyterLab, Python, Petl, Pandas, Creatio API |
Необходимые права | Доступ к JupyterLab |
Версии компонентов | Jupyter core - 4.7.1, pandas - 1.2.3, Sqlalchemy - 1.3.23, |
Статус | БЕТА |
Сложность | ЛЕГКО |
Полезные ссылки | |
Дополнительные сведения | ОС 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.
Если они у вас не установлены, то вы можете воспользоваться статьей по установке библиотек:
Для работы скрипта необходима созданная база 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-загрузчик