01登录与账户
用管理员账号登录。口令请在「账户管理」里改掉,不要用默认口令。
- 可以建子账户给其他人用;删除账户时不能删自己。
- 所有写操作都会留痕,可在「审计日志」里按操作者 / 动作筛选。
02拿到一批新节目单,我要做这几步
先看「异常清单」,确认这批数据能不能直接导
它会列出这批里重复的条目、缺失的字段,以及需要你确认的别名候选。
先解决这里报的问题,再提交 —— 导完再回头清理代价大得多。
用「批量导入」粘贴或上传,先预览再提交
表头随门类变化。一批里混了多种门类时,用表头列逐行标注(见下一节规则)。
预览页会显示将要写入多少条、检测到哪些问题。
导入后立刻看「维度字典」的未匹配告警
如果这批引入了新剧场 / 新演出队 / 新曲种,它们会列在那里,
带着原始写法和出现次数。这一步是数据可信的关键,下一节详说。
去数据中心核对几个数字
看首页四个大数字和数据中心是否合理跳变。异常跳变通常意味着上一步有遗漏。
需要给外面的话,导出 CSV
前台各榜单都能直接导出,不用手抄。
为什么第 3 步不能跳:新出现的写法如果没有归一,会让同一个地方在统计里被算成两个 ——
于是「剧场数」在不同页面给出不同答案,而且没人知道哪个才对。
现在系统在写入时会自动按已有别名填编码;填不上的会落进「待归类队列」等你处理,
不会静默留空。
03导入时这些规则要记住
| 规则 | 说明 |
| 批级门类 |
导入时选「相声 / 鼓曲 / 评书」作为整批的默认门类(目前只有这三类,
没有「戏剧」—— 那是字典里预留但库中无数据的值,别被下拉以外的地方误导)。 |
| 行级门类 |
一批里混了别的门类时(很常见),用表头列
类别 / 演出门类 / art_form 逐行标注,
优先级高于批级。 |
| 重复检测 |
按「门类 + 日期 + 场次 + 序号 + 剧场 + 演出队」生成唯一编号,
所以跨门类的重复也能识别。重复会被列进异常清单。 |
| 缺曲种报警 |
只在「本批含曲种列、且部分行已填」时才报警。
模板本来就没有曲种列、或者整列都没填时不报 —— 避免满屏噪音反而让人忽略。 |
| 曲种本来就是可空的 |
相声、评书的曲种就是各自的门类,不往下细分,所以全库绝大多数字段为空是
正常状态,不是数据缺失。曲种分布按「有标注就用标注、没标注按门类归位」统计,
不会产生「未分类」。
真正要留意的是鼓曲:鼓曲场次应当填到细分曲种(京韵大鼓、单弦…),
鼓曲里出现空白或只写了「鼓曲」,才值得去补。 |
批量编辑适合改已有数据:按「演出队 + 日期 + 场次」整批载入,像 Excel 一样在格子里改,
支持把某列统一填一个值,最后一次性保存。
人名多值用顿号「、」分隔。
整批是一个事务 —— 任一行出错会整体回滚,不会写进去一半。所以大批量编辑出错时,
不要怀疑「是不是存了一半」,直接改好重来即可。
04「未匹配原始串」怎么处理
后台 → 维度字典
这是运营最需要盯的一件事。导入新数据后若出现新剧场 / 新演出队 / 新曲种,
会在这里列出原始写法与出现次数。含义是:系统不知道这个写法对应哪个规范名。
- 先判断它到底是不是新东西。如果是同一地点的另一种写法 → 补一条别名映射即可;
如果确实是全新的场所 → 需要在维表里新建。
- 补映射时只改别名表,不用动任何业务代码。
补完后待归类队列会自动清掉这一条。
- 如果是脏数据(例如把场馆名误填进城市字段),以维度字典里的
dim_city 为准 —— 那里的归并结果是权威的。
怎么判断「归并之后」对不对:运行
python3 DB/verify_dims.py。它会同时给出原始串数 / 编码数 / 归并后数三个值。
正常情况下后两个应一致;不一致说明有映射没生效。
系统现在会自动帮你做一部分:新数据写入时会按已有别名自动填维度编码,
填不上的自动进「待归类队列」。
所以映射缺失不会再变成静默的空值 —— 它会明确地出现在这个列表里等你处理。
05日常要改的东西,在哪个模块
| 模块 | 什么时候用 |
| 人物资料 | 改头衔、头像、介绍、标签、外部链接,或修改演员编号。有 网页版 与 H5 两种外链位;留空的字段前台不显示 |
| 单场节目 | 只改一场时用(按 ID 或条件载入),不用走批量流程 |
| 批量导入 | 新增数据。粘贴表格或上传文件,先预览再提交 |
| 批量编辑 | 改已有数据。按「演出队 + 日期 + 场次」整批载入 |
| 节目管理 | 合并同名的不同写法(别名归一),或补作品的外部链接 |
| 维度字典 | 看维表内容 + 未匹配原始串告警(上一节的重点) |
| 异常清单 | 导入前的校验与异常预览,含待确认的别名候选 |
| 数据看板 | 跨维度聚合统计,用来快速核对 |
| 审计日志 | 回溯「谁在什么时候改了什么」 |
| 账户管理 | 改口令 / 建子账户 / 删账户 |
06导入完怎么确认是对的
系统的口径校验是自动的。同一个概念在不同来源(人物页 / 数据中心 / 底层统计)
必须算出同一个数,对不上会直接报错,而不是悄悄显示一个看起来合理的值。
python3 DB/check_invariants.py 会打印每一条的比对结果,
不一致时给出差多少、差百分之几。没跑过的话,运维或开发可以帮你跑。
- 数字突然大幅跳变 → 多半是上一步有遗漏(重复导了、或者归类错了门类)。
- 某个人物突然变多 / 变少 → 检查这批是不是混进了隐藏人物,或改错了编号。
- 剧场或演出队数量莫名增长 → 大概率有新写法没归一,回上一节处理。
07导出与对外提供
- 后台分析导出支持
csv(默认,带 BOM,Excel 打开中文不乱码)与
xlsx(多 sheet)。
- 前台榜单导出:数据中心各榜单可直接导出 CSV。
- 依赖视图的页面:合作网络、搭档页签需要对应迁移已执行,
否则页面会提示数据缺失而不是显示空白 —— 看到提示就找运维,不要自己猜。
给外部用数字时的口径提醒:「搭档对数」有两种算法(只算逗捧 / 算所有角色同台),
差别很大。对外给数时务必说清用的是哪种,否则对不上号最容易引发怀疑数据有误。
08出问题了怎么查
| 症状 | 先查什么 |
| 页面打不开,提示「加载失败」 | 这是接口异常,不代表数据不存在。页面会显示后端给的错误摘要,把那行字发给运维即可 |
| 页面显示「未找到该人物 / 该节目」 | 先在发现页搜一下确认它是否真的存在(可能名字写法不同) |
| 某个页面提示「数据缺失」 | 依赖的视图或迁移没跑,找运维 |
| 导入报「重复」 | 按「门类 + 日期 + 场次 + 序号 + 剧场 + 演出队」核对,通常是同一场导了两次 |
| 导入后人物/剧场数量暴涨 | 多半是新写法没归一,见 维度治理 |
| 某页面数据明显不对 | 先别改数据 —— 让运维跑口径校验,确认是「某两处算得不一样」还是「数据本身错了」 |
一个重要区别:页面显示「加载失败」 = 系统出问题了(要报修);
显示「未找到」 = 系统认为它不存在(先确认是不是找错了)。
这两种以前会被混成同一个提示,导致真故障被当成「数据本来就没有」而耽误。
现在已区分开。
反馈渠道:发现数据错误,通过公众号或现场反馈即可。
指出具体是哪一天、哪一场、哪个名字,我们好去核对原始节目单。