software-defined assets with dynamic mapping
See original GitHub issueIt could look something like this:
@mapped_asset(num_steps=100)
def my_mapped_asset(context, upstream_asset):
mapping_key = context.mapping_key
return some_function(upstream_asset["some_col" == mapping_key])
Considerations:
- What if some of the steps are successful but other ones aren’t? Do we yield an AssetMaterialization?
- Should the IO manager only load the chunk of the upstream asset that we’re processing within the step? How do we accomplish that?
Relevant discussions and requests:
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:7 (4 by maintainers)
Top Results From Across the Web
Introducing Software-Defined Assets | Dagster Blog
This post introduces software-defined assets, a new, declarative approach to managing data and orchestrating its maintenance.
Read more >Dynamic mapping | Elasticsearch Guide [master] | Elastic
The automatic detection and addition of new fields is called dynamic mapping. The dynamic mapping rules can be customized to suit your purposes...
Read more >Network Mapping Software | Dynamic Map Tools | NetBrain
Demand for robust data center networks continues to increase as organizations struggle to achieve business agility for application deployments. This has led to ......
Read more >DREAM: Dynamic Resource Allocation for Software-defined ...
The heart of DREAM is the per-switch resource allocator (Figure 3), which runs on the con- troller and maps TCAM counters to tasks...
Read more >Dynamic data flow--mapping data between applications
This documentation applies to the 8.1 version of Service Request Management, which is in "End of Version Support.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Since I’d prefer my graph to show
source_files
->table
to show the two data structures, I’ve added an assetsource_files
that is used as the input of the graph backed assettable
.So visually it goes from a lonely asset in your example:
To a more expressive graph:
Exploded op graph view:
Additionally, and it’s a bit out of scope here but can be useful, I’m using a sensor that may modify the list of files that the
source_files
outputs using an optional parameter and the newly added (🙏) possibility to specify arun_config
inrun_request_for_partition
(use case is automated backfill of partial partitions).A little quirk to note about the name and description that show up for the graph-backed asset on Dagit : while the name of the asset uses the name defined in the graph, the description that appears is the one from the last op of the graph, which is surprising, hence why my
merge
op has the “Loaded table” description. I think both name and description should be picked from the graph by default, and it should be possible to overwrite this default with optional arguments inAssetsDefinition.from_graph()
.Oops you are right - fixed