出现问题时
流水线成功结束,但数据湖是空的
Section titled “流水线成功结束,但数据湖是空的”这是最常见的现象,而且几乎总是配置问题,而非错误。
缺少配置不会导致流水线失败。 没有勾选任何数据库时,快照依然会被导出,Parquet 依然 会写入 S3,而复制作业会静默地忽略它们。
按可能性从高到低排列:
| 原因 | 如何确认 |
|---|---|
| 没有勾选任何数据库 | 控制台总览页会显示告警 |
| 集群中出现了新的数据库 | 同上,并会显示数据库名称 |
| 快照事件已关闭 | 同上——这种情况下连导出都不会运行 |
| 表过滤规则排除了所有表 | 在 Bancos(数据库)中查看已勾选的表数量 |
复制作业的日志同样会记录被忽略的内容:
IGNORADO: 56 arquivos do banco "pagila" -- ele nao esta marcadopara ingestao, entao nada dele chega ao datalake.某张表从数据湖中消失了
Section titled “某张表从数据湖中消失了”如果这张表原本存在却不再出现,请在 Partições(分区)中检查是否存在针对它的配置, 且同时满足 替换直接复制 已开启、分区处于 禁用 状态。在这种组合下,复制会跳过该表, 分区器也不会运行——没有任何环节写入它。
重新启用分区,或关闭“替换直接复制”,即可解决。
某次执行失败了
Section titled “某次执行失败了”在 Execuções(执行记录)中打开该次执行,可以按顺序查看各个阶段。失败的阶段会附带 错误信息和日志。
最常见的原因有:
- 分区过程中内存不足 — 分区列上不同取值过多的表。请参阅 该用几个层级。
- 跨账号权限问题 — 如果没有完成跨账号安装的第 3 步, 导出会在写入存储桶时失败。
- 超时 — 每个作业的上限是一小时。配置了排序的超大表是最可能的原因。
一张表失败不会拖垮其他表:流水线容忍分区环节中的个别失败,爬网程序会对已写入的数据进行 编目。
schema 中出现了奇怪的列
Section titled “schema 中出现了奇怪的列”如果出现一个取值为 1、2、3 的 partition_0 列,说明当前安装的版本早于展平 RDS
分片目录的那个版本。请更新软件包并重新处理。
相同的行出现了两次
Section titled “相同的行出现了两次”有两种可能的原因:
在 Postgres 中已分区的表。 RDS 会同时导出父表和每个子分区。当前版本会识别并忽略子
分区;如果你看到 payment_p2024_01 之类的表与 payment 并存,请更新软件包。
分区未开启“替换直接复制”。 默认情况下,分区表会有意出现两次——整表复制的版本和分区 版本。如果只需要分区版本,请开启该选项。
除 localhost 外,Cognito 会拒绝 http 的回调 URL。如果控制台以 http 提供服务,登录会
在开始之前就失败。请执行 setup-https.sh。
如果浏览器提示证书不受信任,那是自签名证书——功能可用,但要消除提示,请通过
CERTIFICATE_ARN 使用你自己的证书。
无法访问控制台
Section titled “无法访问控制台”负载均衡器是 内部 的,这是有意设计:控制台不对公网开放。你可以从 VPC 内部、通过 VPN,或者通过 Session Manager 隧道访问。
确认是哪个版本产生了某个结果
Section titled “确认是哪个版本产生了某个结果”每个作业在启动时都会记录自身版本,执行记录会保存这些信息。在 Execuções(执行记录) 的详情中可以看到各组件的版本——当行为在两次更新之间发生变化时,这很有用。