sql risk base on hongxing for data development
开发易错点整理
| 类型 | 关键字 | 问题描述 | 记录时间 | 备注 | 补充说明 |
|---|---|---|---|---|---|
| Spark | 分号 | join语句失效,是因为join上面语句注释有分号 | 2025-03-19 | 注释一定不要有特殊符号 | 无 |
| Spark | application作为字段名 | 测试能跑通,发布就报错 | 2025-03-19 | 不要用关键字作为字段名字,实在要用加反引号 | 无 |
| Spark | join | join的关联字段一定要类型一致 | 2025-03-19 | join 字母 a=数字97 会关联上 | 无 |
| Spark | join | join的关联字段不能有null | 2025-03-19 | 会产生笛卡尔积 | 关联条件两边都是null导致条件失效产生笛卡尔积 |
| 中台 | 补数 | 众安平台补数不会跳过自定义crontab | 2025-03-21 | crontab依赖上游表,补数会忽略执行条件,统一设最晚执行时间 | 无 |
| Spark | 建表 | doris表的源头表应该parquet格式 | 未记录 | doris抽取任务拉取parquet文件,orc格式会抽取失败 | 无 |
| Spark | 测试环境,测试报分区相关错误 | 测试环境分区表目录缺失分区层级,执行报错 | 2025-07-18 | 删除分区+修复表元数据:ALTER TABLE … DROP IF EXISTS PARTITION(…); msck repair table …; | 无 |
| Spark | 比较(> < max min 等) | 数字和字符类型比较大小规则不一致,需类型转换 | 未记录 | ‘9’>’12’,9<12 | 无 |
| Spark | 分区每月只跑一天 | 补数会刷新分区数据,需加逻辑避免 | 2025-07-31 | substr(if(dayofmonth(current_date) <> 5, current_date, date_sub(trunc(‘${bizdate}’,’MONTH’),1)),1,7) | 无 |
| Spark | udf | 能用原生语法实现尽量不用UDF | 2025-08-07 | UDF只用来实现原生无法实现的逻辑,提升迁移可移植性 | 反馈问题记录 |
| Spark | 判断空值 | ad<> null 会跑出空数据 | 2025-08-07 | 正确写法:ad is not null | 反馈问题记录 |
| Spark | 无关联条件连接 | 两张表无关联条件直接连接会报错 | 2025-08-07 | 必须用笛卡尔集时:set spark.sql.crossJoin.enabled=true; | 反馈问题记录 |
| Spark | 测试和生产数据对不上 | 迭代需求数据量不一致 | 2025-09-12 | 检查代码中是否带入${xxx_project}等参数不一致 | 无 |
| Spark | 产生不干净分区 | 偶发不干净分区,报路径不存在错误 | 2025-10-22 | 删除异常分区+修复元数据,建议重跑数据 | 无 |
| 中台 | 日期 | 线下导入日期为字符串时注意格式 | 2025-11-14 | 统一转成yyyy-MM-dd,如2025/1/1→2025-01-01 | 无 |
| 中台 | 特殊符号 | 调度配置含< >等特殊字符需转义 | 2025-11-25 | 例:时点利润<0 → 时点利润%3C0 | 无 |
| 中台 | in not in | hive中in+not in≠总数,因包含null | 2025-12-10 | 与产品确认是否需包含null数据 | 无 |
| Spark | row_id | with语法多次调用导致row_number结果不一致 | 2026-01-08 | order by 数据不唯一导致多次计算结果不一致 | 无 |
| 帆软 | concat | Doris拼接字段用 | 会类型识别错误 | 2026-03-13 |
此文章版權歸 ALICS 所有,如有轉載,請註明來自原作者





