DC解析异常常见报错

adRequestForDC "Caused By: [BadRequestForDC] (ArgumentTypeError: List())
at lib.BadRequestForDC$.apply(IError.scala:256)
at lib.ea.domain.ExprEvalType.throwTypeError(ExprEvalType.scala:32)
at lib.ea.domain.ExprEvalType._dateParse(ExprEvalType.scala:393)
at lib.ea.domain.ExprEvalType._dateParse(ExprEvalType.scala:7)
at lib.ea.domain.ExprEval.$anonfun$f$142(ExprEval.scala:727)
at lib.ea.domain.ExprEval.$wrapper(ExprEval.scala:573)
at lib.ea.domain.ExprEval.$f(ExprEval.scala:579)
at lib.ea.domain.ExprEval.$anonfun$f$1(ExprEval.scala:727).

/*报错二*/
{
  "resAbs": "752 ##DC error:BadRequestForDC,message=ArgumentTypeError: List()
  Caused By: ServerSideError: 
  [server-side-stack]: \"Caused By: [BadRequestForDC] (ArgumentTypeError: List())
  at lib.BadRequestForDC$.apply(IError.scala:256)
  at lib.ea.domain.ExprEvalType.throwTypeError(ExprEvalType.scala:32)
  at lib.ea.domain.ExprEvalType.expectOrElse(ExprEvalType.scala:44)
  at lib.ea.domain.ExprEvalType.dateTruncDay(ExprEvalType.scala:296)
  at lib.ea.domain.ExprEvalType.dateTruncDay(ExprEvalType.scala:7)
  at lib.ea.domain.ExprEval._dateTruncDay(ExprEval.scala:427)
  at lib.ea.domain.ExprEval.$anonfun$f$118(ExprEval.scala:707)
  at lib.ea.domain.ExprEval.$wrapper(ExprEval.scala:577)
  at lib.ea.domain.ExprEval.$f(ExprEval.scala:583)
  at lib.ea.domain.ExprEval.$anonfun$f$1(ExprEval.scala:707)
  at scala.util.Try$.apply(Try.scala:210)
  at lib.ea.domain.ExprEval.f(ExprEval.scala:590)
  at lib.ea.domain.ExprEvalType._dateTrunc(ExprEvalType.scala:307)
  at "
}

这个报错是:对日期字段做了dateParse(字符串转日期),原因是之前这个日期字段可能是字符串,然后在有数上做了转换,然后数据库的类型变成了日期,就不能在进行日期转日期了,所以有数报错了。这个时候需要找到那个字段做一下修改。 第二个报错就是dateTrunc(日期截图字段有问题)

52 ##DC error:BadRequestForDC,message=split index less than 1
Caused By: ServerSideError:
[server-side-stack]: "Caused By: [BadRequestForDC] (split index less than 1)
at lib.BadRequestForDC$.apply(IError.scala:256)
at lib.sql.ExprEvalSQL._split(ExprEvalSQL.scala:252)
at lib.sql.ExprEvalSQL._split(ExprEvalSQL.scala:7)

这个是因为运用到了split函数,有些数据库不支持去第-1个,例如:SPLIT(("1"+[DNN]) ,"",-1),需要改变写法。

adRequestForDC "Caused By: [BadRequestForDC] (Aggregator GranularityError: (expr: g1))
at lib.BadRequestForDC$.apply(IError.scala:256)
at lib.ea.domain.ExprEvalGranularity.aggregatorGranularity(ExprEvalGranularity.scala:75)
apiName[socket](/api/das
at lib.ea.domain.ExprEvalGranularity.sum(ExprEvalGranularity.scala:80)
at lib.ea.domain.ExprEvalGranularity.sum(ExprEvalGranularity.scala:6)
at lib.ea.domain.ExprEval._sum(ExprEval.scala:394).

这个报错是因为对一个已经聚合的计算字段外面又嵌套了一层聚合函数,如:sum。这个情况一般很少会出现,出现了之后只需要重新将字段拖入到图表中就可以了。

adRequestForDC "Caused By: [BadRequestForDC] (ArgumentTypeError: List())
at lib.BadRequestForDC$.apply(IError.scala:256)
at lib.ea.domain.ExprEvalType.throwTypeError(ExprEvalType.scala:32)
at lib.ea.domain.ExprEvalType.expectOrElse(ExprEvalType.scala:44)
at lib.ea.domain.ExprEvalType.sum(ExprEvalType.scala:242)
at lib.ea.domain.ExprEvalType.sum(ExprEvalType.scala:7).

这个是对字符串字段做了SUM聚合方式。是原先字段类型是整数,在有数这边是SUM。然后底层数据库变成了字符串,就出现SUM(字符串)了

adRequestForDC "Caused By: [BadRequestForDC] (Parse ApiInput Error: DecodingFailure(Attempt to decode value on failed cursor, List(DownField(aggregator), DownArray, DownField(measures))))
    at lib.BadRequestForDC$.apply(IError.scala:256)
    at lib.http.server.wrapper.JsonConvertor$.apply(JsonConvertor.scala:63)
    at lib.http.server.handler.Adapter$.$anonfun$getWrapComposer$2(Adapter.scala:80)
    at lib.http.server.wrapper.PreProcessor$.$anonfun$apply$10(PreProcessor.scala:67)
    at scala.Option.map(Option.scala:242)

度量没给aggregator,有一个字段没有传聚合方式。BadRequestForDC的意思就是 “坏的 请求 给 DC”,可以尝试将字段重新拖入。