实时数仓 Hologres操作报错合集之指定主键更新模式报错主键数据重复,该如何处理

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。

问题一:Hologres指定主键更新模式,怎么还会报错呢?

Hologres指定主键更新模式,怎么还会报错呢?



参考答案:

报错原因:主键数据重复 或者 导入的数据有重复

解决方法:

①检查一下是否外表重复创建;

②把此表删除重建一下看看

③若数据源包含重复数据,可执行以下开关参数,保留数据源重复数据的第一条:set hg_experimental_affect_row_multiple_times_keep_first = on; 根据业务选择配置

④排查是否在两个transction中create同一张表,如果是,不要并发在两个transcation 内create同一张表,原生PG也会报这种错。

⑤ttl导致,生产环境不建议使用ttl管理数据



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/616591



问题二:Hologres 这个报错是什么意思啊?

Hologres 这个报错是什么意思啊?

ERROR: status { code: SERVER_INTERNAL_ERROR message: "[FunctionsCast.cc:194 CastPrimitiveToPrimitive] HGERR_code 22003 HGERR_msge integer out of range HGERR_end[query_id:70213306939365286]" err_data { filename: "FunctionsCast.cc" lineno: 194 funcname: "CastPrimitiveToPrimitive" sqlerrcode: 50331778 message: "integer out of range" context: "[query_id:70213306939365286]" } }



参考答案:

看起来是你casy 成 int 的类型,入参数据超过 int 最大值



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/613919



问题三:Hologres数据集成mysql到holo写入报错,怎么解决?

Hologres数据集成mysql到holo写入报错,怎么解决?



参考答案:

有超出numeric(32,18)的数据。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/613420



问题四:Hologres出现这个报错是什么意思?子查询没问题,但合并查询后就报错了?

Hologres出现这个报错是什么意思?子查询没问题,但合并查询后就报错了?[17:14:10] 执行结束

[17:14:10] NOTICE: One or more columns in the following table(s) do not have statistics: saas_channel

[17:14:10] [执行失败! 0 row 耗时:11.48s]

[17:14:10] 错误原因:ERROR: status { code: SERVER_INTERNAL_ERROR message: "query next from pg executor failed from 11.199.119.8:26094[query_id:10071409574629053]" err_data { filename: "parse_relation.c" lineno: 3369 funcname: "errorMissingColumn" sqlerrcode: 50360452 message: "column \"c_b03f7278_4903\" does not exist" context: "[query_id:10071409574629053]" message_id: "column \"%s\" does not exist" cursorpos: 0 internalpos: 650 internalquery: "SELECT c_b0525378_5743, c_abc83a38_8068 FROM (SELECT CASE WHEN ((c_b0525678_5747 = 30::INT4) AND CASE WHEN (c_abc87098_8076 > 0::INT8) THEN CASE WHEN (c_abc873b8_8078 = c_abc87098_8076) THEN null::BOOLEAN ELSE TRUE::BOOLEAN END ELSE FALSE::BOOLEAN END AND (c_b05257f8_5749 = 100000::INT4)) THEN c_b05254f8_5745 ELSE null::INT8 END AS c_abc83a38_8068, c_b0525378_5743 FROM (SELECT c_b0525378_5743, c_b05254f8_5745, c_b0525678_5747, c_b05257f8_5749, c_abc87098_8076, c_abc873b8_8078 FROM (SELECT count(c_abc86eb8_8075) AS c_abc87098_8076, sum(c_abc87278_8077) AS c_abc873b8_8078, c_b0525378_5743, c_b05254f8_5745, c_b0525678_5747, c_b05257f8_5749, c_b03f7278_4903, c_b03f8d78_4927, c_b0525438_5744, c_b05255b8_5746, c_b0525738_5748 FROM (SELECT CASE WHEN (c_b05254f8_5745 = c_b09b84f8_2764) IS NULL THEN 1::INT4 ELSE 0::INT4 END AS c_abc87278_8077, c_b0525378_5743, c_b0525438_5744, c_b05254f8_5745, c_b05255b8_5746, c_b0525678_5747, c_b0525738_5748, c_b05257f8_5749, c_abc86eb8_8075 FROM (SELECT c_b09b84f8_2764, c_b0525378_5743, c_b0525438_5744, c_b05254f8_5745, c_b05255b8_5746, c_b0525678_5747, c_b0525738_5748, c_b05257f8_5749, c_abc86eb8_8075 FROM (SELECT FROM hologres.hg_internal_holo_link(\'ClcKJQoECAMQBBIdCL2d1bDM/PERGhIIvZ3VsMz88REQgICQgIAKKAASLgoMMTEuMTk5LjExOS44EJSzAxgDIEIo0MOZqZaB3uMLMPW70cyN4d3jCzjFggM=\', 0) AS T_ab9cf938(c_b0525378_5743 INT8, c_b0525438_5744 INT8, c_b05254f8_5745 INT8, c_b05255b8_5746 CHAR(32), c_b0525678_5747 INT4, c_b0525738_5748 INT8, c_b05257f8_5749 INT4)) AS T_OUTER LEFT JOIN (SELECT FROM hologres.hg_internal_holo_link(\'Cl8KKQoICP////8PEAASHQi9ndWwzPzxERoSCL2d1bDM/PEREICAkIDACigAEjIKDDExLjE5OS4xMTkuOBCUswMY/////w8gCijQw5mploHe4wsw9bvRzI3h3eMLOMWCAw==\', 1) AS T_aba5b638(c_b09b84f8_2764 INT8, c_abc86eb8_8075 BOOLEAN)) T_INNER ON (c_b05254f8_5745 = c_b09b84f8_2764) IS NOT FALSE) as T_RESULT ) AS T_AGG GROUP BY c_b03f7278_4903, c_b03f8d78_4927, c_b0525378_5743, c_b0525438_5744, c_b05254f8_5745, c_b05255b8_5746, c_b0525678_5747, c_b0525738_5748, c_b05257f8_5749) as T_RESULT ) as T_RESULT ) as T_RESULT " } }

