Skip to main content

数据集(Dataset)概述

数据集是 MimirQ 中知识组织的顶层容器。每个数据集归属于一个 Tenant,包含若干文档(Document),并通过分类(Category)进行多维归类。检索时以数据集为边界执行权限过滤与向量召回。

核心概念模型

生命周期状态

数据集本身没有显式 status 字段,但通过 API 操作存在逻辑生命周期:

状态含义触发方式
Active正常可用,可上传/检索创建后默认
Purged保留数据集壳,清除全部文档与向量POST /purge
Cloned从源数据集复制配置到新数据集POST /clone
Deleted物理删除,不可恢复DELETE /datasets/:id

核心字段

字段类型说明
idUUID主键
tenant_idUUID租户隔离键
nameString(255)数据集名称,租户内唯一
descriptionString(1024)可选描述
permissionEnumonly_me / all_team_members / partial_members
owner_idString(255)创建者 account ID
dataset_metadataJSONBpipeline/ingestion policy/retention policy 等配置
created_atDateTime创建时间
updated_atDateTime最后更新时间
metadata 存储策略

dataset_metadata (DB column: metadata) 是一个 JSONB 字段,承载 pipeline 配置、ingestion policy、FLS policy、retention policy、RAG defaults 等。各 service 通过 parse_*_from_metadata() 读取,upsert_*_metadata() 写入,无需额外表。

与其他实体的关系

关联实体关系说明
Document1:N一个数据集包含多个文档
DatasetCategoryM:N通过 dataset_category_memberships 关联
DatasetPermission1:Npartial_members 模式的用户白名单
DatasetGroupPermission1:N基于 TenantGroup 的组权限
PrecheckScanRun1:N入库前质量预检
ProfileScanRun1:N数据集画像深度扫描
IngestionRun1:N统一入库批次追踪
ConnectorRun1:N连接器同步批次
DbCatalogTable1:NDB 连接器表目录

租户隔离

所有查询通过 tenant_id 复合索引过滤。数据集表有 (tenant_id, id) 唯一约束,子表通过复合外键 (tenant_id, dataset_id) 引用,确保跨租户不可访问。

warning

删除数据集会级联删除所有关联文档、chunks、权限记录、precheck/profile 扫描记录。此操作不可逆。

相关链接