Skip to content

onETL

Repo status - Active PyPI - Latest Release PyPI - License PyPI - Python Version PyPI - Downloads

Documentation - ReadTheDocs Github Actions - latest CI build status pre-commit.ci Status

onETL logo

Что такое onETL?

Python ETL/ELT библиотека, основанная на Apache Spark и других инструментах с открытым исходным кодом.

Цели

  • Предложить унифицированные классы для извлечения (E) и загрузки данных (L) при работе с различными хранилищами.
  • Обеспечить возможность использования Spark DataFrame API для выполнения преобразований (T) (в терминах ETL).
  • Предоставить прямой доступ к базе данных, позволяющий выполнять SQL-запросы, а также DDL, DML и вызывать функции/процедуры. Эта функциональность предназначена для построения ELT конвейеров.
  • Обеспечить поддержку различных стратегий чтения для инкрементной и пакетной выборки данных.
  • Предоставить хуки и плагины для изменения поведения внутренних классов.

Не цели

  • onETL не является заменой Spark. Она просто предоставляет дополнительные функциональные возможности, которых нет в Spark, и улучшает UX для конечных пользователей.
  • onETL не является фреймворком, поскольку не имеет требований к структуре проекта, именованию, способу запуска ETL/ELT процессов, конфигурации и т.д. Все это должно быть реализовано в каком-то другом инструменте.
  • onETL намеренно разрабатывается без какой-либо интеграции с программным обеспечением для планирования, таким как, например, Apache Airflow. Все интеграции должны быть реализованы как отдельные инструменты.
  • Только пакетные процессы обработки данных, без их потоковой передачи. Для потоковой передачи используйте Apache Flink.

Требования

  • Python 3.7 - 3.13
  • PySpark 2.3.x - 3.5.x (зависит от используемого коннектора)
  • Java 8+ (требуется Spark, см. ниже)
  • Kerberos libs & GCC (требуется коннекторами Hive, HDFS и SparkHDFS)

Поддерживаемые хранилища

Тип Хранилище На базе
База данных Clickhouse
MSSQL
MySQL
Postgres
Oracle
Teradata


Apache Spark JDBC Data Source
Hive Apache Spark Hive integration
Kafka Apache Spark Kafka integration
Greenplum VMware Greenplum Spark connector
MongoDB MongoDB Spark connector
Файл HDFS HDFS Python client
S3 minio-py client
SFTP Paramiko library
FTP
FTPS
FTPUtil library
WebDAV WebdavClient3 library
Samba pysmb library
Файлы как DataFrame SparkLocalFS
SparkHDFS
Apache Spark File Data Source
SparkS3 Библиотека Hadoop AWS