Where: [query_id:10071409574629053]



参考答案:

看起来是因为查询走了PQE,将sql中这个地方

count(

distinct CASE

WHEN r.type = 30 and r.consumer_id IN (SELECT consumer_id FROM tiger_dwd.marketing_user_activity_behavior_record WHERE type = 20)

AND o.order_state = 100000 THEN r.consumer_id

END

) AS first_order,

改为:

count(

distinct CASE

WHEN r.type = 30 and exists (SELECT consumer_id FROM tiger_dwd.marketing_user_activity_behavior_record WHERE type = 20 and r.consumer_id = consumer_id)

AND o.order_state = 100000 THEN r.consumer_id

END

) AS first_order,

用in会走pqe,exists走hqe,且性能好

not in和not exists对空值的处理是有区别的,要注意下子查询输出有没有null



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/610821



问题五:maxcompute同步到hologres,采用的方法是建立外部表,请问大家有遇到过类似的情况吗?

maxcompute同步到hologres,采用的方法是建立外部表,然后再把数据写入到hologres的内表中凌晨运行的时候,最近会出现这样的报错,但是过一段时间后重跑就可以,请问大家有遇到过类似的情况吗?



参考答案:

设置下重试次数,看了下报错,估计是他服务之间通信的问题。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/610810

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
相关文章
|
3月前
|
存储 安全 网络安全
Hologres 的安全性和数据隐私保护
【9月更文第1天】随着数据量的不断增长和对数据价值的认识加深,数据安全和隐私保护成为了企业和组织不可忽视的重要议题。Hologres 作为一款高性能的实时数仓产品,在设计之初就将安全性置于核心地位。本文将深入探讨 Hologres 在保障数据安全和隐私方面的措施,包括数据加密、访问控制以及如何满足各类数据保护法规的要求。
68 3
|
3月前
|
消息中间件 Java 数据库连接
Hologres 数据导入与导出的最佳实践
【9月更文第1天】Hologres 是一款高性能的实时数仓服务,旨在提供快速的数据分析能力。无论是从外部数据源导入数据还是将数据导出至其他系统,都需要确保过程既高效又可靠。本文将详细介绍如何有效地导入数据到 Hologres 中,以及如何从 Hologres 导出数据。
121 1
|
4月前
|
SQL DataWorks 数据库连接
实时数仓 Hologres操作报错合集之如何将物理表数据写入临时表
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
SQL 消息中间件 OLAP
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
63 1
|
4月前
|
SQL JSON 分布式计算
DataWorks操作报错合集之如何解决在创建Hologres开发节点时报错
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
SQL DataWorks 安全
DataWorks产品使用合集之怎么将数据导入或写入到 Hologres
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
SQL 分布式计算 数据库
畅捷通基于Flink的实时数仓落地实践
本文整理自畅捷通总架构师、阿里云MVP专家郑芸老师在 Flink Forward Asia 2023 中闭门会上的分享。
8324 15
畅捷通基于Flink的实时数仓落地实践
|
4月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用问题之使用CTAS同步MySQL到Hologres时出现的时区差异,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 关系型数据库 MySQL
实时数仓 Hologres操作报错合集之Flink CTAS Source(Mysql) 表字段从可空改为非空的原因是什么
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
SQL 关系型数据库 测试技术
实时数仓 Hologres操作报错合集之执行Flink的sink操作时出现报错,是什么原因
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。

热门文章

最新文章

相关产品

  • 实时数仓 Hologres