【问题标题】:How Can I find a Null Value within a number?如何在数字中找到空值?
【发布时间】:2016-05-01 22:15:38
【问题描述】:

我正在使用 BI 工具 Domo,它使用 Amazon Red Shift。我有一个使用 Zendesk 数据每晚运行的数据集。

我收到此错误:

OnboardFlowExecution(2794) data flow execution id 
(724670342c4c48a9a61e7a617e6462c1) failed: 
java.lang.NumberFormatException: For input string: "null"

我已经研究了这个错误,我的印象是在数据集中的某个地方,Number 列包含它不喜欢的数据,并且正在对我的下游流程造成严重破坏。

如何找到有问题的列/行?

【问题讨论】:

  • 我没有使用 Domo 的实践经验,所以请谨慎对待...但这似乎是您的 BI 工具由于后端数据输入不正确而损坏。 BI 工具通常直接驻留在数据库中,或使用由数据库通过管理 ETL 流程提供的专有数据集市(Universe、多维数据集等)。您最好的选择是识别任何可用的日志文件,以更好地跟踪哪个表出现故障,然后直接进入后端数据库以检查您的流程假设与实际存在的数据。乏味,我知道,但这就是我要开始的地方。
  • 我同意你的观点,它是 BI 工具。但是任何帮助我识别有问题的列和字段都会有很长的路要走。谢谢
  • 不幸的是,这里没有人能够帮助您提供您正在寻找的细节,因为他们需要完全访问您的系统才能识别问题。我可以从您的 java.lang.NumberFormatException (docs.oracle.com/javase/7/docs/api/java/lang/…) 告诉您,您似乎正在尝试将空值转换为数字。如果我不得不猜测,可能是在 ETL 过程中为最终用户转换数据,因此您应该联系您的 DBA 或创建数据集市的 BI 管理员以搜索故障日志。

标签: sql amazon-web-services domo


【解决方案1】:

Amazon RedShift 期望列中有一个字符串值,但接收的是“null”值。因此,它抛出了一个异常(一种错误)。

向输入数据集添加转换以处理空异常。我们之前在 RedShift 中使用 NVL 函数将空值替换为其他值。

例如您的转换可能是:

从员工中选择employee_id, NVL(emp_first_name, 'No Name');

NVL 函数会将 'emp_first_name' 列中的所有空值替换为 'No Name'

【讨论】:

  • 您还可以使用内置的 Domo ETL 来删除/替换空值。
猜你喜欢
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
相关资源
最近更新 更多