manifest.yaml.example 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # ============================================================
  2. # Data Nexus - manifest.yaml 示例
  3. # 将此文件重命名为 manifest.yaml 放到你的 Git 仓库根目录
  4. # Data Nexus 会在每次 push 时自动读取并处理
  5. # ============================================================
  6. # 项目名称(必填)
  7. # 同一个 project_name 的数据会归档在同一个项目下
  8. project_name: what-创作
  9. # 每个 stage 代表数据流水线中的一个环节
  10. stages:
  11. # ---------- 阶段 1:原始数据 ----------
  12. - name: raw
  13. outputs:
  14. # 示例 A:收集目录下的所有文件(默认方式)
  15. - path: data/raw/
  16. pattern: "*"
  17. # ---------- 阶段 2:清洗后数据 ----------
  18. - name: cleaned
  19. outputs:
  20. # 示例 B:收集特定类型文件,并排除临时文件
  21. - path: data/cleaned/
  22. pattern: "*.csv" # 只收集 CSV
  23. exclude: "*.tmp" # 排除 .tmp 结尾的中间文件
  24. # ---------- 阶段 3:多模式匹配与复杂过滤 ----------
  25. - name: output
  26. outputs:
  27. # 示例 C:使用列表指定多个包含模式和多个排除模式
  28. - path: results/
  29. pattern:
  30. - "*.pdf"
  31. - "*.xlsx"
  32. exclude:
  33. - "~*" # 排除 Office 临时锁定文件
  34. - "draft_*" # 排除草稿
  35. # 示例 D:也可以指定单个文件
  36. - path: final_report.docx
  37. # ---------- 阶段 4:带有元数据与 JSON 值提取的数据 ----------
  38. - name: enhanced_data
  39. outputs:
  40. # 示例 E:指定文件为“输入”,并打上标签
  41. - path: data/input/article.md
  42. direction: input # 指定是 input 还是 output
  43. label: 帖子输入 # 指定该数据的业务名称(标签)
  44. # 示例 F:指定文件为“输出”,并且如果是 JSON 文件,可以提取特定 key 的值
  45. # 同时指定深度 directory_depth: 2,这样如果文件在 `data/output/foo/bar.json`
  46. # 它的 group_key 会被设置成 `data/output` 而不是默认的 `data/output/foo`
  47. - path: data/output/
  48. pattern: "*.json"
  49. direction: output
  50. label: 灵感点
  51. extract_json_key: "data.idea_content" # 会解析 JSON 并提取对应 key 的值保存
  52. directory_depth: 2
  53. # ============================================================
  54. # 字段说明
  55. # ============================================================
  56. #
  57. # project_name (必填) 项目名称,同名自动归档到同一项目
  58. #
  59. # stages (推荐) 阶段列表,每个阶段包含:
  60. # - name (必填) 阶段名称,如 raw / cleaned / output
  61. # - outputs (必填) 输出规则列表,每条规则包含:
  62. # - path (必填) 文件路径或目录路径
  63. # 以 / 结尾 → 视为目录,收集目录下的文件
  64. # 不以 / 结尾 → 视为单个文件
  65. # - pattern (可选) 文件包含规则,支持通配符或列表
  66. # 示例: "*.csv"
  67. # 示例: ["*.csv", "*.json"]
  68. # - exclude (可选) 文件排除规则,支持通配符或列表
  69. # 示例: "*.tmp"
  70. # 示例: ["*.log", ".DS_Store"]
  71. # - direction (可选) 该文件的流入/流出方向(如 'input', 'output' 等)
  72. # - label (可选) 该文件的业务称呼/标签(如 '帖子输入', '灵感点' 等)
  73. # - extract_json_key (可选) 针对 JSON 文件,配置要提取解析的 json key 路径(支持由于嵌套的 . 分隔,例如 'data.content')。提取的值会被记录在数据库中。
  74. # - directory_depth (可选) 定义这组规则生成的文件关联用的父目录深度(如 1 或 2,用来将不同子目录的关联文件合并到一行展示)。
  75. #
  76. # ============================================================
  77. # 工作流程
  78. # ============================================================
  79. #
  80. # 1. 开发者在仓库根目录放置 manifest.yaml
  81. # 2. 开发者 git push 代码
  82. # 3. Gogs Webhook 触发 → Data Nexus 收到推送通知
  83. # 4. Data Nexus 读取该 commit 的 manifest.yaml
  84. # 5. 根据 stages 配置,自动提取对应的产出文件
  85. # 6. 文件上传到 OSS,元数据记录到数据库
  86. # 7. 通过 Web 页面即可浏览和下载
  87. #
  88. # 注意:如果某次 push 没有改变任何数据文件(仅改了代码),
  89. # Data Nexus 会自动识别并跳过,不会创建空的版本记录。
  90. # ============================================================