You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "ha.fengqi@aisino.com" <ha...@aisino.com> on 2024/06/25 07:54:36 UTC

cdc读取oracle数据如何解析

根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
                new OracleSourceBuilder()
                        .hostname("host")
                        .port(1521)
                        .databaseList("ORCLCDB")
                        .schemaList("DEBEZIUM")
                        .tableList("DEBEZIUM.PRODUCTS")
                        .username("username")
                        .password("password")
                        .deserializer(new JsonDebeziumDeserializationSchema())
                        .includeSchemaChanges(true) // output the schema changes as well
                        .startupOptions(StartupOptions.initial())
                        .debeziumProperties(debeziumProperties)
                        .splitSize(2)
                        .build();
返回的结果:
{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}

如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同

回复:cdc读取oracle数据如何解析

Posted by "wjw_bigdata@163.com" <wj...@163.com>.
退订真的很麻烦,,,退订了好几次没搞懂



---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com |
| 日期 | 2024年06月25日 17:25 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 抄送至 | |
| 主题 | Re: 回复:cdc读取oracle数据如何解析 |
数据没问题
"ID" "NAME"   "ADDTIME"            "PRICE"
1 "aa"     2024-6-25 14:21:33      12.22

发件人: 15868861416
发送时间: 2024-06-25 17:19
收件人: user-zh@flink.apache.org
主题: 回复:cdc读取oracle数据如何解析
检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串




| |
博星
|
|
15868861416@163.com
|


---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
| 发送日期 | 2024年06月25日 15:54 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | cdc读取oracle数据如何解析 |
根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
new OracleSourceBuilder()
.hostname("host")
.port(1521)
.databaseList("ORCLCDB")
.schemaList("DEBEZIUM")
.tableList("DEBEZIUM.PRODUCTS")
.username("username")
.password("password")
.deserializer(new JsonDebeziumDeserializationSchema())
.includeSchemaChanges(true) // output the schema changes as well
.startupOptions(StartupOptions.initial())
.debeziumProperties(debeziumProperties)
.splitSize(2)
.build();
返回的结果:
{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}

如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同

回复:退订

Posted by wjw_bigdata <wj...@163.com>.
退订








---- 回复的原邮件 ----
| 发件人 | 张胜军<15...@139.com> |
| 发送日期 | 2024年6月28日 12:57 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | 退订 |



退订
















扫一扫,


快速添加名片到手机




--------------------------------------------------------------------------------


----The following is the content of the forwarded email----
From:Yanquan Lv  <de...@gmail.com>
To:user-zh <us...@flink.apache.org>
Date:2024-06-26 16:46:05
Subject:Re: Re:cdc读取oracle数据如何解析

可以的,通过设置 debezium 的 decimal.handling.mode
<https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-property-decimal-handling-mode>
[1] 参数可以实现你的需求,转成
double 或者 string 来处理。

[1]
https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-numeric-types

ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月26日周三 16:35写道:

