16 KiB
16 KiB
pbf_analysis 数据库表功能说明
1. 目的
这份文档说明当前 pbf_analysis 数据库中各张 NavSea 相关表的用途、所处阶段、与当前工程的关系。
目标是让后续接手的人能快速回答这些问题:
- 哪些表是原始解析结果
- 哪些表是语义分类与归层结果
- 哪些表是规则注册表
- 哪些表是检测/碰撞/航行分析专题视图
- 哪些表是样式分析与渲染审计结果
- 哪些表是历史分析或中间产物
2. 总体分层
当前 pbf_analysis 里的表可以按用途分成 6 类:
- 原始与基础解析层
- 语义分类与归层层
- 几何与空间支撑层
- 规则注册与映射层
- 样式分析与渲染审计层
- 业务专题与异常分析层
说明:
BASE TABLE表示实体表VIEW表示视图table_rows为 MySQL 估计值,仅用于了解量级
3. 关键原则
当前数据库不是只存“最终结果”,而是同时承担四类职责:
- 保存原始解析和展平结果
- 保存分类和标准化结果
- 保存可追溯规则注册表
- 保存审计与专题查询结果
后续开发应优先遵循:
- 映射规则尽量收口到规则表
- 审计结果进专门审计表
- 原始值与标准值并存,避免不可逆覆盖
4. 表分组说明
4.1 原始与基础解析层
这些表主要用于把原始 pbf 解码成可查询的结构化数据。
features
- 类型:
BASE TABLE - 估计行数:
6653014 - 关键字段:
id, z, x, y, vt_layer, geom_type
- 用途:
- 保存原始瓦片的基础 feature 索引
- 作为很多后续表的原始主干
properties
- 类型:
BASE TABLE - 估计行数:
22213975 - 关键字段:
feature_id, k, v
- 用途:
- 存原始属性键值对
- 便于后续抽取
fid、分類番号、名称等字段
at_attributes
- 类型:
BASE TABLE - 估计行数:
6674189 - 关键字段:
feature_id, k, v
- 用途:
- 拆分原始
at属性集合 - 为分类、渲染兼容、规则归纳提供细粒度字段来源
- 拆分原始
feature_flat
- 类型:
VIEW - 关键字段:
feature_id, vt_layer, class_id, fid, at
- 用途:
- 对原始 feature 做便于分析的展平视图
- 常用于快速查看对象分类号和
fid
feature_semantic
- 类型:
BASE TABLE - 估计行数:
6367524 - 关键字段:
feature_id, z, x, y, vt_layer, geom_type, class_name, shape_name, layer_name
- 用途:
- 原始对象语义的早期抽取层
- 为后续 taxonomy 和 render 分析提供基础口径
feature_geojson_lookup
- 类型:
BASE TABLE - 估计行数:
6636967 - 关键字段:
z, x, y, feature_id, fid, vt_layer, geom_type
- 用途:
- 做 feature 与瓦片实例的查询映射
- 便于回查到具体 tile
4.2 几何与空间支撑层
这些表负责把原始 feature 补成可空间分析的对象。
feature_geometry_stage
- 类型:
BASE TABLE - 估计行数:
13597637 - 关键字段:
feature_id, geometry_wkt
- 用途:
- 几何导入与中间转换阶段表
- 为后续空间启用、几何核查服务
navsea_feature_geometry
- 类型:
BASE TABLE - 估计行数:
6685117 - 关键字段:
feature_id, geometry, geometry_source
- 用途:
- NavSea 当前正式使用的 feature 几何表
- 支撑碰撞、空间专题和检测视图
geometry_consistency
- 类型:
BASE TABLE - 估计行数:
327 - 关键字段:
canonical_object_type, geometry_type, feature_count, geometry_consistency_status
- 用途:
- 统计某类对象的几何类型是否符合预期
geometry_consistency_audit
- 类型:
BASE TABLE - 估计行数:
331 - 关键字段:
canonical_object_type, geometry_type, feature_count, geometry_consistency_status
- 用途:
- 与
geometry_consistency类似,用于审计记录与复核
- 与
object_geometry_allowlist
- 类型:
BASE TABLE - 估计行数:
310 - 关键字段:
canonical_object_type, geometry_type, rule_source, is_allowed, notes
- 用途:
- 定义哪些对象类型允许哪些几何类型
- 是 geometry 审计的规则依据之一
4.3 语义分类与归层层
这些表描述“对象是什么”和“应该归到哪一层”。
object_catalog
- 类型:
BASE TABLE - 估计行数:
319 - 关键字段:
layer_name, class_name, shape_name, vt_layer, geom_type, feature_count
- 用途:
- 原始对象目录
- 手工 taxonomy 审查和统计的基础表
object_type_candidates
- 类型:
BASE TABLE - 估计行数:
6473314 - 关键字段:
feature_id, object_type_source, object_type, vt_layer, geom_type
- 用途:
- 某个 feature 可能属于哪些对象类型的候选集合
- 是 taxonomy 判定前的候选层
object_type_stats
- 类型:
BASE TABLE - 估计行数:
255 - 关键字段:
object_type, geom_type, feature_count
- 用途:
- 对候选对象类型做统计
canonical_object_rules
- 类型:
BASE TABLE - 估计行数:
221 - 关键字段:
canonical_object_type, canonical_family, classification_basis, source_layer_scope, ...
- 用途:
- 旧版人工整理的对象级归类规则汇总表
- 偏分析结果,不是最新规则注册表
canonical_layer_rules
- 类型:
BASE TABLE - 估计行数:
49 - 关键字段:
source_layer, semantic_granularity, canonical_family, render_strategy, ...
- 用途:
- 旧版人工整理的层级归并规则表
- 用于理解老系统如何按层做语义合并
feature_semantic
- 已在基础层列出
- 同时也是对象语义候选的重要来源
pbf_relayer_candidates
- 类型:
BASE TABLE - 估计行数:
6547009 - 关键字段:
feature_id, z, x, y, source_layer, geom_type, ... canonical_object_type, canonical_family, semantic_key, detection_key, render_layer
- 用途:
- 当前构建
pbf时最重要的结果表之一 - 保存 feature 经过分类和归层后的候选结果
navsea_tile_builder.py会结合该表与原始pbf一起输出新瓦片
- 当前构建
pbf_source_object_stats
- 类型:
BASE TABLE - 估计行数:
215 - 关键字段:
source_layer, render_layer, canonical_family, canonical_object_type, geom_type, detection_key, semantic_key, feature_count
- 用途:
- 统计不同源层在重构后如何分布
pbf_render_compatibility
- 类型:
BASE TABLE - 估计行数:
58 - 关键字段:
source_layer, render_layer, canonical_family, semantic_granularity, style_bound, feature_count, canonical_object_types
- 用途:
- 评估重构后数据与旧样式兼容性的分析表
pbf_detection_catalog
- 类型:
BASE TABLE - 估计行数:
359 - 关键字段:
detection_key, canonical_family, canonical_object_type, geom_type, feature_count, source_layers
- 用途:
- 检测视角的对象目录
- 支撑 detection_key 设计与校验
4.4 规则注册与映射层
这组表是现在最重要的“规则中心”,用于收口旧版到新版的映射逻辑。
navsea_rule_bundle
- 类型:
BASE TABLE - 估计行数:
1 - 关键字段:
bundle_id, bundle_version, status, effective_date, ...
- 用途:
- 规则包总表
- 记录当前使用的是哪一套 taxonomy/render/source-layer/field-value 规则
navsea_source_layer_rules
- 类型:
BASE TABLE - 估计行数:
49 - 关键字段:
source_layer_jp, source_layer_std, semantic_granularity, canonical_family, render_strategy, ...
- 用途:
- 日文
source-layer到标准层名的映射规则 - 是 source-layer 可逆标准化的正式注册表
- 日文
navsea_field_name_rules
- 类型:
BASE TABLE - 估计行数:
17 - 关键字段:
field_name_jp, field_name_std, field_group_name, keep_in_delivery, keep_in_engineering, ...
- 用途:
- 旧字段名到标准字段名的映射
- 同时定义字段在哪种输出中保留
navsea_field_value_rules
- 类型:
BASE TABLE - 估计行数:
20 - 关键字段:
rule_id, field_name_jp, legacy_value, standardized_field, standardized_value, ...
- 用途:
- 旧字段值到新标准字段值的映射
- 例如灯色、表示位置等值映射
navsea_taxonomy_rules
- 类型:
BASE TABLE - 估计行数:
8 - 关键字段:
rule_id, priority, enabled, match_scope, match_expr_json, output_json, canonical_family, canonical_object_type, detection_key_template
- 用途:
- 正式 taxonomy 规则表
- 定义 feature 在什么条件下被归成哪个
canonical_object_type
navsea_render_rules
- 类型:
BASE TABLE - 估计行数:
9 - 关键字段:
rule_id, priority, match_expr_json, output_json, chart_render_type, chart_symbol_code, chart_fill_style, ...
- 用途:
- 正式渲染语义规则表
- 定义 feature 应输出哪些
chart_* / hazard_* / area_*字段
navsea_mapping_registry_vw
- 类型:
VIEW - 用途:
- 统一查看当前各类映射规则
- 适合人工巡检和管理
navsea_legacy_to_new_mapping_vw
- 类型:
VIEW - 用途:
- 从旧值查新值
- 适合排查“旧字段为什么被映射成这个新字段”
navsea_new_to_legacy_mapping_vw
- 类型:
VIEW - 用途:
- 从新值反查旧值
- 适合可逆追述和规则审计
4.5 NavSea 对象字典与能力表
navsea_object_taxonomy
- 类型:
BASE TABLE - 估计行数:
127 - 关键字段:
canonical_object_type, object_family, detection_class, description
- 用途:
- NavSea 对象字典
- 定义各 canonical object 的基础说明
navsea_object_capabilities
- 类型:
BASE TABLE - 估计行数:
259 - 关键字段:
canonical_object_type, capability
- 用途:
- 定义对象能力,例如是否用于碰撞、导航参考、缠绕风险等
- 给下游专题视图提供能力标签
4.6 样式分析与渲染审计层
style_layers
- 类型:
BASE TABLE - 估计行数:
113 - 关键字段:
layer_id, source_layer, icon, line_color, fill_color, layer_type
- 用途:
- 解析旧样式后的 layer 清单
style_mapping
- 类型:
BASE TABLE - 估计行数:
42 - 关键字段:
layer_id, source_layer, layer_type, icon, line_color, fill_color, object_type, geom_type, feature_count
- 用途:
- 分析旧样式的 source-layer 消费关系
style_render_equivalence
- 类型:
BASE TABLE - 估计行数:
53 - 关键字段:
style_layer, feature_count_before, feature_count_after, difference, render_status
- 用途:
- 用于分析重构前后样式层渲染覆盖是否等价
navsea_render_audit_run
- 类型:
BASE TABLE - 估计行数:
1 - 关键字段:
audit_name, original_style_path, engineering_style_path, original_tile_root, engineering_tile_root, result_count, status_counts_json, ...
- 用途:
- 存放“最新一次”渲染审计的摘要
- 当前约定只保留最新一轮结果
navsea_render_audit_result
- 类型:
BASE TABLE - 估计行数:
2357346 - 关键字段:
audit_name, object_instance_key, object_instance_id, object_id, fid_legacy, tile_z, tile_x, tile_y, source_layer, status, original_components_json, engineering_components_json
- 用途:
- 渲染审计结果明细表
- 可按
fid_legacy追查某个对象在原始样式和工程样式下的渲染差异
4.7 业务专题与异常分析层
这组表/视图偏业务消费和专题分析。
navsea_detection_objects
- 类型:
VIEW - 用途:
- 检测对象总视图
- 面向 detection 任务使用
navsea_detection_objects_spatial
- 类型:
VIEW - 用途:
- 检测对象的空间分析视图
navsea_collision_objects
- 类型:
VIEW - 用途:
- 碰撞相关对象视图
navsea_grounding_objects
- 类型:
VIEW - 用途:
- 搁浅风险相关对象视图
navsea_entangle_objects
- 类型:
VIEW - 用途:
- 缠绕风险相关对象视图
navsea_boundary_reference_objects
- 类型:
VIEW - 用途:
- 边界参考对象视图
navsea_route_reference_objects
- 类型:
VIEW - 用途:
- 航路参考对象视图
navsea_navigation_mark_objects
- 类型:
VIEW - 用途:
- 航标专题对象视图
anomaly_navigation_geom
- 类型:
BASE TABLE - 估计行数:
0 - 用途:
- 导航相关几何异常对象表
anomaly_reef_geom
- 类型:
BASE TABLE - 估计行数:
13 - 用途:
- 鱼礁/礁石类几何异常对象表
spatial_anomalies
- 类型:
BASE TABLE - 估计行数:
693 - 关键字段:
anomaly_type, affected_feature_count, region_hint, severity
- 用途:
- 空间异常摘要
classification_validation
- 类型:
BASE TABLE - 估计行数:
177 - 用途:
- 分类结果验证摘要
detection_catalog_integrity
- 类型:
BASE TABLE - 估计行数:
343 - 用途:
- 检测目录完整性校验
semantic_validation_summary
- 类型:
BASE TABLE - 估计行数:
1 - 用途:
- 语义验证总摘要
4.8 密度与覆盖统计层
tile_density
- 类型:
BASE TABLE - 估计行数:
65467 - 关键字段:
z, x, y, feature_count
- 用途:
- 每个 tile 的 feature 密度统计
tile_density_top100
- 类型:
BASE TABLE - 估计行数:
100 - 用途:
- feature 最密的 top100 tile
tile_layer_density
- 类型:
BASE TABLE - 估计行数:
207315 - 关键字段:
z, x, y, vt_layer, feature_count
- 用途:
- 按 tile 和 layer 分解的密度统计
5. 当前工程最重要的表
如果只看当前构建与审计链路,最重要的是这些:
构建时必看
pbf_relayer_candidatesnavsea_rule_bundlenavsea_source_layer_rulesnavsea_field_name_rulesnavsea_field_value_rulesnavsea_taxonomy_rulesnavsea_render_rulesnavsea_feature_geometry
审计时必看
navsea_render_audit_runnavsea_render_audit_resultstyle_layersstyle_mappingstyle_render_equivalence
数据理解时必看
object_catalogpbf_source_object_statspbf_detection_catalognavsea_object_taxonomynavsea_object_capabilities
6. 当前推荐使用方式
想查某个对象为什么被分类成某个新对象
优先查:
pbf_relayer_candidatesnavsea_taxonomy_rulesnavsea_legacy_to_new_mapping_vw
想查某个对象为什么被渲染成某种 chart_*
优先查:
navsea_render_rulesnavsea_mapping_registry_vw- 工程版
pbf中对应 feature 的输出字段
想查某个对象原始版和工程版渲染是否一致
优先查:
navsea_render_audit_resultnavsea_render_audit_run
想做碰撞、搁浅、航路专题分析
优先查:
navsea_collision_objectsnavsea_grounding_objectsnavsea_route_reference_objectsnavsea_navigation_mark_objects
7. 维护建议
当前数据库里同时有“旧分析表”和“新规则注册表”,后续维护建议如下:
- 正式规则源以
tasks/pbf/mappings/*.yaml为主 - 数据库规则表作为运行时注册中心
- 不要再把同一套逻辑分散写进多个临时分析表
- 新增规则时优先更新:
navsea_rule_bundlenavsea_source_layer_rulesnavsea_field_name_rulesnavsea_field_value_rulesnavsea_taxonomy_rulesnavsea_render_rules
8. 与 Git 管理的关系
建议把下面这些内容一起纳入项目 Git:
- 本文档
tasks/pbf/下的规范文档tasks/pbf/mappings/下的规则源文件navsea_mapping_registry_sync.pynavsea_tile_builder.pynavsea_render_audit.py
这样数据库中的规则、代码中的构建逻辑、审计流程就能形成完整闭环。