-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[docs] [pipes] - Add Concept page (#17048)
## Summary & Motivation This PR adds the Dagster Pipes concept page to the docs. Note: BK will fail for this PR until #17057 is merged. ## How I Tested These Changes 👀 --------- Co-authored-by: Pedram Navid <[email protected]>
- Loading branch information
1 parent
7f7eff5
commit 90d0ca5
Showing
6 changed files
with
84 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
--- | ||
title: Dagster Pipes | Dagster Docs | ||
description: "Dagster Pipes provides a protocol between the orchestration environment (Dagster) and external execution (ex: Databricks) and a toolkit for building implementations of that protocol." | ||
--- | ||
|
||
# Dagster Pipes (Experimental) | ||
|
||
<Note> | ||
This feature is currently <strong>experimental</strong>. | ||
</Note> | ||
|
||
Dagster Pipes is a toolkit for building integrations between Dagster and external execution environments. It standardizes the process of passing parameters, injecting context information, ingesting logs, and collecting metadata all while remaining agnostic to how remote computations are launched in those environments. This enables the separation of orchestration and business logic in the Dagster ecosystem. | ||
|
||
It also smooths the process of incorporating pre-existing code, business logic, and execution environments into Dagster. With Dagster Pipes and a few lines of code, you can execute your code through the orchestrator. In turn, you can stream logs and metadata back to Dagster so you can leverage its observability, lineage, cataloging, and debugging capabilities. | ||
|
||
--- | ||
|
||
## Benefits | ||
|
||
With Dagster Pipes, you can: | ||
|
||
- Incorporate existing code into Dagster without huge refactors | ||
- Onboard stakeholder teams onto Dagster incrementally | ||
- Run code in external environments, and: | ||
- Easily pass parameters to the code | ||
- Stream unstructured logs and structured metadata back to Dagster | ||
- Separate orchestration and business logic environments | ||
- Use languages other than Python with Dagster | ||
|
||
--- | ||
|
||
## Limitations | ||
|
||
While Dagster Pipes is lightweight and flexible, there are a few limitations to be aware of: | ||
|
||
- **Step launchers and Pipes can't currently be used together.** Dagster Pipes is a lightweight alternative to step launchers. Think of this as an either-or situation - you can use step launchers **or** you can use Dagster Pipes. If your external code requires the core Dagster module (see below), you should use step launchers instead of Pipes. | ||
|
||
- **Some Dagster concepts aren't supported for use in external processes.** Dagster Pipes (`dagster-pipes`) doesn't include the core Dagster (`dagster`) library. As such, concepts like resources and I/O managers, which are included in `dagster`, aren't available for use in external processes executed by Dagster Pipes. | ||
|
||
For example, I/O managers aren't currently supported, as Dagster Pipes isn't built for processing data in memory. To process data in memory in Pyspark, you could use an I/O manager [as demonstrated in the Pyspark integration guide](/integrations/spark#running-pyspark-code-in-assets). Otherwise, in a remote case, you can use Pipes. | ||
|
||
--- | ||
|
||
## How it works | ||
|
||
Dagster Pipes provides a protocol between the orchestration environment (Dagster) and external execution (ex: Databricks) and a toolkit for building implementations of that protocol. | ||
|
||
When Dagster Pipes is invoked, several steps will be carried out in **Dagster's orchestration process** and in the **external process**, such as Databricks. | ||
|
||
### In the orchestration process (Dagster) | ||
|
||
When Dagster Pipes is called in a Dagster asset, Dagster launches the external process with parameters and context information (ex: `partition_key`, `asset_key`, etc.) | ||
|
||
<Image | ||
alt="Diagram explaining the Dagster Pipes process" | ||
src="/images/guides/dagster-pipes/dagster-pipes-process.png" | ||
width={1000} | ||
height={393} | ||
/> | ||
|
||
### In the external process | ||
|
||
The process starts and loads the context info provided by Dagster. While the process runs, execution data, logs, and any specified metadata are streamed back to Dagster. | ||
|
||
After Dagster receives the data from the external process, it’ll be visible in the [Dagster UI](/concepts/webserver/ui). | ||
|
||
--- | ||
|
||
## Usage | ||
|
||
Ready to get started with Dagster Pipes? Check out the Dagster Pipes tutorial to get up and running! |
6 changes: 0 additions & 6 deletions
6
...ent/guides/dagster-pipes/modifying-existing-code-to-work-with-dagster-pipes.mdx
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+68.6 KB
docs/next/public/images/guides/dagster-pipes/dagster-pipes-process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
90d0ca5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deploy preview for dagster-docs ready!
✅ Preview
https://dagster-docs-acm6h0bts-elementl.vercel.app
https://master.dagster.dagster-docs.io
Built with commit 90d0ca5.
This pull request is being automatically deployed with vercel-action