ImpactU Airflow ETL
Central repository for Apache Airflow DAGs and ETL (Extraction, Transformation, and Loading) processes for the ImpactU project. This package includes the full logic for data orchestration, source extraction, and data processing.
🚀 Description
This project orchestrates data collection from various scientific and academic sources, its processing using the Kahi tool, and its subsequent loading into query systems such as MongoDB and Elasticsearch.
� Installation
You can install the package directly from PyPI:
pip install impactu_airflow
Or for development:
git clone https://github.com/colav/impactu_airflow.git
cd impactu_airflow
pip install -e .
�📂 Project Structure
The repository is organized by data lifecycle stages and Airflow components:
dags/: Apache Airflow DAG definitions.extract/: Extraction logic for sources like OpenAlex, ORCID, ROR, etc.transform/: Transformation and normalization processes (Kahi).load/: Loading scripts to final destinations (MongoDB, Elasticsearch).impactu/: Core utilities and shared logic for the project.deploys/: Deployment logic for external services (APIs, databases) via DAGs.backups/: Database backup automation via DAGs.tests/: Integration, unit, and data quality tests.
📋 Requirements and Architecture
For details on design principles (Checkpoints, Idempotency, Parallelism), see the System Requirements document.
🛠 DAG Naming Standard
To maintain consistency in the Airflow interface, we follow this convention:
| Type | Format | Example |
|---|---|---|
| Extraction | extract_{source} |
extract_openalex |
| Transformation | transform_{entity} |
transform_sources |
| Loading | load_{db}_{env} |
load_mongodb_production |
| Deployment | deploy_{service}_{env} |
deploy_mongodb_production |
| Backup | backup_{db}_{name} |
backup_mongodb_kahi |
| Tests | tests_{service} |
tests_kahi |
⚙️ Development and Deployment
This repository focuses exclusively on DAG logic and ETL processes. The base infrastructure is provided by the Chia repository.
For details on the CI/CD strategy, image building, and environment management, see the document: 👉 README_DEVOPS.md
Local Workflow
- Clone the repository.
- Install dependencies:
pip install -r requirements.txt. - Develop DAGs in the
dags/folder. - Validate integrity:
pytest tests/etl/test_dag_integrity.py.
Colav - ImpactU
Metadata
Release files for impactu-airflow 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| impactu_airflow-0.1.0.tar.gz | 11.0 kB | Without provenance | Details for impactu_airflow-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| impactu_airflow-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for impactu_airflow-0.1.0-py3-none-any.whl |
Total release size: 21.2 kB
Release files / impactu_airflow-0.1.0.tar.gz
| Download URL | impactu_airflow-0.1.0.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e57c2bbc1945beef3eb85068cc961fd84cd2d6ccf4a3c6274bdf753999c357bd
|
|
BLAKE2b-256 checksum How to use checksums |
36b4b35667867b3ddc5039cfec3e9541d5bc9724f4e1a77c56d6e1d568ff586c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / impactu_airflow-0.1.0-py3-none-any.whl
| Download URL | impactu_airflow-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49a7d1337c3e94bc39c312711a947fe020e720c12187f256593a0d789b086a13
|
|
BLAKE2b-256 checksum How to use checksums |
b89a82223177a3896f6ba0a9d754b5534c1be4e5d9540ee3b3cb3dd6e919799e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for impactu-airflow 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.