The easiest way to create data pipelines in Python.
Project description
:wave: Welcome to Prism!
Prism is the easiest way to create data pipelines in Python.
Introduction
Data projects often require multiple steps that need to be executed in sequence (think extract-transform-load, data wrangling, etc.). With Prism, users can break down their project into modular tasks, manage dependencies, and execute complex computations in sequence.
Here are some of Prism's main features:
- Real-time dependency declaration: With Prism, analysts can declare dependencies using a simple function call. No need to explicitly keep track of the pipeline order — at runtime, Prism automatically parses the function calls and builds the dependency graph.
- Intuitive logging: Prism automatically logs events for parsing the configuration files, compiling the tasks and creating the DAG, and executing the tasks. No configuration is required.
- Flexible CLI: Users can instantiate, compile, and run projects using a simple, but powerful command-line interface.
- “Batteries included”: Prism comes with all the essentials needed to get up and running quickly. Users can create and run their first DAG in less than 2 minutes.
- Integrations: Prism integrates with several tools that are popular in the data community, including Snowflake, Google BigQuery, Redshift, PySpark, and dbt. We're adding more integrations every day, so let us know what you'd like to see!
Getting Started
Prism can be installed via pip
. Prism requires Python >= 3.7.
pip install --upgrade pip
pip install prism-ds
Start your first Prism project with the prism init
command:
$ prism init --project-name my_first_project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Running with Prism v0.3.0...
Creating template project at ./my_first_project...
______
____ __ \_____(_)________ _______
_____ /_/ / ___/ / ___/ __ `__ \ ____
____ / ____/ / / (__ ) / / / / / _____
___/_/ /_/ /_/____/_/ /_/ /_/ ___
Welcome to Prism, the easiest way to create clean, modular data pipelines
using Python!
To get started, navigate to your newly created project "testsd" and try
running the following commands:
> python main.py
> prism run
> prism graph
Consult the documentation here for more information on how to get started.
docs.runprism.com
Happy building!
Done!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Run your project by navigating to your project directory and running prism run
:
$ cd my_first_project
$ prism run
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[HH:MM:SS] INFO | Running with Prism v0.3.0...
[HH:MM:SS] INFO | Creating run magnetic-pony-BBDYfwdDzH for client my_first_project-1.0...
[HH:MM:SS] INFO | Found 2 task(s) in 2 module(s) in job magnetic-pony-BBDYfwdDzH...
[HH:MM:SS] INFO | Parsing task dependencies............................................... [RUN]
[HH:MM:SS] INFO | FINISHED parsing task dependencies...................................... [DONE in 0.01s]
────────────────────────────────────────────── Tasks ──────────────────────────────────────────────
[HH:MM:SS] INFO | 1 of 2 RUNNING TASK example-decorated-task.............................. [RUN]
[HH:MM:SS] INFO | 1 of 2 FINISHED TASK example-decorated-task............................. [DONE in 0.02s]
[HH:MM:SS] INFO | 2 of 2 RUNNING TASK example-class-task.................................. [RUN]
[HH:MM:SS] INFO | 2 of 2 FINISHED TASK example-class-task................................. [DONE in 0.02s]
Done!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Documentation
To get started with Prism projects, check out our documentation. Some sections of interest include:
- :key: Fundamentals
- :seedling: CLI
- :electric_plug: Integrations
- :bulb: Use Cases
In addition, check out some example projects.
Integrations
Prism integrates with a wide variety of third-party developer tools There are two kinds of integrations that Prism supports: adapters, and agents.
Adapters
Adapters allow users to connect to data warehouses or analytics engines. Prism currently supports the following adapters:
Adapter | Command |
---|---|
Google BigQuery | pip install "prism-ds[bigquery]" |
Postgres | pip install "prism-ds[postgres]" |
Presto | pip install "prism-ds[presto]" |
Redshift | pip install "prism-ds[redshift]" |
Snowflake | pip install "prism-ds[snowflake]" |
Trino | pip install "prism-ds[trino]" |
Product Roadmap
We're always looking to improve our product. Here's what we're working on at the moment:
- Compatibility with Alto agents: Docker containers, EC2 clusters, EMR clusters, Databricks clusters, and more!
- Additional adapters: Celery, Dask, MySQL, Presto, and more!
- Cloud deployment: Managed orchestration platform to deploy Prism projects in the cloud
Let us know if you'd like to see another feature!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file prism-ds-0.3.0.tar.gz
.
File metadata
- Download URL: prism-ds-0.3.0.tar.gz
- Upload date:
- Size: 493.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc23f80565fa8a84d7e79ffba90e00f217a50410a0daa249667a3d6d5fa3b0a0 |
|
MD5 | a8bf750598bd2d0ebb57be862450249d |
|
BLAKE2b-256 | 43c3563f35b5a9f2f5fd4971029a2348813794760370a86c51a65603c4dd4143 |
File details
Details for the file prism_ds-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: prism_ds-0.3.0-py3-none-any.whl
- Upload date:
- Size: 546.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b28abd2e8cc2df2c45cfc640681b7446ec984f1105a455514c7aacea58f9a8c |
|
MD5 | 39b588f8217066080461d407a7b1fc71 |
|
BLAKE2b-256 | 62ef823aca8644a70e729ab7fc53439da2fcffa7f15af84f06f3d59cece4ed38 |