You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dagster外部(如Jupyter)加载软件定义资产?

Dagster外部加载资产的实现方式

Dagster支持在Jupyter这类外部环境中加载软件定义资产,虽然没有你设想中Project.load_asset这种直接封装的API,但可以通过内置工具实现相同需求,分两种场景处理:

场景1:读取已物化的资产结果(对应force_refresh=False)

如果new_users资产已经在Dagster中执行过(物化),可以直接从Dagster实例中读取存储的结果:

# Jupyter笔记本中代码
from dagster import DagsterInstance
from dagster._core.storage.io_manager import IOManager

# 连接本地Dagster实例(默认配置下无需额外参数)
instance = DagsterInstance.get()

# 获取new_users的最新物化事件
latest_materialization = instance.get_latest_materialization_event("new_users")

# 通过IO管理器读取资产数据
io_manager = instance.get_io_manager()
new_users_data = io_manager.load_input(
    context=None,
    input_def=None,
    metadata=latest_materialization.asset_materialization.metadata
)

场景2:强制重新计算资产(对应force_refresh=True)

如果需要重新执行资产计算并获取结果,可以用materialize函数:

# Jupyter笔记本中代码
from dagster import DagsterInstance, load_assets_from_modules, materialize
import your_asset_module  # 替换为你定义资产的模块名,比如assets

# 加载资产定义
asset_defs = load_assets_from_modules([your_asset_module])

# 连接Dagster实例并执行资产
instance = DagsterInstance.get()
execution_result = materialize(asset_defs, instance=instance)

# 提取new_users的计算结果
new_users_data = execution_result.output_for_node("new_users")

注意事项

  • 确保Jupyter环境能访问到你的Dagster资产模块(可将模块所在目录加入Python路径)
  • 如果使用了自定义IO管理器,需要确保在Jupyter环境中能正确初始化该管理器

内容的提问来源于stack exchange,提问作者MYK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:40:27