数据集成往mysql抽取数据的时候表情符会被认为是脏数据?[阿里云DataWorks]

数据集成往mysql抽取数据的时候表情符会被认为是脏数据?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 在使用阿里云DataWorks进行数据集成往 MySQL 抽取数据时,如果源数据中包含表情符号,可能会被认为是脏数据。这是因为MySQL数据库默认的字符集是latin1,而表情符号一般会使用Unicode编码进行表示,如果直接将Unicode编码的表情符号存储到latin1字符集的MySQL数据库中,就会出现乱码。

    可以通过如下两种方式来解决该问题:

    1. 修改MySQL数据库字符集:建议将MySQL数据库字符集修改为utf8mb4,utf8mb4是支持Unicode编码的字符集,可以正确存储表情符号。

    2. 在DataWorks中进行数据转换:在进行数据集成时,在MySQL数据源对象中添加如下代码,实现Unicode编码到utf8mb4编码的转换,比如:

    SELECT CONVERT(column_name USING utf8mb4) FROM table_name;

    • 在往Mysql中抽取数据时,通常情况下表情符会被认为是脏数据。
    • 这是因为,在Mysql中,字符集的编码方式为UTF-8,而一些表情符号并不是标准的UTF-8字符。为了避免这种情况,通常可以在数据集成的过程中进行数据清洗,将这些表情符替换成其他字符,或者直接把这些数据删除。
    • 如果需要在Mysql中存储表情符等非标准字符,可以考虑使用支持存储非标准字符的字符集,如UTF-16。
  2. 在设计数据库表的字符集时,注意一下,不仅表要设置,有时候语句里面也有特定设置,注意优先级,不然会被覆盖掉。

    如果全都显示设置了,那么优先级顺序是 SQL语句 > 列级别设置 > 表级别设置 > 库级别设置 > 服务器别设置。

    以上方法解决不了从阿里云Maxcompute–>mysql的表情符导入的问题,网上的结论是传输工具DataX会把表情符做为脏数据处理掉,所以解决办法是把表情符给替换掉。

  3. ” 源头的 column 配置多了,当value类型为hash时,数据源的每行记录都需遵循相应的规范。即每行记录除key外,只能有1对attribute和value, 并且attribute必须在value前面,Redis Writer方可解析出column对应的是attribute或value。 按照用户意图,应该是column只保留3列,移除不需要的列。此回答整理自钉群“DataWorks交流群(答疑@机器人)””