今天调试一个java程序,原来是连Teradata取数,现在要改为连Greenplum取数。这个程序较长,前端界面的数据项不少。
好不容易到了测试环节,发现一个奇怪的“问题”,连着几个简单的SQL,前面几个查到数据了,后面几个没查到。肿么回事?把SQL提出来看一下吧,一个个的在象鼻子那里跑得挺欢,都查出结果了。这下可是真糊涂了!
逐行调试吧!一遍又一遍......百思不得其解,就要心灰意冷的时候,逼自己静下心来想一想,唉,原来“答案”近在眼前:java程序连接的是FRONT库,象鼻子连的是ETL库;java程序查不出数的原因是FRONT库缺少数据。
反思一下为什么会犯这样的低级错误呢?大概是因为这是第一次正儿八经的用java连Greenplum,一上来接触的就是复杂的程序逻辑,心里多少有些不踏实吧。
考虑到随着数据分析环境规模和复杂度的增长,同一个程序在不同的数据源上运行而不会报错的概率呈上升趋势。搞错数据源的可能性不容忽视,这次犯的错误值得一记。