Home
Softono
vixtract

vixtract

Open source BSD-3-Clause HTML
46
Stars
13
Forks
2
Issues
7
Watchers
1 year
Last Commit

About vixtract

ViXtract is an open-source ETL platform built on Python that enables BI analysts to independently extract, clean, and transform data without relying on ETL developers. It combines three main components: Jupyter as an interactive Python environment, PETL as a straightforward data transformation library, and Cronicle as a task scheduler with monitoring and orchestration capabilities. The platform is installed via a single command on Ubuntu 18.04 LTS, with optional HTTPS setup through Let's Encrypt, and includes preconfigured JupyterHub with JupyterLab, Anaconda environment manager with separate dev and prod kernels, PostgreSQL with an etl database, Nginx, S3FS for cloud storage mounting, and Papermill for notebook-based task execution. Installation prompts for domain settings, HTTPS consent, user credentials, Cronicle admin password, and PostgreSQL etl password. Post-installation configuration is handled through a conf.sh script supporting options for user account management, SSL toggling, hostname settings, S3

Platforms

Web Self-hosted

Languages

HTML

Links

ViXtract

Удобный ETL инструмент с открытым исходным кодом на основе Python.

ViXtract – это сборка на основе популярных открытых инструментов обработки данных, которая помогает аналитикам BI самостоятельно выгружать, очищать и преобразовывать данные без помощи ETL разработчиков. Главные принципы ViXtract – удобство работы аналитика и неограниченные возможности развития. В основе ViXtract лежат три ключевых компонента: Jupyter - интерактивная среда для работы с Python, PETL – простая в освоении библиотека преобразования данных, Cronicle - планировщик с функциями мониторинга и оркестрации задач.

Установка

Для установки ViXtract на Ubuntu 18.04 LTS используйте команду ниже:

sudo apt-get update && sudo apt-get install git -y && git clone https://github.com/visiologyofficial/vixtract && cd vixtract && sudo chmod +x *.sh && sudo ./install.sh

Для установки на других ОС нужно вносить изменения в скрипт или производить установку вручную. Также есть форк с обновленными компонентами для установки на Debian 11 https://github.com/svnikolaev/vixtract

Если планируется использовать ViXtract с публичным доменом и HTTPS, рекомендуется до установки ViXtract настроить домен на DNS-сервере. В этом случае при установке ViXtract можно будет сразу настроить получение SSL сертификата через Letsencypt.

Установщик запросит следующую информацию:

  1. Домен/hostname. Можно оставить пустым для доступа к серверу по IP, но в этом случае автоматическая настройка HTTPS будет недоступна.
  2. Согласие на автоматическую настройку HTTPS
  3. Имя пользователя и пароль для первой учетной записи. С помощью этой учетной записи можно будет сразу приступить к работе с ViXtract.
  4. Пароль для учетной записи администратора Cronicle ('admin')
  5. Пароль для учетной записи 'etl' в предустановленной PostgreSQL

После установки ViXtract будет доступен в браузере по адресу http(s)://\<домен или IP>

При необходимости можно запускать скрипт install.sh многократно.

Начало работы

Рекомендуем начать знакомство с ViXtract в следующем порядке:

  1. Посмотрите вводный ролик по ViXtract (ссылка будет добавлена позже)
  2. Установите ViXtract или зарегистрируйтесь на публичном тестовом сервере
  3. Пройдите вводные уроки по ViXtract в формате Jupyter Notebook - папка 'tutorials'
  4. Ознакомьтесь со вводным курсом по Python, например "Python за 15 минут" https://www.youtube.com/watch?v=h8ajN8_XiBk
  5. Возьмите свою реальную задачу и попробуйте ее реализовать. При этом вам будут полезны:
    1. Примеры реализации коннекторов - папка 'examples'
    2. Чат сообщества ViXtract - https://t.me/vixtract_ru
    3. Документация PETL - https://petl.readthedocs.io/en/stable/

Настройка ViXtract

Для настройки ViXtract после установки предусмотрен скрипт 'conf.sh'. Доступны следующие ключи:

'-u' Добавление учетной записи

'-ssl' Включение/выключение HTTPS

'-h' Настройка домена/hostname

'-s' Настройка монтирования облачного хранилища по протоколу S3

'-p' Настройка пароля учетной записи 'etl' в PostgreSQL

'-a' Настройка пароля учетной записи 'admin' в Chronicle

Технические подробности состава сборки

При установке выполняются следующие действия:

  1. Установлен JupyterHub с интерфейсом JupyterLab
  2. Установлен менеджер окружений Anaconda
  3. Созданы два окружения - dev и prod, а также настроены соответствующие ядра в Jupyter
  4. В оба окружения установлен базовый набор пакетов, включая PETL и вспомогательные библиотек
  5. Установлен планировшик Cronicle и модуль исполнения papermill
  6. Установлен Nginx
  7. Установлен S3FS для монтирования облачного хранилища по протоколу S3
  8. Установлен и настроен PostgreSQL
  9. Создана база etl в PostgreSQL
  10. Сделаны дополнительные настройки, интегрирующие все компоненты сборки, в том числе настройки прав, systemd, nginx и др.

Известные проблемы

  1. В текущей версии ViXtract не поддерживает установку в окружении за корпоративным прокси с авторизацией. В таком случае необходимо до установки вручную прописать конфигурацию прокси для npm, anaconda, wget, причем для wget также может потребоваться отключение проверки сертификата 'check_certificate = off'