说明数据集创建后还在排队,没有运行完,等任务结束就好了,客户往往会在数据集没有运行完的时候就去点击预览等操作;
【原因】
1)未明确定义列。如:select 查询的字段在from的两张表中都存在,导致数据库无法区别需要查询的字段来自于哪张表。
2)查询中有重复字段。如:select a.name,a.name
【原因】:观远数据不支持同名字段。 在Oracle 的Client里,只是做查询跟显示, 但在观远这里是要做存储的,需要不同的名称。
类型转换异常,原来的字段类型和新的字段类型不一致,可以看下数据集预览是不是成功的,预览的数据有没有看起来明显是不符合预期的字段。
unknown error是更新成功后,写历史任务的时候出错了。 导致认为更新失败了。这是一个偶现的问题,我们会考虑进一步的优化方案~
这个报错通常是因为数据库连接池满导致的,可能之前的任务连接没有被完全释放导致的这个报错。通常这样的错误只要数据账号和网络环境没有问题,手动更新就可以更新成功;如果手动更新也是失败,需要查看数据账号的测试连接是否正常,如果测试连接正常,那说明BI和客户端数据库的连通性是没问题的,大概率是BI的连接池满了。需要查看报错时间段具体日志信息。
(1)业务要看实时数据,不希望有任何缓存: 可以在数据集上开一下支持实时卡片数据-无缓存
(不过要提醒的是这样每次业务使用报表,都会直接向数据集发出请求,会增加数据库压力)
(2)数据集大量更新失败,更新时间太集中了,可以错开一下设置的更新时间。
这种报错一般是sql太复杂了,运行内存不够了。如果数据量减少不了的话,看看能不能优化sql减少运行内存。比如:
(1)不用的字段不要select 出来,这样能减少内存压力;
(2)建议涉及到partion by, group by, order, join等的sql,在berserker上生成表方式,或者做宽表,然后在BI里面查,这样会更快,也容易保障。
这是因为配置完成后数据还没完全抽上来,任务还在运行,所以会弹出这个报错,待任务运行完成后再查看就可以了。
检查日志真正是报错是
You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 126 column 2 near
【原因】注释不能被忽略造成的语法错误。
【解决方案】根据此报错,删除SQL中的注释后数据集能正常更新。
SQLServer:Incorrect syntax near ";"
Oracle:ORA-00907:missing right parenthesis\n
【原因】预览是先将输入的SQL查询结果存入临时表中,再从临时表中取最终结果的。所以在SQL后面以分号结尾会报语法错误。
【解决方案】去掉结尾的分号即可。
【原因】报错信息是非法转换,不建议直接在数据结构中转换数据类型。比如不支持STRING直接改成了TIMESTAMP。
【解决方案】将某种数据类型的表达式转换为另一种数据类型,需要用函数对数据库进行转换,常用CAST函数。
为了保证数据更新的成功率以及BI性能的问题,对web service数据集更新时,系统限制的最大是19M(即单次更新,数据量不能超过19M)
该报错原因是数据库找不到相关文件,可先去源数据库内确认数据库信息是否变化,尝试在源库内执行更新SQL,可联系内部数据库管理员处理
这是本地数据库自身的报错,数据库缓存大小设置有关,可通过修改以下参数来解决
set global table_open_cache=16384;
set global table_definition_cache=16384;
一般情况下该报错是因为同一个ip在短时间内产生太多(超过mysql数据库max_connect_errors的最大值)中断的数据库连接导致的阻塞,联系本地的数据库管理员执行:flush hosts 清理缓存后解决;