跳转到内容

导出为可移植格式

导出为可移植格式会将项目的工作流打包为一个独立的 Python 程序,该程序在 DuckDB 上运行,无需连接 PlaidCloud。它会生成项目逻辑和数据的可移植副本,可独立离线运行。

这是单向导出。生成的包是时间点快照,不会同步回来;更改后重新导出会生成新的包。

项目工作流 + 数据导出单向可移植包 — 离线运行Python 程序DuckDB 引擎Parquet 数据COVERAGE.mdSQL 步骤:精确有副作用的步骤:存根
单向的时间点导出:项目会变成一个独立的 Python + DuckDB 包,无需连接 PlaidCloud 即可运行。SQL 转换可精确再现;有副作用的步骤以存根形式提供,其保真度记录在 COVERAGE.md 中。
  1. 打开 Analyze,选择项目选项卡。
  2. 选择单个项目。
  3. 打开操作菜单(或右键单击项目),选择导出为可移植格式,它位于导出项目旁边。
  4. 在对话框中:
    • 文档账户 — 包要写入的文档账户。
    • 文件夹路径 — 该账户内的文件夹,例如 /exports。
    • 包含数据 — 选中时(默认),源表和快照表会以 Parquet 形式打包,使包无需任何外部数据即可运行。取消选中则只提供代码和架构约定,之后由您自行填充数据。
  5. 点击导出。完成后,会有一条消息确认包的写入位置以及生成了多少个表的快照。

该操作要求具有项目访问权限和读取其表的权限,与目前导出表数据所需的访问级别相同。

导出内容是一个 .zip 文件,其中包含:

  • pipeline_<workflow>.py — 每个工作流一个脚本,步骤按执行顺序排列。
  • config.py — 引擎选择(默认为 DuckDB)和项目架构名称。
  • _runtime.py — 一个小型引擎垫片,是除 DuckDB 之外唯一的依赖项。
  • stubs.py — 用于不可移植操作的空操作函数,每个函数都带有原始步骤配置。
  • data/ — 源表和冻结表的 Parquet 快照(选中包含数据时)。
  • requirements.txt — Python 依赖项(仅 duckdb)。
  • README.md、COVERAGE.md、RUN_ORDER.md — 分别说明如何运行、每个步骤的保真度,以及运行工作流脚本的顺序。
  1. 解压包并创建 Python 环境:

    终端窗口
    python -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
  2. 按 RUN_ORDER.md 中列出的顺序运行每个工作流脚本:

    终端窗口
    python pipeline_<workflow>.py

每个脚本都会在本地 DuckDB 数据库(默认为 export.duckdb)中构建其表。SQL 转换步骤会实时重新计算;存根步骤会打印提示并保留其快照输出。若要让包指向您自己的仓库而不是 DuckDB,请在 config.py 中设置 ENGINE。