Skip to main content

The easiest way to create data pipelines in Python.

Project description

prism logo

PyPI

CI Linux CI MacOS Checked with mypy

: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

<HH:MM:SS> | INFO  | Running with prism v0.2.3...
<HH:MM:SS> | INFO  | Creating project directory...
 
      ______
   ____  __ \_____(_)________ _______
 _____  /_/ / ___/ / ___/ __ `__ \ ____
____ / ____/ /  / (__  ) / / / / / _____
 ___/_/   /_/  /_/____/_/ /_/ /_/  ___

Welcome to Prism, the easiest way to create clean, modular data pipelines
using Python!

To get started, navigate to your newly created project "my_first_project" and try
running the following commands:
    prism compile
    prism run

Consult the documentation here for more information on how to get started.
    docs.runprism.com

Happy building!
--------------------------------------------------------------------------------

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.2.3...
<HH:MM:SS> | INFO  | Found project directory at /my_first_project
 
<HH:MM:SS> | INFO  | RUNNING 'parsing prism_project.py'.............................................. [RUN]
<HH:MM:SS> | INFO  | FINISHED 'parsing prism_project.py'............................................. [DONE in 0.03s]
<HH:MM:SS> | INFO  | RUNNING 'task DAG'.............................................................. [RUN]
<HH:MM:SS> | INFO  | FINISHED 'task DAG'............................................................. [DONE in 0.01s]
<HH:MM:SS> | INFO  | RUNNING 'creating pipeline, DAG executor'....................................... [RUN]
<HH:MM:SS> | INFO  | FINISHED 'creating pipeline, DAG executor'...................................... [DONE in 0.01s]
 
<HH:MM:SS> | INFO  | ===================== tasks (vermilion-hornet-Gyycw4kRWG) =====================
<HH:MM:SS> | INFO  | 1 of 2 RUNNING EVENT 'decorated_task.example_task'.............................. [RUN]
<HH:MM:SS> | INFO  | 1 of 2 FINISHED EVENT 'decorated_task.example_task'............................. [DONE in 0.02s]
<HH:MM:SS> | INFO  | 2 of 2 RUNNING EVENT 'class_task.ExampleTask'................................... [RUN]
<HH:MM:SS> | INFO  | 2 of 2 FINISHED EVENT 'class_task.ExampleTask'.................................. [DONE in 0.01s]
 
<HH:MM:SS> | INFO  | Done!
--------------------------------------------------------------------------------

Documentation

To get started with Prism projects, check out our documentation. Some sections of interest include:

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
dbt pip install "prism-ds[dbt]"
Google BigQuery pip install "prism-ds[bigquery]"
Postgres pip install "prism-ds[postgres]"
Presto pip install "prism-ds[presto]"
PySpark pip install "prism-ds[pyspark]"
Redshift pip install "prism-ds[redshift]"
Snowflake pip install "prism-ds[snowflake]"
Trino pip install "prism-ds[trino]"

Agents

Agents allow users to run their projects on external computing environments, e.g., Docker containers, EC2 instances, EMR clusters, and more. Prism currently supports the following agents:

Agent Command
docker pip install "prism-ds[docker]"
ec2 N/A - comes with base Prism

Product Roadmap

We're always looking to improve our product. Here's what we're working on at the moment:

  • Additional Agents: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prism-ds-0.2.4.tar.gz (409.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prism_ds-0.2.4-py3-none-any.whl (549.5 kB view details)

Uploaded Python 3

File details

Details for the file prism-ds-0.2.4.tar.gz.

File metadata

  • Download URL: prism-ds-0.2.4.tar.gz
  • Upload date:
  • Size: 409.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for prism-ds-0.2.4.tar.gz
Algorithm Hash digest
SHA256 09264d5ce890023def8f287ac0f52c552fb51b2b3dec7cd939bcd5d4dc344c1b
MD5 f147f931e2f2f8b88344dfd51412fef7
BLAKE2b-256 fd696eb4a9d8468c17e5517d9986612a60f0b31c51456dd003a88cf73877ea72

See more details on using hashes here.

File details

Details for the file prism_ds-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: prism_ds-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 549.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for prism_ds-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 711c51a4b2b1e9f463a8d75c273f9020e9374384b9276ac722d6a7f4dc90328f
MD5 a7ec47fa537bcc29b4f5dc0182fe8b36
BLAKE2b-256 045e56fea63698d407c331c45e3be27c37a632d8216cee34f696a6325b9cdb90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page