开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

DataWorks为什么maxcompute的数据导入到mysql会乱码?

DataWorks为什么maxcompute的数据导入到mysql会乱码??mysql的表是udf8mb4的编码

展开
收起
真的很搞笑 2023-08-27 14:32:38 130 0
1 条回答
写回答
取消 提交回答
  • 报错现象: 如果数据中包括表情符,在同步过程中可能会报错脏数据:[13350975-0-0-writer] ERROR StdoutPluginCollector - 脏数据 {"exception":"Incorrect string value: '\xF0\x9F\x98\x82\xE8\xA2...' for column 'introduction' at row 1","record":[{"byteSize":8,"index":0,"rawData":9642,"type":"LONG"},}],"type":"writer"} 。可能原因:数据库相关编码未设置为utf8mb4,导致同步表情符报错。源端的数据本身就是乱码。数据库和客户端的编码不一样。浏览器编码不一样,导致预览失败或乱码。解决方案: 针对产生乱码的不同原因,选择相应的解决方法:如果您的原始数据乱码,需首先处理好原始数据,再进行同步任务。数据库和客户端编码格式不一致,需先修改编码格式。浏览器编码和数据库或客户端编码格式不一致,需先统一编码格式,然后进行数据预览。您可以尝试以下操作:JDBC格式添加的数据源修改utf8mb4:jdbc:mysql://xxx.x.x.x:3306/database?com.mysql.jdbc.faultInjection.serverCharsetIndex=45。
    实例ID形式添加数据源:在数据库名后拼接,格式为database?com.mysql.jdbc.faultInjection.serverCharsetIndex=45。修改数据库相关的编码格式为utf8mb4。例如,在RDS控制台修改RDS的数据库编码格式。说明 设置RDS数据源编码格式命令:set names utf8mb4。查看RDS数据库编码格式命令:
    show variables like 'char%'。
    https://help.aliyun.com/document_detail/146663.html,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-08-27 15:52:36
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像