在Glue作业中,使用包括character_set_server编码参数的jdbc url连接时对RDS不起作用

0

【以下的问题经过翻译处理】 我需要将从Redshift读取的表创建dynamicFrame插入到RDS中,并且该框架包括一个带有韩语字符串值的列。目标数据库的默认编码不是utf-8,因此在编写该框架时需要传递编码选项。我尝试了下面的代码,但是在MySQL中,发现韩语字母仍然无法正确显示。

为什么带有编码参数的jdbc url无法按照预想的那样工作?

代码

write_frame = glueContext.write_dynamic_frame.from_jdbc_conf(
    frame = source_frame,
    connection_options = {
        "url": "jdbc:mysql://<mysql host address>:<mysql port>/<db>?useUnicode=true&character_set_server=utf8mb4&character_set_client=utf8mb4&character_set_connection=utf8mb4&character_set_database=utf8mb4&character_set_results=utf8mb4&character_set_system=utf8mb4",
        "database": args["mysql_database"],
        "dbtable": target_table,
        "connectionName": args["mysql_connection_name"],
        "aws_iam_role": args["mysql_iam_role"]
    }
)

job.commit()

结果: 字符串显示为 ? 而不是正确的韩语字母。

profile picture
EXPERTE
gefragt vor 5 Monaten66 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 这并不完全依赖于Glue,Glue提供的是MySQL JDBC驱动器8.0.23(实际上与Glue 3相同),传递到url中的任何内容都必须由驱动器支持: https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html#table-connector-j-connp-props-session

请注意,参数的名称与在数据库中设置属性时不完全相同。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen