Repository navigation
Replies: 1 comment
|
It will be good to include architecture diagrams to show how "datasets" are used, and include screenshots to show how existing operators (e.g., CSV File Scan, and Python UDF) reads a file by giving a specific path. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
📌 Context & Current State
We recently implemented the LakeFS repository mounting feature for Python UDFs. Currently, mounting a LakeFS repository into a workflow is strictly accessible via Python execution inside UDFs.
While this works well for custom Python scripts, the mounting capability can provide immense value if exposed directly to native operators within Computing Units (CUs) during workflow execution.
🎯 Problem Statement & Opportunity
Previously, native operators faced several limitations when dealing with LakeFS or S3 datasets:
By mounting a LakeFS repository directly inside a Computing Unit (CU), the entire dataset version becomes accessible as a native filesystem path throughout the workflow run.
💡 Proposed Use Cases for Native Operators
We want to explore different ways native operators can leverage mounted LakeFS repositories. Here are a few initial ideas:
1. Pattern-Based Scan Operators
Scan operators could accept a dataset version path (or subfolder) along with a glob pattern (e.g.,
*.csv,data_*.parquet). Depending on configuration, the operator could:2. "List Files" Source Operator
A dedicated source operator that scans a mounted directory and outputs file paths/metadata downstream. Downstream operators can then process individual files in parallel or sequentially.
3. In-Place File Processing
Operators can read mounted files directly via standard filesystem interfaces (
/mnt/lakefs/...) rather than executing expensive pre-copying operations to local/tmpdirectories.4. Dynamic Multi-Port Output
Allow a scan operator to dynamically generate output ports based on the number of matching files discovered during workflow setup or runtime execution.
⚡ Benefits: Mounting vs. Direct S3 API Calls
Why leverage filesystem mounting instead of standard S3 API client calls?
open(),read(),ls)💬 Questions for the Community
We would love to get your feedback on this proposal:
User Experience
https://github.com/user-attachments/assets/e45ac438-4c42-4cd6-878e-89257c648a9e

All reactions