onETL
Что такое 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 |