Map<String, Object> customConverterConfigs = new HashMap<>()
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric")
PRICE是decimal 类型,按上面设置可以正常了,ID是NUMBER,还是显示"ID":{"scale":0,"value":"AQ=="}
我试了下,我的ID是1,base64后是MQ==,这个ID还不是base64以后的结果。
通过JsonDebeziumDeserializationSchema(true,
customConverterConfigs)打印出来schema
{"schema":{"type":"struct","fields":[{"type":"struct","fields":[{"type":"struct","fields":[{"type":"int32","optional":false,"field":"scale"},{"type":"bytes","optional":false,"field":"value"}],"optional":false,"name":"io.debezium.data.VariableScaleDecimal","version":1,"doc":"Variable
scaled decimal","field":"ID"},
那是不是有什么方法,把对应的字段类型先设置好传进去

发件人: Yanquan Lv
发送时间: 2024-06-26 14:46
收件人: user-zh
主题: Re: 回复:cdc读取oracle数据如何解析
你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理

可以通过添加下面代码来让展示信息更直观。

Map<String, Object> customConverterConfigs = new HashMap<>()
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric")
JsonDebeziumDeserializationSchema schema = new
JsonDebeziumDeserializationSchema(includeSchema,
customConverterConfigs)




ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:

数据没问题
"ID" "NAME"   "ADDTIME"            "PRICE"
1 "aa"     2024-6-25 14:21:33      12.22

发件人: 15868861416
发送时间: 2024-06-25 17:19
收件人: user-zh@flink.apache.org
主题: 回复:cdc读取oracle数据如何解析
检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串




| |
博星
|
|
15868861416@163.com
|


---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
| 发送日期 | 2024年06月25日 15:54 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | cdc读取oracle数据如何解析 |
根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
new OracleSourceBuilder()
.hostname("host")
.port(1521)
.databaseList("ORCLCDB")
.schemaList("DEBEZIUM")
.tableList("DEBEZIUM.PRODUCTS")
.username("username")
.password("password")
.deserializer(new JsonDebeziumDeserializationSchema())
.includeSchemaChanges(true) // output the schema changes as well
.startupOptions(StartupOptions.initial())
.debeziumProperties(debeziumProperties)
.splitSize(2)
.build()
返回的结果:


{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}

如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同







退订

Posted by 张胜军 <15...@139.com>.


退订
















扫一扫,


快速添加名片到手机




--------------------------------------------------------------------------------


----The following is the content of the forwarded email----
From:Yanquan Lv  <de...@gmail.com>
To:user-zh <us...@flink.apache.org>
Date:2024-06-26 16:46:05
Subject:Re: Re:cdc读取oracle数据如何解析

可以的,通过设置 debezium 的 decimal.handling.mode
<https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-property-decimal-handling-mode>
[1] 参数可以实现你的需求,转成
double 或者 string 来处理。

[1]
https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-numeric-types

ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月26日周三 16:35写道:

> Map<String, Object> customConverterConfigs = new HashMap<>()
> customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
> "numeric")
> PRICE是decimal 类型,按上面设置可以正常了,ID是NUMBER,还是显示"ID":{"scale":0,"value":"AQ=="}
> 我试了下,我的ID是1,base64后是MQ==,这个ID还不是base64以后的结果。
> 通过JsonDebeziumDeserializationSchema(true,
> customConverterConfigs)打印出来schema
> {"schema":{"type":"struct","fields":[{"type":"struct","fields":[{"type":"struct","fields":[{"type":"int32","optional":false,"field":"scale"},{"type":"bytes","optional":false,"field":"value"}],"optional":false,"name":"io.debezium.data.VariableScaleDecimal","version":1,"doc":"Variable
> scaled decimal","field":"ID"},
> 那是不是有什么方法,把对应的字段类型先设置好传进去
>
> 发件人: Yanquan Lv
> 发送时间: 2024-06-26 14:46
> 收件人: user-zh
> 主题: Re: 回复:cdc读取oracle数据如何解析
> 你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
>
> 可以通过添加下面代码来让展示信息更直观。
>
> Map<String, Object> customConverterConfigs = new HashMap<>()
> customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
> "numeric")
> JsonDebeziumDeserializationSchema schema = new
> JsonDebeziumDeserializationSchema(includeSchema,
> customConverterConfigs)
>
>
>
>
> ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:
>
> > 数据没问题
> > "ID" "NAME"   "ADDTIME"            "PRICE"
> > 1 "aa"     2024-6-25 14:21:33      12.22
> >
> > 发件人: 15868861416
> > 发送时间: 2024-06-25 17:19
> > 收件人: user-zh@flink.apache.org
> > 主题: 回复:cdc读取oracle数据如何解析
> > 检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
> >
> >
> >
> >
> > | |
> > 博星
> > |
> > |
> > 15868861416@163.com
> > |
> >
> >
> > ---- 回复的原邮件 ----
> > | 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
> > | 发送日期 | 2024年06月25日 15:54 |
> > | 收件人 | user-zh<us...@flink.apache.org> |
> > | 主题 | cdc读取oracle数据如何解析 |
> > 根据文档的代码
> > JdbcIncrementalSource<String> oracleChangeEventSource =
> > new OracleSourceBuilder()
> > .hostname("host")
> > .port(1521)
> > .databaseList("ORCLCDB")
> > .schemaList("DEBEZIUM")
> > .tableList("DEBEZIUM.PRODUCTS")
> > .username("username")
> > .password("password")
> > .deserializer(new JsonDebeziumDeserializationSchema())
> > .includeSchemaChanges(true) // output the schema changes as well
> > .startupOptions(StartupOptions.initial())
> > .debeziumProperties(debeziumProperties)
> > .splitSize(2)
> > .build()
> > 返回的结果:
> >
> >
> {"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
> >
> > 如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
> >
>





Re: Re:cdc读取oracle数据如何解析

Posted by Yanquan Lv <de...@gmail.com>.
可以的,通过设置 debezium 的 decimal.handling.mode
<https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-property-decimal-handling-mode>
[1] 参数可以实现你的需求,转成
double 或者 string 来处理。

[1]
https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-numeric-types

ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月26日周三 16:35写道:

> Map<String, Object> customConverterConfigs = new HashMap<>();
> customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
> "numeric");
> PRICE是decimal 类型,按上面设置可以正常了,ID是NUMBER,还是显示"ID":{"scale":0,"value":"AQ=="}
> 我试了下,我的ID是1,base64后是MQ==,这个ID还不是base64以后的结果。
> 通过JsonDebeziumDeserializationSchema(true,
> customConverterConfigs);打印出来schema
> {"schema":{"type":"struct","fields":[{"type":"struct","fields":[{"type":"struct","fields":[{"type":"int32","optional":false,"field":"scale"},{"type":"bytes","optional":false,"field":"value"}],"optional":false,"name":"io.debezium.data.VariableScaleDecimal","version":1,"doc":"Variable
> scaled decimal","field":"ID"},
> 那是不是有什么方法,把对应的字段类型先设置好传进去
>
> 发件人: Yanquan Lv
> 发送时间: 2024-06-26 14:46
> 收件人: user-zh
> 主题: Re: 回复:cdc读取oracle数据如何解析
> 你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
>
> 可以通过添加下面代码来让展示信息更直观。
>
> Map<String, Object> customConverterConfigs = new HashMap<>();
> customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
> "numeric");
> JsonDebeziumDeserializationSchema schema = new
> JsonDebeziumDeserializationSchema(includeSchema,
> customConverterConfigs);
>
>
>
>
> ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:
>
> > 数据没问题
> > "ID" "NAME"   "ADDTIME"            "PRICE"
> > 1 "aa"     2024-6-25 14:21:33      12.22
> >
> > 发件人: 15868861416
> > 发送时间: 2024-06-25 17:19
> > 收件人: user-zh@flink.apache.org
> > 主题: 回复:cdc读取oracle数据如何解析
> > 检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
> >
> >
> >
> >
> > | |
> > 博星
> > |
> > |
> > 15868861416@163.com
> > |
> >
> >
> > ---- 回复的原邮件 ----
> > | 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
> > | 发送日期 | 2024年06月25日 15:54 |
> > | 收件人 | user-zh<us...@flink.apache.org> |
> > | 主题 | cdc读取oracle数据如何解析 |
> > 根据文档的代码
> > JdbcIncrementalSource<String> oracleChangeEventSource =
> > new OracleSourceBuilder()
> > .hostname("host")
> > .port(1521)
> > .databaseList("ORCLCDB")
> > .schemaList("DEBEZIUM")
> > .tableList("DEBEZIUM.PRODUCTS")
> > .username("username")
> > .password("password")
> > .deserializer(new JsonDebeziumDeserializationSchema())
> > .includeSchemaChanges(true) // output the schema changes as well
> > .startupOptions(StartupOptions.initial())
> > .debeziumProperties(debeziumProperties)
> > .splitSize(2)
> > .build();
> > 返回的结果:
> >
> >
> {"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
> >
> > 如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
> >
>

Re: Re:cdc读取oracle数据如何解析

Posted by "ha.fengqi@aisino.com" <ha...@aisino.com>.
Map<String, Object> customConverterConfigs = new HashMap<>();
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric");
PRICE是decimal 类型,按上面设置可以正常了,ID是NUMBER,还是显示"ID":{"scale":0,"value":"AQ=="}
我试了下,我的ID是1,base64后是MQ==,这个ID还不是base64以后的结果。
通过JsonDebeziumDeserializationSchema(true,
customConverterConfigs);打印出来schema
{"schema":{"type":"struct","fields":[{"type":"struct","fields":[{"type":"struct","fields":[{"type":"int32","optional":false,"field":"scale"},{"type":"bytes","optional":false,"field":"value"}],"optional":false,"name":"io.debezium.data.VariableScaleDecimal","version":1,"doc":"Variable scaled decimal","field":"ID"},
那是不是有什么方法,把对应的字段类型先设置好传进去

发件人: Yanquan Lv
发送时间: 2024-06-26 14:46
收件人: user-zh
主题: Re: 回复:cdc读取oracle数据如何解析
你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
 
可以通过添加下面代码来让展示信息更直观。
 
Map<String, Object> customConverterConfigs = new HashMap<>();
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric");
JsonDebeziumDeserializationSchema schema = new
JsonDebeziumDeserializationSchema(includeSchema,
customConverterConfigs);
 
 
 
 
ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:
 
> 数据没问题
> "ID" "NAME"   "ADDTIME"            "PRICE"
> 1 "aa"     2024-6-25 14:21:33      12.22
>
> 发件人: 15868861416
> 发送时间: 2024-06-25 17:19
> 收件人: user-zh@flink.apache.org
> 主题: 回复:cdc读取oracle数据如何解析
> 检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
>
>
>
>
> | |
> 博星
> |
> |
> 15868861416@163.com
> |
>
>
> ---- 回复的原邮件 ----
> | 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
> | 发送日期 | 2024年06月25日 15:54 |
> | 收件人 | user-zh<us...@flink.apache.org> |
> | 主题 | cdc读取oracle数据如何解析 |
> 根据文档的代码
> JdbcIncrementalSource<String> oracleChangeEventSource =
> new OracleSourceBuilder()
> .hostname("host")
> .port(1521)
> .databaseList("ORCLCDB")
> .schemaList("DEBEZIUM")
> .tableList("DEBEZIUM.PRODUCTS")
> .username("username")
> .password("password")
> .deserializer(new JsonDebeziumDeserializationSchema())
> .includeSchemaChanges(true) // output the schema changes as well
> .startupOptions(StartupOptions.initial())
> .debeziumProperties(debeziumProperties)
> .splitSize(2)
> .build();
> 返回的结果:
>
> {"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
>
> 如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
>

回复:退订

Posted by "wjw_bigdata@163.com" <wj...@163.com>.
退订



---- 回复的原邮件 ----
| 发件人 | 君莫思归<40...@qq.com.INVALID> |
| 日期 | 2024年06月26日 16:38 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 抄送至 | |
| 主题 | 回复:退订 |
退订







&nbsp;





------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <15171440192@163.com&gt;;
发送时间:&nbsp;2024年6月26日(星期三) 下午4:36
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;回复:退订






















在 2024-06-26 15:07:45,"15868861416" <15868861416@163.com&gt; 写道:
&gt;你好,可以把ID和PRICE的类型改为NUMBER试一下,我这边flink-sql试过number类型对应到iceberg的decimal数据是正常的
&gt;
&gt;
&gt;| |
&gt;博星
&gt;|
&gt;|
&gt;15868861416@163.com
&gt;|
&gt;
&gt;
&gt;---- 回复的原邮件 ----
&gt;| 发件人 | Yanquan Lv<decq12ybhl@gmail.com&gt; |
&gt;| 发送日期 | 2024年06月26日 14:46 |
&gt;| 收件人 | <user-zh@flink.apache.org&gt; |
&gt;| 主题 | Re: 回复:cdc读取oracle数据如何解析 |
&gt;你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
&gt;
&gt;可以通过添加下面代码来让展示信息更直观。
&gt;
&gt;Map<String, Object&gt; customConverterConfigs = new HashMap<&gt;();
&gt;customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
&gt;"numeric");
&gt;JsonDebeziumDeserializationSchema schema = new
&gt;JsonDebeziumDeserializationSchema(includeSchema,
&gt;customConverterConfigs);
&gt;
&gt;
&gt;
&gt;
&gt;ha.fengqi@aisino.com <ha.fengqi@aisino.com&gt; 于2024年6月25日周二 17:26写道:
&gt;
&gt;数据没问题
&gt;"ID" "NAME"&nbsp;&nbsp; "ADDTIME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "PRICE"
&gt;1 "aa"&nbsp;&nbsp;&nbsp;&nbsp; 2024-6-25 14:21:33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12.22
&gt;
&gt;发件人: 15868861416
&gt;发送时间: 2024-06-25 17:19
&gt;收件人: user-zh@flink.apache.org
&gt;主题: 回复:cdc读取oracle数据如何解析
&gt;检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
&gt;
&gt;
&gt;
&gt;
&gt;| |
&gt;博星
&gt;|
&gt;|
&gt;15868861416@163.com
&gt;|
&gt;
&gt;
&gt;---- 回复的原邮件 ----
&gt;| 发件人 | ha.fengqi@aisino.com<ha.fengqi@aisino.com&gt; |
&gt;| 发送日期 | 2024年06月25日 15:54 |
&gt;| 收件人 | user-zh<user-zh@flink.apache.org&gt; |
&gt;| 主题 | cdc读取oracle数据如何解析 |
&gt;根据文档的代码
&gt;JdbcIncrementalSource<String&gt; oracleChangeEventSource =
&gt;new OracleSourceBuilder()
&gt;.hostname("host")
&gt;.port(1521)
&gt;.databaseList("ORCLCDB")
&gt;.schemaList("DEBEZIUM")
&gt;.tableList("DEBEZIUM.PRODUCTS")
&gt;.username("username")
&gt;.password("password")
&gt;.deserializer(new JsonDebeziumDeserializationSchema())
&gt;.includeSchemaChanges(true) // output the schema changes as well
&gt;.startupOptions(StartupOptions.initial())
&gt;.debeziumProperties(debeziumProperties)
&gt;.splitSize(2)
&gt;.build();
&gt;返回的结果:
&gt;
&gt;{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
&gt;
&gt;如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
&gt;

回复:退订

Posted by 君莫思归 <40...@qq.com.INVALID>.
退订







&nbsp;





------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <15171440192@163.com&gt;;
发送时间:&nbsp;2024年6月26日(星期三) 下午4:36
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;回复:退订






















在 2024-06-26 15:07:45,"15868861416" <15868861416@163.com&gt; 写道:
&gt;你好,可以把ID和PRICE的类型改为NUMBER试一下,我这边flink-sql试过number类型对应到iceberg的decimal数据是正常的
&gt;
&gt;
&gt;| |
&gt;博星
&gt;|
&gt;|
&gt;15868861416@163.com
&gt;|
&gt;
&gt;
&gt;---- 回复的原邮件 ----
&gt;| 发件人 | Yanquan Lv<decq12ybhl@gmail.com&gt; |
&gt;| 发送日期 | 2024年06月26日 14:46 |
&gt;| 收件人 | <user-zh@flink.apache.org&gt; |
&gt;| 主题 | Re: 回复:cdc读取oracle数据如何解析 |
&gt;你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
&gt;
&gt;可以通过添加下面代码来让展示信息更直观。
&gt;
&gt;Map<String, Object&gt; customConverterConfigs = new HashMap<&gt;();
&gt;customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
&gt;"numeric");
&gt;JsonDebeziumDeserializationSchema schema = new
&gt;JsonDebeziumDeserializationSchema(includeSchema,
&gt;customConverterConfigs);
&gt;
&gt;
&gt;
&gt;
&gt;ha.fengqi@aisino.com <ha.fengqi@aisino.com&gt; 于2024年6月25日周二 17:26写道:
&gt;
&gt;数据没问题
&gt;"ID" "NAME"&nbsp;&nbsp; "ADDTIME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "PRICE"
&gt;1 "aa"&nbsp;&nbsp;&nbsp;&nbsp; 2024-6-25 14:21:33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12.22
&gt;
&gt;发件人: 15868861416
&gt;发送时间: 2024-06-25 17:19
&gt;收件人: user-zh@flink.apache.org
&gt;主题: 回复:cdc读取oracle数据如何解析
&gt;检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
&gt;
&gt;
&gt;
&gt;
&gt;| |
&gt;博星
&gt;|
&gt;|
&gt;15868861416@163.com
&gt;|
&gt;
&gt;
&gt;---- 回复的原邮件 ----
&gt;| 发件人 | ha.fengqi@aisino.com<ha.fengqi@aisino.com&gt; |
&gt;| 发送日期 | 2024年06月25日 15:54 |
&gt;| 收件人 | user-zh<user-zh@flink.apache.org&gt; |
&gt;| 主题 | cdc读取oracle数据如何解析 |
&gt;根据文档的代码
&gt;JdbcIncrementalSource<String&gt; oracleChangeEventSource =
&gt;new OracleSourceBuilder()
&gt;.hostname("host")
&gt;.port(1521)
&gt;.databaseList("ORCLCDB")
&gt;.schemaList("DEBEZIUM")
&gt;.tableList("DEBEZIUM.PRODUCTS")
&gt;.username("username")
&gt;.password("password")
&gt;.deserializer(new JsonDebeziumDeserializationSchema())
&gt;.includeSchemaChanges(true) // output the schema changes as well
&gt;.startupOptions(StartupOptions.initial())
&gt;.debeziumProperties(debeziumProperties)
&gt;.splitSize(2)
&gt;.build();
&gt;返回的结果:
&gt;
&gt;{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
&gt;
&gt;如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
&gt;

回复:退订

Posted by 费文杰 <15...@163.com>.


















在 2024-06-26 15:07:45,"15868861416" <15...@163.com> 写道:
>你好,可以把ID和PRICE的类型改为NUMBER试一下,我这边flink-sql试过number类型对应到iceberg的decimal数据是正常的
>
>
>| |
>博星
>|
>|
>15868861416@163.com
>|
>
>
>---- 回复的原邮件 ----
>| 发件人 | Yanquan Lv<de...@gmail.com> |
>| 发送日期 | 2024年06月26日 14:46 |
>| 收件人 | <us...@flink.apache.org> |
>| 主题 | Re: 回复:cdc读取oracle数据如何解析 |
>你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理
>
>可以通过添加下面代码来让展示信息更直观。
>
>Map<String, Object> customConverterConfigs = new HashMap<>();
>customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
>"numeric");
>JsonDebeziumDeserializationSchema schema = new
>JsonDebeziumDeserializationSchema(includeSchema,
>customConverterConfigs);
>
>
>
>
>ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:
>
>数据没问题
>"ID" "NAME"   "ADDTIME"            "PRICE"
>1 "aa"     2024-6-25 14:21:33      12.22
>
>发件人: 15868861416
>发送时间: 2024-06-25 17:19
>收件人: user-zh@flink.apache.org
>主题: 回复:cdc读取oracle数据如何解析
>检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
>
>
>
>
>| |
>博星
>|
>|
>15868861416@163.com
>|
>
>
>---- 回复的原邮件 ----
>| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
>| 发送日期 | 2024年06月25日 15:54 |
>| 收件人 | user-zh<us...@flink.apache.org> |
>| 主题 | cdc读取oracle数据如何解析 |
>根据文档的代码
>JdbcIncrementalSource<String> oracleChangeEventSource =
>new OracleSourceBuilder()
>.hostname("host")
>.port(1521)
>.databaseList("ORCLCDB")
>.schemaList("DEBEZIUM")
>.tableList("DEBEZIUM.PRODUCTS")
>.username("username")
>.password("password")
>.deserializer(new JsonDebeziumDeserializationSchema())
>.includeSchemaChanges(true) // output the schema changes as well
>.startupOptions(StartupOptions.initial())
>.debeziumProperties(debeziumProperties)
>.splitSize(2)
>.build();
>返回的结果:
>
>{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
>
>如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
>

回复: cdc读取oracle数据如何解析

Posted by 15868861416 <15...@163.com>.
你好,可以把ID和PRICE的类型改为NUMBER试一下,我这边flink-sql试过number类型对应到iceberg的decimal数据是正常的


| |
博星
|
|
15868861416@163.com
|


---- 回复的原邮件 ----
| 发件人 | Yanquan Lv<de...@gmail.com> |
| 发送日期 | 2024年06月26日 14:46 |
| 收件人 | <us...@flink.apache.org> |
| 主题 | Re: 回复:cdc读取oracle数据如何解析 |
你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理

可以通过添加下面代码来让展示信息更直观。

Map<String, Object> customConverterConfigs = new HashMap<>();
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric");
JsonDebeziumDeserializationSchema schema = new
JsonDebeziumDeserializationSchema(includeSchema,
customConverterConfigs);




ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:

数据没问题
"ID" "NAME"   "ADDTIME"            "PRICE"
1 "aa"     2024-6-25 14:21:33      12.22

发件人: 15868861416
发送时间: 2024-06-25 17:19
收件人: user-zh@flink.apache.org
主题: 回复:cdc读取oracle数据如何解析
检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串




| |
博星
|
|
15868861416@163.com
|


---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
| 发送日期 | 2024年06月25日 15:54 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | cdc读取oracle数据如何解析 |
根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
new OracleSourceBuilder()
.hostname("host")
.port(1521)
.databaseList("ORCLCDB")
.schemaList("DEBEZIUM")
.tableList("DEBEZIUM.PRODUCTS")
.username("username")
.password("password")
.deserializer(new JsonDebeziumDeserializationSchema())
.includeSchemaChanges(true) // output the schema changes as well
.startupOptions(StartupOptions.initial())
.debeziumProperties(debeziumProperties)
.splitSize(2)
.build();
返回的结果:

{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}

如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同


Re: 回复:cdc读取oracle数据如何解析

Posted by Yanquan Lv <de...@gmail.com>.
你好,你的 ID 和 PRINCE 字段类型是 decimal 吗,decimal 默认的展示方式是使用 BASE64 处理

可以通过添加下面代码来让展示信息更直观。

Map<String, Object> customConverterConfigs = new HashMap<>();
customConverterConfigs.put(JsonConverterConfig.DECIMAL_FORMAT_CONFIG,
"numeric");
JsonDebeziumDeserializationSchema schema = new
JsonDebeziumDeserializationSchema(includeSchema,
customConverterConfigs);




ha.fengqi@aisino.com <ha...@aisino.com> 于2024年6月25日周二 17:26写道:

> 数据没问题
> "ID" "NAME"   "ADDTIME"            "PRICE"
> 1 "aa"     2024-6-25 14:21:33      12.22
>
> 发件人: 15868861416
> 发送时间: 2024-06-25 17:19
> 收件人: user-zh@flink.apache.org
> 主题: 回复:cdc读取oracle数据如何解析
> 检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
>
>
>
>
> | |
> 博星
> |
> |
> 15868861416@163.com
> |
>
>
> ---- 回复的原邮件 ----
> | 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
> | 发送日期 | 2024年06月25日 15:54 |
> | 收件人 | user-zh<us...@flink.apache.org> |
> | 主题 | cdc读取oracle数据如何解析 |
> 根据文档的代码
> JdbcIncrementalSource<String> oracleChangeEventSource =
> new OracleSourceBuilder()
> .hostname("host")
> .port(1521)
> .databaseList("ORCLCDB")
> .schemaList("DEBEZIUM")
> .tableList("DEBEZIUM.PRODUCTS")
> .username("username")
> .password("password")
> .deserializer(new JsonDebeziumDeserializationSchema())
> .includeSchemaChanges(true) // output the schema changes as well
> .startupOptions(StartupOptions.initial())
> .debeziumProperties(debeziumProperties)
> .splitSize(2)
> .build();
> 返回的结果:
>
> {"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
>
> 如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同
>

Re: 回复:cdc读取oracle数据如何解析

Posted by "ha.fengqi@aisino.com" <ha...@aisino.com>.
数据没问题
"ID" "NAME"   "ADDTIME"            "PRICE"
1 "aa"     2024-6-25 14:21:33      12.22

发件人: 15868861416
发送时间: 2024-06-25 17:19
收件人: user-zh@flink.apache.org
主题: 回复:cdc读取oracle数据如何解析
检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串
 
 
 
 
| |
博星
|
|
15868861416@163.com
|
 
 
---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
| 发送日期 | 2024年06月25日 15:54 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | cdc读取oracle数据如何解析 |
根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
new OracleSourceBuilder()
.hostname("host")
.port(1521)
.databaseList("ORCLCDB")
.schemaList("DEBEZIUM")
.tableList("DEBEZIUM.PRODUCTS")
.username("username")
.password("password")
.deserializer(new JsonDebeziumDeserializationSchema())
.includeSchemaChanges(true) // output the schema changes as well
.startupOptions(StartupOptions.initial())
.debeziumProperties(debeziumProperties)
.splitSize(2)
.build();
返回的结果:
{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}
 
如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同

回复:cdc读取oracle数据如何解析

Posted by 15868861416 <15...@163.com>.
检查一下oracle中的DEBEZIUM.PRODUCTS这个表的数据,看你解析中有字符串




| |
博星
|
|
15868861416@163.com
|


---- 回复的原邮件 ----
| 发件人 | ha.fengqi@aisino.com<ha...@aisino.com> |
| 发送日期 | 2024年06月25日 15:54 |
| 收件人 | user-zh<us...@flink.apache.org> |
| 主题 | cdc读取oracle数据如何解析 |
根据文档的代码
JdbcIncrementalSource<String> oracleChangeEventSource =
new OracleSourceBuilder()
.hostname("host")
.port(1521)
.databaseList("ORCLCDB")
.schemaList("DEBEZIUM")
.tableList("DEBEZIUM.PRODUCTS")
.username("username")
.password("password")
.deserializer(new JsonDebeziumDeserializationSchema())
.includeSchemaChanges(true) // output the schema changes as well
.startupOptions(StartupOptions.initial())
.debeziumProperties(debeziumProperties)
.splitSize(2)
.build();
返回的结果:
{"before":null,"after":{"ID":{"scale":0,"value":"AQ=="},"NAME":"aa","ADDTIME":1719325293000,"PRICE":"BMY="},"source":{"version":"1.9.8.Final","connector":"oracle","name":"oracle_logminer","ts_ms":0,"snapshot":"false","db":"ORCL","sequence":null,"schema":"CDC","table":"ORDER_CDC","txId":null,"scn":"0","commit_scn":null,"lcr_position":null,"rs_id":null,"ssn":0,"redo_thread":null},"op":"r","ts_ms":1719301769186,"transaction":null}

如何解析?PRICE应该是数字,ID也是数字,这里显示的都不同