Skip to main content
https://img.shields.io/pypi/v/mettle.svg https://img.shields.io/pypi/pyversions/mettle.svg https://img.shields.io/travis/yougov/mettle/master.svg

Mettle is a framework for managing extract/transform/load (ETL) jobs. ETL processes present a number of problems that Mettle is designed to solve:

Description

  • Jobs need to be run at specific times. Sometimes they need to be triggered by the completion of other jobs. Mettle supports scheduling both time-based and trigger-based jobs.

  • Various people in an organization need to be able to see job schedules and the state of recent runs. Naive scripts running on cron jobs, scattered amongst a large number of servers, create a serious problem with visibility. Mettle solves this by centralizing the job scheduling, state reporting, and log viewing.

  • Sometimes jobs fail because of temporary problems somewhere (a flaky network, a too-full disk). Mettle will automatically retry jobs to deal with this.

  • Sometimes jobs fail and will not be able to succeed until the job has been reconfigured (a changed password on a database, for example). Mettle makes it easy to manually re-launch a job after such issues have been resolved.

  • If you try to solve the above problems by centralizing all your ETL execution, you quickly run into a problem of proliferating dependencies. A centralized ETL service can become hard to develop and hard to deploy because all those dependencies (libraries, external APIs, external databases) introduce more instability. Mettle is designed to isolate those dependencies into separate ETL services, so instability in one ETL doesn’t impact any others.

We picked the name “Mettle” because:

  • It’s got the letters E, T, and L in it.

  • It means “ability to continue despite difficulties”.

  • It sounds like “metal”, which is solid.

Mettle is comprised of several components:

  • Web UI. Features:
    • Configure schedules for pipelines.

    • Display past jobs, both successful and failed.

    • Display currently-executing jobs, with live status updates and streaming logs.

    • Manually launch jobs.

  • Timer: Reads pipeline schedules from the database and sends out RabbitMQ messages when pipelines need to be kicked off.

  • Dispatcher: Records which jobs are being executed by which workers, and their eventual success or failure.

  • Logger: Receives log messages sent from ETL Services over RabbitMQ, and saves them to Postgres.

  • ETL Services: Implement the actual business logic and systems integration to move data between systems.

Mettle uses Postgres to store state, and RabbitMQ for inter-process communication.

Metadata

Release files for mettle 0.7.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mettle 0.7.16
File Size Uploaded Provenance
mettle-0.7.16.tar.gz 311.0 kB Without provenance Details

Release files / mettle-0.7.16.tar.gz

Download URL mettle-0.7.16.tar.gz
Size 311.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5847a9166e432561fe7ae1a39300821d28c20bf5f9a1b0cf22753651f81163f9
BLAKE2b-256 checksum
How to use checksums
614e72d11712098511f99a926bfd1cb205140e35d5356f77e711f07fbd84c522
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Security for mettle 0.7.16

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page