Flink这个问题怎么解决?我们使用sql聚合函数生成指标出现偶发性部分指标异常。使用spark sql跑指标正常的。确定是某一天的数据触发了异常。下的sql前面4个指标正常,后面全是1
select
country_id,
joke_type,
sc_type,
sc_version,
count(distinct userid) user_cnt,
count(distinct subserial) dev_cnt,
count(distinct concat(subserial,cn)) channel_cnt,
count(distinct hd) hd_cnt,
count(1) all_cnt,
count(case when r not in (-1,-2,21,20084,25404,25409,25416,25451,25544,25546,26109,10053,10057,10121,10122,10125,10127) then 1 end) all_cnt_qu,
count(case when r = 0 then 1 end) success_cnt,
count(case when r = 0 and flowt between 0 and 30000 then 1 end) success_cnt2,
sum(case when r = 0 and flowt between 0 and 30000 then flowtbt else 0 end) flowtbt,
sum(case when r = 0 and flowt between 0 and 30000 then flowtht else 0 end) flowtht,
sum(case when r = 0 and flowt between 0 and 30000 then flowtot else 0 end) flowtot,
sum(case when r = 0 and flowt between 0 and 30000 then decodet else 0 end) decodet,
sum(case when r = 0 and flowt between 0 and 30000 then flowt else 0 end) flowt,
sum(case when r = 0 and flowt between 0 and 30000 then viewt else 0 end) viewt
from dwa.test_table
where dt = '2023-08-17'
group by
country_id,
joke_type,
sc_type,
sc_version;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的 SQL 查询语句,问题出现在 "count" 聚合函数之后的部分指标,而 "count" 聚合函数之前的指标正常。
针对这种偶发性的部分指标异常,有几个可能的原因和解决方法:
数据质量问题:偶发性异常可能是由于特定数据的问题导致的。您可以检查异常发生的日期和相关数据,尝试找出触发异常的特定数据,并分析它们的特点。可能需要对数据进行清洗或修复,以保证数据的质量和一致性。
数据类型问题:检查指标字段的数据类型是否正确。确保字段的数据类型与实际数据的类型匹配,避免数据类型转换错误导致结果异常。
数据筛选条件问题:检查 "count" 聚合函数之后的条件筛选是否正确。确保筛选条件的逻辑正确,并且能够准确筛选出符合条件的数据。
数据分区问题:如果您的数据表进行了分区,检查表的分区设置是否正确,以确保查询时可以正确访问到指定日期的数据。
Flink 版本问题:考虑您使用的 Flink 版本是否存在某些 bug 或限制,可能会导致部分指标的计算结果异常。尝试升级到最新的 Flink 版本,或查阅 Flink 的官方文档和社区论坛,以了解已知问题和解决方案。
最后,建议您在 Flink 的日志中查找异常的报错信息,以获取更详细的错误信息和调试信息。如果问题仍然存在,您可以在 Flink 的社区论坛或官方文档中查找相关资料,或与 Flink 的支持团队联系,以获取更准确和详细的解决方案和支持。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。