"阿里云E-MapReduce中starrocks 2.4的mysql外部表,做映射报
ERROR 1064 (HY000): mysql row data parse error, column_data_type=27
错误
mysql建表语句:
CREATE TABLE advertiser
(
id
int NOT NULL AUTO_INCREMENT,
name
varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
method
tinyint(1) NOT NULL,
rtb_method
json NOT NULL,
status
tinyint(1) NOT NULL,
response_time
int NOT NULL,
bid_url
varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
win_notice_url
varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
bm_id
int DEFAULT NULL,
create_time
datetime NOT NULL,
update_time
datetime NOT NULL,
tags
json DEFAULT NULL,
budget
varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
budget_abb
varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
user_id
int NOT NULL,
type
tinyint(1) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=1002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
starrocks建表语句:
CREATE TABLE dim_external_adx_advertiser
(
id
int NOT NULL,
name
string NOT NULL,
method
int NOT NULL,
rtb_method
json NOT NULL,
status
int NOT NULL,
response_time
int NOT NULL,
bid_url
string NOT NULL,
win_notice_url
string NULL,
bm_id
int NULL,
create_time
datetime NOT NULL,
update_time
datetime NOT NULL,
tags
json DEFAULT NULL,
budget
string NOT NULL,
budget_abb
string NOT NULL,
user_id
int NOT NULL,
type
int NOT NULL
) ENGINE=mysql
PROPERTIES
(
""host"" = ""xxx"", ""port"" = ""xxx"",...
)
哪个字段类型,映射不上吗?"
根据您提供的错误信息 "ERROR 1064 (HY000): mysql row data parse error, column_data_type=27",可能是由于列数据类型映射不匹配导致的。
在阿里云 E-MapReduce 中使用 StarRocks 2.4 版本的 MySQL 外部表时,需要确保外部表中的字段类型与目标表中的字段类型一致或兼容。如果类型不匹配,就会产生解析错误。
根据错误信息中的 column_data_type=27
,表示存在一个无法识别的字段类型,可能是外部表的某个字段类型无法正确映射到 StarRocks 中的对应类型。
解决此问题的方法:
检查外部表和目标表的字段定义,确保它们的类型匹配。可以参考 StarRocks 的文档,确认外部表支持的数据类型,并与目标表进行比较。
如果发现存在不兼容的字段类型,可能需要对数据进行类型转换。例如,在加载数据之前,可以使用 SQL 函数进行转换,将不支持的类型转换为 StarRocks 支持的类型。
确认 StarRocks 版本是否支持所需的数据类型。有时候,特定版本的 StarRocks 可能没有完全支持所有 MySQL 数据类型。
请注意,具体解决方案可能因您的数据模式、表结构和业务需求而异。建议您仔细检查和调整外部表字段类型与目标表的匹配性,并阅读 StarRocks 和 E-MapReduce 的官方文档,以获取更多关于外部表和数据加载的详细说明。
如有需要,请提供更多关于外部表的定义、目标表的结构和数据类型,以便我能够提供更具体的帮助和指导。
不能加Not null,default null。此回答整理至钉群“EMR OLAP(ClickHouse&StarRocks) 用户技术交流群”。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。