Files
2026-05-14 16:56:48 +08:00

568 lines
44 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>开源版 vs 专业版功能对比 — 沈阳顺义数据项目</title>
<style>
:root {
--color-primary: #1677FF;
--color-primary-hover: #4096FF;
--color-primary-active: #0958D9;
--color-primary-bg: #E6F4FF;
--color-success: #52C41A;
--color-success-bg: #F6FFED;
--color-warning: #FAAD14;
--color-warning-bg: #FFFBE6;
--color-error: #FF4D4F;
--color-error-bg: #FFF2F0;
--color-info: #1677FF;
--bg: #F5F5F5;
--bg-container: #FFFFFF;
--bg-elevated: #FAFAFA;
--border: #D9D9D9;
--border-light: #F0F0F0;
--text-primary: #141414;
--text-secondary: #595959;
--text-tertiary: #8C8C8C;
--radius-sm: 6px;
--radius-md: 8px;
--radius-lg: 12px;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 6px -1px rgba(0,0,0,0.02);
--shadow-md: 0 2px 4px rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.04);
--shadow-lg: 0 4px 8px rgba(0,0,0,0.06), 0 8px 24px -4px rgba(0,0,0,0.08);
--header-h: 64px;
--content-max: 1400px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 14px; line-height: 22px; color: var(--text-primary); background: var(--bg);
}
.top-bar {
height: var(--header-h); background: var(--bg-container); border-bottom: 1px solid var(--border);
display: flex; align-items: center; padding: 0 32px; position: sticky; top: 0; z-index: 100;
box-shadow: var(--shadow-sm);
}
.top-bar h1 {
font-size: 18px; font-weight: 600; color: var(--text-primary);
background: linear-gradient(135deg, var(--color-primary) 0%, #722ED1 100%);
-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.top-bar .back-link { margin-right: 16px; color: var(--color-primary); text-decoration: none; font-size: 14px; }
.top-bar .back-link:hover { color: var(--color-primary-hover); }
.top-bar .subtitle { margin-left: 16px; color: var(--text-tertiary); font-size: 13px; }
.container { max-width: var(--content-max); margin: 0 auto; padding: 32px 24px 64px; }
/* Summary Cards */
.summary-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 32px; }
.summary-card {
background: var(--bg-container); border: 1px solid var(--border); border-radius: var(--radius-md);
padding: 20px 24px; box-shadow: var(--shadow-sm); text-align: center;
}
.summary-card .num { font-size: 36px; font-weight: 700; line-height: 1.2; }
.summary-card .label { font-size: 13px; color: var(--text-secondary); margin-top: 4px; }
.summary-card.green .num { color: var(--color-success); }
.summary-card.yellow .num { color: var(--color-warning); }
.summary-card.red .num { color: var(--color-error); }
.summary-card.blue .num { color: var(--color-primary); }
/* Legend */
.legend {
display: flex; gap: 24px; align-items: center; background: var(--bg-container);
border: 1px solid var(--border); border-radius: var(--radius-md); padding: 12px 20px;
margin-bottom: 24px; box-shadow: var(--shadow-sm);
}
.legend-item { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.legend-icon { width: 20px; height: 20px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: #fff; font-weight: 700; }
.legend-icon.included { background: var(--color-success); }
.legend-icon.partial { background: var(--color-warning); }
.legend-icon.excluded { background: var(--color-error); }
/* Module Section */
.module-section {
background: var(--bg-container); border: 1px solid var(--border); border-radius: var(--radius-md);
margin-bottom: 16px; box-shadow: var(--shadow-sm); overflow: hidden;
}
.module-header {
display: flex; align-items: center; padding: 16px 24px; cursor: pointer;
user-select: none; transition: background 0.15s ease; gap: 12px;
}
.module-header:hover { background: var(--bg-elevated); }
.module-header .icon {
width: 32px; height: 32px; border-radius: var(--radius-sm); display: flex;
align-items: center; justify-content: center; font-size: 16px; font-weight: 700;
color: #fff; flex-shrink: 0;
}
.module-header .title { font-size: 16px; font-weight: 600; }
.module-header .stats { margin-left: auto; display: flex; gap: 16px; font-size: 12px; color: var(--text-tertiary); }
.module-header .stats .stat-green { color: var(--color-success); font-weight: 600; }
.module-header .stats .stat-yellow { color: var(--color-warning); font-weight: 600; }
.module-header .stats .stat-red { color: var(--color-error); font-weight: 600; }
.module-header .arrow {
transition: transform 0.2s ease; font-size: 12px; color: var(--text-tertiary);
}
.module-header.active .arrow { transform: rotate(90deg); }
.module-body { display: none; border-top: 1px solid var(--border-light); }
.module-body.active { display: block; }
/* Table */
.comp-table { width: 100%; border-collapse: collapse; }
.comp-table th {
background: var(--bg-elevated); font-weight: 600; text-align: left;
padding: 10px 14px; border: 1px solid var(--border); font-size: 13px;
position: sticky; top: 0; z-index: 10;
}
.comp-table th:first-child { width: 140px; }
.comp-table th:nth-child(2) { width: 45%; }
.comp-table th:nth-child(3) { width: 70px; text-align: center; }
.comp-table th:nth-child(4) { width: 70px; text-align: center; }
.comp-table th:nth-child(5) { width: 200px; }
.comp-table td {
padding: 10px 14px; border: 1px solid var(--border); background: var(--bg-container);
vertical-align: top; font-size: 13px;
}
.comp-table tbody tr:hover td { background: var(--color-primary-bg); }
.comp-table .sub-module { font-weight: 600; color: var(--text-primary); }
.comp-table .desc { color: var(--text-secondary); line-height: 1.6; }
.comp-table .desc ul { margin: 4px 0 0 16px; }
.comp-table .desc li { margin-bottom: 2px; }
.comp-table .center { text-align: center; }
/* Badges */
.badge {
display: inline-flex; align-items: center; justify-content: center;
width: 24px; height: 24px; border-radius: 6px; font-size: 13px;
}
.badge-green { background: var(--color-success-bg); color: var(--color-success); border: 1px solid rgba(82,196,26,0.3); }
.badge-yellow { background: var(--color-warning-bg); color: var(--color-warning); border: 1px solid rgba(250,173,20,0.3); }
.badge-red { background: var(--color-error-bg); color: var(--color-error); border: 1px solid rgba(255,77,79,0.3); }
.diff-cell {
font-size: 12px; color: var(--text-secondary); line-height: 1.5;
background: var(--bg-elevated); border-radius: 4px; padding: 6px 10px;
}
/* Collapse all button */
.toolbar { display: flex; gap: 8px; margin-bottom: 16px; }
.toolbar button {
padding: 6px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm);
background: var(--bg-container); color: var(--text-secondary); font-size: 13px;
cursor: pointer; transition: all 0.15s ease;
}
.toolbar button:hover { border-color: var(--color-primary); color: var(--color-primary); background: var(--color-primary-bg); }
/* Footer */
.footer {
margin-top: 48px; padding-top: 16px; border-top: 1px solid var(--border-light);
font-size: 12px; color: var(--text-tertiary); text-align: center;
}
/* Responsive */
@media (max-width: 768px) {
.top-bar { padding: 0 16px; }
.container { padding: 24px 16px 48px; }
.summary-row { grid-template-columns: repeat(2, 1fr); }
.module-header { padding: 12px 16px; }
.comp-table { font-size: 12px; }
.comp-table th, .comp-table td { padding: 8px 10px; }
}
</style>
</head>
<body>
<header class="top-bar">
<a class="back-link" href="../../index.html">&larr; 返回知识库</a>
<h1>开源版 vs 专业版功能对比</h1>
<span class="subtitle">沈阳顺义数据项目 — 13 大模块逐项对比</span>
</header>
<div class="container">
<!-- Summary Cards -->
<div class="summary-row">
<div class="summary-card green">
<div class="num" id="countIncluded">--</div>
<div class="label">开源版已包含 (✅)</div>
</div>
<div class="summary-card yellow">
<div class="num" id="countPartial">--</div>
<div class="label">部分包含 (🟡)</div>
</div>
<div class="summary-card red">
<div class="num" id="countExcluded">--</div>
<div class="label">不包含 (❌)</div>
</div>
<div class="summary-card blue">
<div class="num" id="countTotal">--</div>
<div class="label">总功能项</div>
</div>
</div>
<!-- Legend -->
<div class="legend">
<span style="font-weight:600;color:var(--text-primary);">图例:</span>
<div class="legend-item"><div class="legend-icon included"></div> 开源版包含</div>
<div class="legend-item"><div class="legend-icon partial"></div> 部分包含(功能受限)</div>
<div class="legend-item"><div class="legend-icon excluded"></div> 不包含(专业版独占)</div>
</div>
<!-- Toolbar -->
<div class="toolbar">
<button onclick="toggleAll(true)">全部展开</button>
<button onclick="toggleAll(false)">全部折叠</button>
<button onclick="showOnlyGap()">只看差异 (🟡 ❌)</button>
<button onclick="showAll()">显示全部</button>
</div>
<!-- Content -->
<div id="content"></div>
<div class="footer">
数据来源:沈阳顺义数据项目建设方案 — 功能需求对比分析 &middot; 2026-05-12
</div>
</div>
<script>
// ===== Module Colors =====
const moduleColors = [
'#1677FF','#52C41A','#FAAD14','#EB2F96','#722ED1',
'#13C2C2','#FA8C16','#F5222D','#2F54EB','#8C8C8C',
'#08979C','#6366F1','#A855F7'
];
// ===== Data =====
const modules = [
{
name: "系统管理",
subs: [
{ name: "用户管理", desc: "支持用户账号的全生命周期管理(新增、编辑、删除、启用/停用、查询),支持密码重置与角色分配,实现统一身份管理,满足组织级用户治理需求。", oss: true, pro: true, diff: "" },
{ name: "角色管理", desc: "提供基于角色的访问控制(RBAC)机制,支持自定义角色并配置细粒度权限,实现功能与数据权限的灵活管控。", oss: true, pro: true, diff: "" },
{ name: "菜单管理", desc: "支持系统菜单与功能点的可视化配置,支持多级树形结构,可与角色绑定,实现界面与权限的动态控制。", oss: true, pro: true, diff: "" },
{ name: "部门管理", desc: "支持组织架构的层级化配置与维护,构建企业级部门树,为权限分配、任务归属提供组织基础。", oss: true, pro: true, diff: "" },
{ name: "岗位管理", desc: "支持岗位定义与用户绑定,实现"--"一体化管理,提升人员职责与系统权限的匹配度。", oss: true, pro: true, diff: "" },
{ name: "字典管理", desc: "提供系统级数据字典管理能力,支持状态、类型、类别等公共编码的统一维护,确保数据口径一致、前端显示规范。", oss: true, pro: true, diff: "" },
{ name: "参数设置", desc: "支持系统运行参数的集中配置与动态调整,提升系统灵活性与可维护性。", oss: true, pro: true, diff: "" },
{ name: "通知公告", desc: "支持系统公告、运维通知、业务提醒的发布、编辑与管理,实现重要信息的定向推送与全员触达。", oss: true, pro: true, diff: "" },
{ name: "日志管理", desc: "集中记录用户操作日志与系统运行日志,支持按时间、用户、操作类型等多维度检索、下载与审计,满足合规与问题追溯需求。", oss: true, pro: true, diff: "" }
]
},
{
name: "基础管理",
subs: [
{ name: "主题管理", desc: "提供数据资产的主题化分类能力,支持按业务域(如客户、财务、供应链)组织资产,提升资产可发现性与管理逻辑性。", oss: true, pro: true, diff: "" },
{ name: "应用管理", desc: "提供对接入平台的应用进行统一管理的能力,支持应用的注册、鉴权、调用与监控,确保跨系统数据服务安全、规范与可控。", oss: true, pro: true, diff: "" },
{ name: "类目管理", desc: "提供多维度的类目管理能力,支持对数据资产、逻辑模型、数据元、任务、数据开发、作业和 API 等对象进行统一分类。通过树形结构和多层级管理机制,实现灵活的组织与快速查找。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据采集",
subs: [
{ name: "数据源管理\n(关系型数据库)", desc: "支持接入并管理主流关系型数据库数据源,包括 MySQL、PostgreSQL、Oracle、SQL Server、达梦(DM8)、人大金仓(KingbaseES)等。", oss: "partial", pro: true, diff: "开源版仅支持 MySQL、Oracle、达梦(DM8);PostgreSQL、SQL Server、人大金仓需专业版。" },
{ name: "数据源管理\n(大数据数据库)", desc: "支持 Hive、Phoenix(基于 HBase)、Doris、ClickHouse 等大数据类数据库的连接与管理。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "数据源管理\n(消息队列)", desc: "支持 Kafka 等主流消息队列的数据源接入,用于实时数据流的接入与配置管理。", oss: true, pro: true, diff: "" },
{ name: "数据源管理\n(文件类型)", desc: "支持 FTP、阿里云 OSS、HDFS 等文件类型的数据源介入。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "连接测试", desc: "提供对接入数据源、服务或外部系统的连接有效性验证能力,确保在配置完成后能够快速检测连通性与可用性。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据标准",
subs: [
{ name: "逻辑模型管理", desc: "支持逻辑模型的创建、修改、查询和删除,提供灵活的表结构与字段配置能力。", oss: true, pro: true, diff: "" },
{ name: "表结构导入与建模", desc: "支持从 MySQL、PostgreSQL、Oracle、SQL Server、达梦(DM8)、人大金仓(KingbaseES)、Hive、Doris、ClickHouse 等数据库中直接提取表结构。", oss: "partial", pro: true, diff: "开源版仅支持 MySQL、Oracle、达梦(DM8);其余数据库需专业版。" },
{ name: "字段标准化", desc: "支持逻辑模型字段与标准数据元关联,实现字段级的命名、类型、格式统一,推动数据标准落地,并支撑自动化的稽查与清洗。", oss: true, pro: true, diff: "" },
{ name: "物化与部署", desc: "支持将逻辑模型物化为物理表,并部署至多种数据库。", oss: true, pro: true, diff: "" },
{ name: "字典表维护", desc: "支持字典表的新增、编辑与删除,覆盖名称、类型、格式等基础信息配置;提供字典项的增删改查功能。", oss: true, pro: true, diff: "" },
{ name: "数据元维护", desc: "支持数据元的新增、编辑、删除与查询,覆盖字段名称、类型、长度、格式等要素。", oss: true, pro: true, diff: "" },
{ name: "数据元绑定与规则关联", desc: "支持数据元与资产字段或逻辑模型字段的关联;可为数据元绑定清洗规则或稽查规则。", oss: true, pro: true, diff: "" },
{ name: "数据元标准复用", desc: "提供跨项目、跨系统的数据元复用机制,避免重复定义。", oss: true, pro: true, diff: "" },
{ name: "模型物化", desc: "支持将逻辑模型直接生成物理表结构,包括表名、字段定义、约束条件等。", oss: true, pro: true, diff: "" },
{ name: "多数据库物化部署", desc: "提供对 MySQL、PostgreSQL、Oracle、SQL Server、达梦(DM8)、人大金仓(KingbaseES)、Hive、Doris、ClickHouse 等多种数据库的物化支持。", oss: "partial", pro: true, diff: "开源版仅支持 MySQL、Oracle、达梦(DM8);其余数据库需专业版。" },
{ name: "标准化管理", desc: "将逻辑建模、物化部署与数据标准统一管理,减少重复建表工作。", oss: true, pro: true, diff: "" },
{ name: "物化执行记录", desc: "自动保存每次逻辑模型物化的执行情况,包括操作人、执行时间、目标数据库和结果状态。", oss: true, pro: true, diff: "" },
{ name: "版本变更追踪", desc: "支持对物化过程中的版本变化进行记录,用户可回溯不同版本的物化内容。", oss: true, pro: true, diff: "" },
{ name: "部署历史管理", desc: "提供物化部署历史的查询与管理功能,帮助用户快速了解物理表的生成与变更轨迹。", oss: true, pro: true, diff: "" },
{ name: "异常处理支持", desc: "在物化失败或异常时自动记录错误信息,并结合日志输出,辅助用户进行问题排查与修复。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据资产",
subs: [
{ name: "数据发现任务", desc: "支持从多种关系型数据库自动提取并汇总表和字段的结构、规模及变化信息,为数据资产盘点提供基础。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "字段与结构分析", desc: "自动检测表结构,识别字段名称、类型、主键、分区等要素的变化,支持字段新增、删除、类型调整的对比分析。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "元数据变更管理", desc: "跟踪元数据在生命周期中的变更(创建、修改、删除),并支持版本化管理与历史回溯。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "状态监控", desc: "实时监控数据源中表的新增与删除,自动捕捉数据资产变动,并通过告警机制及时推送。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "调度管理", desc: "提供可视化任务配置与调度能力,支持定时、周期和手动多种调度策略。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "资产清单管理", desc: "支持以列表形式集中展示所有已生成的资产地图,包含地图名称、所属类目、资产描述、创建时间、数据标签等信息。", oss: true, pro: true, diff: "" },
{ name: "多类型资产管理", desc: "支持数据库表类型、API 类型、文件类型的资产管理与统一归档。", oss: "partial", pro: true, diff: "开源版不支持外部 API 和非结构化数据资产管理。" },
{ name: "多维度检索", desc: "提供按名称、类型、主题、创建时间等条件的快速检索功能。", oss: true, pro: true, diff: "" },
{ name: "操作与维护", desc: "提供地图的新增、编辑、删除等操作,帮助用户灵活维护和优化资产地图内容。", oss: true, pro: true, diff: "" },
{ name: "基础信息展示", desc: "显示资产的基本属性,包括名称、类型、所属主题、所属分类、创建人、创建时间等。", oss: true, pro: true, diff: "" },
{ name: "结构与字段信息", desc: "展示资产表结构与字段详情,包括字段名称、类型、长度、约束、默认值等。", oss: true, pro: true, diff: "" },
{ name: "血缘与依赖关系", desc: "提供资产的上下游血缘分析,直观展现数据依赖路径。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "质量评估任务管理", desc: "支持对单个资产配置质量评估任务,展示任务名称、执行策略、执行状态与执行时间。", oss: true, pro: true, diff: "" },
{ name: "质量维度统计", desc: "提供完整性、准确性、一致性、时效性、规范性等维度的质量统计,输出整体数据质量评分。", oss: true, pro: true, diff: "" },
{ name: "质量趋势分析", desc: "通过图表展示数据质量在不同时间段的变化趋势,帮助用户跟踪质量改进效果。", oss: true, pro: true, diff: "" },
{ name: "规则配置与管理", desc: "展示与资产绑定的质量规则,支持规则的新增、编辑、删除与启用/禁用。", oss: true, pro: true, diff: "" },
{ name: "问题数据处理", desc: "对评估发现的异常数据提供修复入口,支持人工干预。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "审核任务管理", desc: "提供待审核资产清单,支持查看资产的基本信息、变更内容和提交人信息。", oss: true, pro: true, diff: "" },
{ name: "审核操作", desc: "支持对资产进行通过、驳回、退回修改等操作,并可附加审核意见。", oss: true, pro: true, diff: "" },
{ name: "多源数据查询", desc: "支持对接入的多种数据源进行统一查询,避免跨系统切换;支持表格化展示与 Excel/CSV 导出。", oss: true, pro: true, diff: "" },
{ name: "数据血缘可视化", desc: "以图形化方式直观展示表、字段、任务之间的上下游依赖关系。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "字段级血缘分析", desc: "支持精确到字段级的血缘追踪,明确字段来源与去向。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "上下游影响分析", desc: "在源数据或逻辑模型变更时,自动识别受影响的下游对象。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "多维度关联", desc: "血缘信息可结合资产、任务、规则等模块进行联动,支持跨模块的溯源与分析。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "动态更新", desc: "血缘关系随数据集成与任务运行动态更新,确保展示结果与实际运行情况保持一致。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "资产质量任务管理", desc: "支持为资产配置质量评估任务,查看任务名称、执行策略、执行状态和执行时间。", oss: true, pro: true, diff: "" },
{ name: "资产质量维度统计", desc: "从规范性、完整性、准确性、一致性和时效性五个维度对资产进行检测,输出整体质量评分和问题数据占比。", oss: true, pro: true, diff: "" },
{ name: "资产质量趋势分析", desc: "提供可视化图表,展示数据质量在不同时段的变化趋势。", oss: true, pro: true, diff: "" },
{ name: "资产质量规则配置", desc: "支持在资产层面新增、编辑、删除和启用/禁用质量规则。", oss: true, pro: true, diff: "" },
{ name: "资产问题数据处理", desc: "对检测发现的异常数据提供修复入口,支持人工干预。", oss: false, pro: true, diff: "专业版独占。" }
]
},
{
name: "数据治理",
subs: [
{ name: "规则清理", desc: "企业能够根据自身业务需求重新二开质量规则,提升规则的灵活性与可控性。", oss: "partial", pro: true, diff: "开源版内置 3 个稽查规则,可参考二开;专业版内置 20+ 稽查规则。" },
{ name: "质量维度配置", desc: "左侧规则树支持完整性、唯一性、有效性、一致性和时效性五大质量维度的分类管理。", oss: "partial", pro: true, diff: "开源版内置 3 个规则,专业版内置 20+ 规则。" },
{ name: "标准规则录入", desc: "支持通过外部链接批量录入规则,包括编码、名称、描述、使用场景和示例。", oss: "partial", pro: true, diff: "开源版内置 3 个规则,专业版内置 20+ 规则。" },
{ name: "清洗规则(6 维度)", desc: "提供面向六大质量维度(准确性、完整性、一致性、唯一性、有效性、及时性)的可配置清洗能力。", oss: "partial", pro: true, diff: "开源版内置 5 个清洗规则,可参考二开;专业版内置 30+ 清洗规则。" },
{ name: "数据集成(输入/转化/输出节点)", desc: "支持从多种数据源接入(大数据平台、关系型数据库、消息队列、API),经过转化节点清洗后写入多目标(数据库、大数据平台、消息队列)。", oss: "partial", pro: true, diff: "开源版仅支持关系型数据库到关系型数据库的数据集成;内置 3 个转换组件;专业版内置 15+ 转换组件。" },
{ name: "稽查规则配置", desc: "支持按照完整性、唯一性、有效性、一致性、时效性等维度配置稽查规则。", oss: true, pro: true, diff: "" },
{ name: "稽查结果分析与展示", desc: "稽查结果以报表或图表形式呈现,直观展示问题数据数量、分布与占比。", oss: true, pro: true, diff: "" },
{ name: "稽查问题数据处理", desc: "提供问题数据的标记、导出与修复入口,支持人工干预或与清洗规则联动。", oss: true, pro: true, diff: "" },
{ name: "清洗规则配置", desc: "支持按准确性、完整性、一致性、唯一性、有效性、及时性等维度配置清洗规则。", oss: true, pro: true, diff: "" },
{ name: "数据开发任务管理", desc: "支持实时数据任务的全生命周期管理,提供任务名称、类型、执行引擎、调度周期等信息的配置与查看。", oss: false, pro: true, diff: "开源版无大数据执行引擎(Hive、Spark、Flink);专业版支持。" },
{ name: "实时流数据开发", desc: "基于 Flink 执行引擎,支持实时同步与计算任务,提供调度周期与资源配置选项。", oss: false, pro: true, diff: "开源版无 Flink 引擎;专业版支持。" },
{ name: "IDE 工作台", desc: "提供可视化集成开发环境,支持 SQL 脚本编写、实时日志查看与任务调试。", oss: false, pro: true, diff: "开源版无大数据执行引擎;专业版支持。" },
{ name: "任务依赖关系可视化配置", desc: "提供图形化界面,支持任务间依赖关系的拖拽式配置,自动生成任务流图。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "分布式负载均衡策略管理", desc: "在分布式环境下支持负载均衡策略配置,可根据任务优先级和资源使用情况动态分配计算资源。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "自动重试策略配置", desc: "支持为任务设置自动重试机制,用户可自定义重试次数、间隔时间及失败处理逻辑。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "任务异常监控与告警中心", desc: "实时监控任务运行状态,对失败、超时、资源不足等异常情况进行告警通知。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "整合数据集成与数据开发节点", desc: "将数据集成任务(ETL)与数据开发任务(SQL 脚本)统一纳入作业管理平台。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "作业任务管理", desc: "支持查看作业实例列表,树形结构展示子任务,支持日志查看下载与重跑功能。", oss: true, pro: true, diff: "" },
{ name: "数据开发任务管理", desc: "展示数据开发任务实例列表,支持统一的任务管理与进度跟踪,提供执行日志查看下载。", oss: true, pro: true, diff: "" },
{ name: "填报模板管理", desc: "支持创建与维护填报模板,灵活配置字段名称、类型、校验规则等。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "在线数据录入", desc: "提供在线表单式数据录入界面,支持数据的新增、编辑。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "项目创建与维护", desc: "支持项目的新增、编辑、删除与查询,形成统一的项目清单。", oss: true, pro: true, diff: "" },
{ name: "项目成员与角色管理", desc: "支持为项目分配成员并配置角色与权限。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据质量",
subs: [
{ name: "任务配置与管理", desc: "支持数据质量任务的新增、编辑、删除与分类管理,覆盖任务名称、执行策略、评测对象和规则等要素。", oss: true, pro: true, diff: "" },
{ name: "多维度质量检测", desc: "可在任务中应用完整性、唯一性、有效性、一致性、时效性等质量规则,对目标数据进行全面检测。", oss: true, pro: true, diff: "" },
{ name: "调度与执行", desc: "支持定时、周期性和手动调度方式,保障任务灵活运行。", oss: true, pro: true, diff: "" },
{ name: "执行监控与日志", desc: "提供任务执行状态的实时监控,支持日志查询与下载。", oss: true, pro: true, diff: "" },
{ name: "结果展示与处理", desc: "以报表、图表形式展示检测结果,标注问题数据,并提供修复入口。", oss: true, pro: true, diff: "" },
{ name: "执行过程记录", desc: "自动记录任务执行的全流程,包括启动时间、执行节点、规则应用情况与结束状态。", oss: true, pro: true, diff: "" },
{ name: "异常信息捕获", desc: "在任务运行出现错误或规则校验失败时,实时记录异常详情。", oss: true, pro: true, diff: "" },
{ name: "报告生成", desc: "每次任务执行后自动生成质量报告,包含任务基本信息、执行时间、执行对象与规则覆盖情况。", oss: true, pro: true, diff: "" },
{ name: "质量指标统计", desc: "按完整性、唯一性、有效性、一致性、时效性等维度输出检测结果,提供问题数据量与占比。", oss: true, pro: true, diff: "" },
{ name: "问题分布分析", desc: "通过图表展示异常数据的分布情况,支持按表、字段、规则进行问题定位。", oss: true, pro: true, diff: "" },
{ name: "趋势对比", desc: "支持与历史报告进行对比,展示质量指标的改善趋势。", oss: true, pro: true, diff: "" },
{ name: "问题数据处理", desc: "系统自动识别异常或不合规数据,支持用户进行手动修复与调整。", oss: false, pro: true, diff: "专业版独占。" }
]
},
{
name: "数据安全",
subs: [
{ name: "等级定义与维护", desc: "支持定义多级敏感等级(如公开、内部、敏感、核心等),并可根据企业规范灵活调整。", oss: true, pro: true, diff: "" },
{ name: "自动识别与标注", desc: "结合数据分类与规则库,支持对常见敏感信息(如身份证号、手机号、银行卡号等)进行自动识别。", oss: true, pro: true, diff: "" },
{ name: "多维度分类管理", desc: "支持按业务域、主题、类目等维度对数据资产进行分类,采用树形结构与多层级管理方式。", oss: true, pro: true, diff: "" },
{ name: "敏感等级分级", desc: "提供对资产敏感性的分级管理机制,支持定义公开、内部、敏感、核心等不同等级。", oss: true, pro: true, diff: "" },
{ name: "访问控制", desc: "通过用户、角色与权限体系,对数据访问范围进行精细化控制,防止越权访问。", oss: true, pro: true, diff: "" },
{ name: "数据加密", desc: "支持对存储数据与传输数据进行加密,保障敏感信息在存储和传输过程中不被泄露。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "数据脱敏", desc: "提供静态与动态脱敏能力,对敏感字段(如姓名、手机号、身份证号等)进行遮蔽或替换。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "用户与角色管理", desc: "支持用户账号与角色的统一管理,提供角色创建、分配、绑定等操作。", oss: false, pro: true, diff: "专业版独占(精细化权限管理)。" },
{ name: "菜单与功能权限", desc: "提供基于角色的菜单、功能权限配置,灵活控制不同角色在系统中的可见范围与操作权限。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "多级授权机制", desc: "提供部门级、项目级、资源级等多层次的授权能力。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "数据权限控制", desc: "实现按组织、角色或用户维度的精细化数据访问控制。", oss: false, pro: true, diff: "专业版独占。" }
]
},
{
name: "数据服务",
subs: [
{ name: "API 定义与创建", desc: "支持基于数据表、视图或模型快速生成 API,配置请求方式、参数、返回结果等信息。", oss: true, pro: true, diff: "" },
{ name: "API 发布与调用", desc: "提供 API 的发布、下线与版本管理功能,支持通过统一入口调用。", oss: true, pro: true, diff: "" },
{ name: "调用记录管理", desc: "自动记录每次 API 调用的时间、调用方、请求参数与返回结果。", oss: true, pro: true, diff: "" },
{ name: "性能指标统计", desc: "提供调用次数、响应时间、成功率、失败率等关键指标。", oss: true, pro: true, diff: "" },
{ name: "日志检索与导出", desc: "支持按 API 名称、调用时间、调用方等条件检索日志。", oss: true, pro: true, diff: "" },
{ name: "多种鉴权方式", desc: "支持基于 Token、API Key、OAuth 等多种鉴权方式。", oss: true, pro: true, diff: "" },
{ name: "访问控制", desc: "可为 API 配置调用权限,限制调用方的身份、角色与访问范围。", oss: true, pro: true, diff: "" },
{ name: "在线调试工具", desc: "提供可视化测试界面,支持输入请求参数、选择请求方式并直接发起调用。", oss: true, pro: true, diff: "" },
{ name: "实时结果反馈", desc: "调用后即时返回响应结果与状态码,便于用户验证 API 的正确性与稳定性。", oss: true, pro: true, diff: "" },
{ name: "调用黑名单", desc: "支持对指定调用方(IP、用户、应用等)加入黑名单,阻止其访问 API。", oss: true, pro: true, diff: "" },
{ name: "访问限流", desc: "可设置调用频率、并发数及流量阈值,防止高频请求造成服务拥堵。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据资源门户",
subs: [
{ name: "整体概览", desc: "集中展示数据资产数量、任务执行情况、质量评估结果、API 调用情况等核心指标。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "可视化看板", desc: "提供图表化仪表盘,直观呈现数据分布、趋势变化与运行状态。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "目录查看", desc: "支持查看已发布的数据服务目录,帮助用户快速定位目标服务资源。", oss: true, pro: true, diff: "" },
{ name: "检索与筛选", desc: "提供普通搜索和多维度筛选功能,支持按服务名称、类型、分类等条件查找。", oss: true, pro: true, diff: "" },
{ name: "服务资源列表", desc: "集中展示服务资源清单,支持查看详细信息、状态及申请流程。", oss: true, pro: true, diff: "" },
{ name: "服务详情页", desc: "提供服务的详细介绍与使用说明,包括接口信息、调用方式、参数说明等。", oss: true, pro: true, diff: "" },
{ name: "基础数据维护", desc: "提供对基础数据的统一维护能力,支持数据的新增、修改、删除与查询。", oss: true, pro: true, diff: "" },
{ name: "数据填报", desc: "在门户端提供统一的数据填报入口,支持用户通过可视化表单录入和提交业务数据。", oss: true, pro: true, diff: "" },
{ name: "资料中心", desc: "在门户端提供统一的资料中心,集中展示平台使用指南、规范文档、培训资料和案例资源。", oss: true, pro: true, diff: "" },
{ name: "我申请的服务", desc: "在服务门户端提供个人申请服务的统一管理入口,支持申请进度跟踪。", oss: true, pro: true, diff: "" },
{ name: "在线审批", desc: "在服务门户端提供统一的在线审批入口,支持对用户提交的服务申请进行查看、处理与流转。", oss: true, pro: true, diff: "" },
{ name: "后台管理系统", desc: "提供服务门户的后台管理能力,支持对门户内容、用户、权限及服务资源的统一配置与维护。", oss: true, pro: true, diff: "" }
]
},
{
name: "数据可视化",
subs: [
{ name: "多维度数据分析", desc: "支持按业务域、主题、时间等多维度对数据进行统计与分析。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "丰富的图表与模板", desc: "提供柱状图、折线图、饼图、仪表盘等多种图表类型,以及常用报表模板。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "自定义报表与钻取", desc: "支持用户自定义报表结构与展示样式,并提供数据钻取功能。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "可视化编辑器", desc: "提供拖拽式设计界面,用户可自由添加、调整和组合图表、控件与背景。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "丰富的组件库", desc: "内置多种图表类型(柱状图、折线图、饼图、地图、仪表盘等)和展示控件。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "自由布局", desc: "支持多组件的任意排版与大小调整,形成个性化、场景化的大屏展示效果。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "数据实时接入", desc: "支持连接多源数据,并实现实时刷新与动态更新。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "预览与发布", desc: "提供大屏效果预览功能,支持一键发布至展示终端或门户。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "仪表盘可视化编辑器", desc: "提供拖拽式设计界面,支持图表、文本、指标卡等组件的自由组合。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "多维指标展示", desc: "支持将业务指标按主题、时间、区域等维度进行组合展示,形成综合性监控视图。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "丰富图表类型", desc: "内置折线图、柱状图、饼图、面积图、雷达图等多种图表。", oss: false, pro: true, diff: "专业版独占。" }
]
},
{
name: "人工智能",
subs: [
{ name: "自然语言解析", desc: "支持将用户输入的自然语言问题(如"查询上季度销售额")自动解析为标准 SQL 语句。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "语义理解与优化", desc: "结合领域语义与数据字典,优化 SQL 生成结果,确保查询符合业务语境与数据库结构。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "多数据源支持", desc: "可对接 MySQL、Oracle、SQL Server、Hive 等多种数据库,实现跨源查询。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "可视化结果展示", desc: "查询结果以表格或图表形式展示,用户无需额外操作即可查看分析结果。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "对话式查询", desc: "用户通过自然语言提问,系统自动解析并返回结果,无需编写 SQL。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "即时可视化", desc: "支持将查询结果以表格、柱状图、折线图、饼图等多种形式即时呈现。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "多数据源接入", desc: "可连接关系型数据库、大数据平台等多类数据源,实现跨库、跨域的统一分析。", oss: false, pro: true, diff: "专业版独占。" },
{ name: "智能洞察", desc: "基于历史查询与数据模型,自动生成趋势解读与业务洞察。", oss: false, pro: true, diff: "专业版独占。" }
]
},
{
name: "其他",
subs: [
{ name: "在线文档", desc: "提供更完善的官方文档,包括部署、运维、API、最佳实践等,更新及时,结构完整。", oss: true, pro: true, diff: "" },
{ name: "技术支持", desc: "提供企业级技术支持服务,专属技术对接人,支持 SLA,7x24 或 5x8 等支持方式。", oss: "partial", pro: true, diff: "开源版通过 Issues 获取社区支持;专业版提供 SLA 与企业级支持。" },
{ name: "更新源码", desc: "提供稳定版本更新通道,附带升级指导、补丁说明,长期维护兼容性及安全性。", oss: true, pro: true, diff: "" }
]
}
];
// ===== Render =====
let included = 0, partial = 0, excluded = 0, total = 0;
function badge(type) {
if (type === true) { included++; total++; return '<span class="badge badge-green">✓</span>'; }
if (type === 'partial') { partial++; total++; return '<span class="badge badge-yellow">△</span>'; }
if (type === false) { excluded++; total++; return '<span class="badge badge-red">✕</span>'; }
return '';
}
function descHTML(desc) {
if (!desc) return '';
const lines = desc.split('\n');
if (lines.length > 1) {
return `<ul>${lines.map(l => `<li>${l}</li>`).join('')}</ul>`;
}
return desc;
}
function render() {
const content = document.getElementById('content');
let html = '';
modules.forEach((mod, mi) => {
let mInc = 0, mPart = 0, mExc = 0;
mod.subs.forEach(s => {
if (s.oss === true) mInc++;
else if (s.oss === 'partial') mPart++;
else mExc++;
});
html += `<div class="module-section" data-mi="${mi}" data-inc="${mInc}" data-part="${mPart}" data-exc="${mExc}">`;
html += `<div class="module-header${mi === 0 ? ' active' : ''}" onclick="toggle(${mi})">`;
html += `<div class="icon" style="background:${moduleColors[mi]}">${mi + 1}</div>`;
html += `<div class="title">${mod.name}</div>`;
html += `<div class="stats">`;
html += `<span class="stat-green">${mInc} 包含</span>`;
if (mPart) html += `<span class="stat-yellow">${mPart} 部分</span>`;
if (mExc) html += `<span class="stat-red">${mExc} 缺失</span>`;
html += `</div>`;
html += `<span class="arrow">▶</span>`;
html += `</div>`;
html += `<div class="module-body${mi === 0 ? ' active' : ''}">`;
html += `<table class="comp-table"><thead><tr>`;
html += `<th>子模块</th><th>功能描述</th><th>开源版</th><th>专业版</th><th>差异说明</th>`;
html += `</tr></thead><tbody>`;
mod.subs.forEach(s => {
html += `<tr>`;
html += `<td class="sub-module">${s.name.replace(/\n/g, '<br>')}</td>`;
html += `<td class="desc">${descHTML(s.desc)}</td>`;
html += `<td class="center">${badge(s.oss)}</td>`;
html += `<td class="center">${badge(s.pro)}</td>`;
html += s.diff
? `<td><div class="diff-cell">${s.diff}</div></td>`
: `<td style="color:var(--text-tertiary);text-align:center;font-size:12px">一致</td>`;
html += `</tr>`;
});
html += `</tbody></table></div></div>`;
});
content.innerHTML = html;
document.getElementById('countIncluded').textContent = included;
document.getElementById('countPartial').textContent = partial;
document.getElementById('countExcluded').textContent = excluded;
document.getElementById('countTotal').textContent = total;
}
function toggle(mi) {
const section = document.querySelector(`.module-section[data-mi="${mi}"]`);
const header = section.querySelector('.module-header');
const body = section.querySelector('.module-body');
header.classList.toggle('active');
body.classList.toggle('active');
}
function toggleAll(show) {
document.querySelectorAll('.module-section').forEach(s => {
const header = s.querySelector('.module-header');
const body = s.querySelector('.module-body');
if (show) { header.classList.add('active'); body.classList.add('active'); }
else { header.classList.remove('active'); body.classList.remove('active'); }
});
}
function showOnlyGap() {
document.querySelectorAll('.module-section').forEach(s => {
const inc = parseInt(s.dataset.inc);
const part = parseInt(s.dataset.part);
const exc = parseInt(s.dataset.exc);
const hasGap = part > 0 || exc > 0;
s.style.display = hasGap ? '' : 'none';
if (hasGap) {
s.querySelector('.module-header').classList.add('active');
s.querySelector('.module-body').classList.add('active');
}
});
}
function showAll() {
document.querySelectorAll('.module-section').forEach(s => {
s.style.display = '';
});
}
render();
</script>
</body>
</html>