数据类型转换

数据类型转换参考

本文档介绍了支持的数据库的数据类型到目标 redis 数据类型的默认转换。

常规 ANSI SQL 数据类型

源数据类型 HASH 的目标数据类型 HASH 示例
数组 不支持
bigint 字符串 2147483648将另存为 '2147483648'
二元的 bytes 字符串
bytes 或 base64 编码的 String,或十六进制编码的 String,基于连接器配置属性设置
binary.handling.mode
什么时候binary.handling.mode = bytes字符串'hello'将作为二进制字符串添加到表中'0x68656C6C6F',将被 Debezium 转换为'aGVsbG8AAAAAAAAAAAAAAAAAAAA='并将作为以下内容存储在 Redis 目标数据库中:'aGVsbG8AAAAAAAAAAAAAAAAAAAA='
位字符串 不支持
斑点 bytes 字符串
bytes 或 base64 编码的 String,或十六进制编码的 String,基于连接器配置属性设置
binary.handling.mode
什么时候binary.handling.mode = bytes加载到表中的二进制图像文件将被 Debezium 转换为 bytes,并以 bytes 字符串的形式存储在 Redis 目标数据库中
布尔 字符串 布尔值 false 将被 Applier 转换为 0,并将作为字符串 '0' 保存在 Redis 目标数据库中
字符串 当 PostgreSQL 数据类型为 char(14) 时,'hello world' 将保存为 'hello world'
日期 string
自 epoch 以来映射到 ms.microsec
PG 字段值:'2021-01-29'将被 Debezium 转换为 int18656(自 epoch 以来的日期数),该数字将转换为自 epoch 以来的毫秒数,并将作为以下格式存储在 Redis 目标数据库中:'1611878400000'
整数 字符串 2147483640将另存为'2147483640'
间隔 不支持
具有null值将由 Debezium 作为null并且不会存储在 Redis 目标数据库中
数值的 string
Debezium 配置参数
decimal.handling.mode确定连接器如何映射十进制值。什么时候decimal.handling.mode = 'precision'Debezium 接收的二进制字符串将转换为其相应的数值,并将作为字符串存储在 Redis 目标数据库中
PG 字段值:4521398.56将被 Debezium 转换为二进制字符串'GvMbUA==',该数据库将转换为数值,并作为以下格式存储在 Redis 目标数据库中:'4521398.56'
smallint 字符串 32767 将保存为 '32767'
发短信 字符串 “这是 PostgreSQL 文本列的很长的文本”
时间 映射到午夜过后的秒数的字符串
'14:23:46'将转换为'51826000000'
PostgreSQL、Oracle、Cassandra:时间戳
MySQL、SQL Server:日期时间
自 Epoch 以来映射到 ms.microsec 的字符串

SQL Server 日期时间格式:
YYYY-MM-DD hh:mm:ss[.nnn]
范围:
1753-01-01通过9999-12-31
PG 字段值:'2018-06-20 15:13:16.945104'将被 Debezium 转换为'1529507596945104'(微秒),并将作为'1529507596945.104'
PosrgreSQL: timestamptz
Oracle: 具有本地时区
的时间戳 MySQL: timestamp
转换为 UTC 并存储为自 epoch 以来的 ms.microsec 数的字符串
泰姆兹 转换为 UTC 并存储为午夜过后的秒数的字符串
PG 字段值:'14:23:46.12345'将被 Debezium 转换为字符串'12:23:46.12345Z'并将作为以下内容存储在 Redis 目标数据库中:'44638.345'
varbinary bytes 字符串
bytes 或 base64 编码的 String,或十六进制编码的 String,基于连接器配置属性设置
binary.handling.mode
什么时候binary.handling.mode = bytes字符串'hello'将作为二进制字符串添加到表中'0x68656C6C6F',将被 Debezium 转换为'aGVsbG8='并将作为以下内容存储在 Redis 目标数据库中:'aGVsbG8='
瓦查尔 字符串 'Hello World' 将保存为 'Hello World'
XML 格式 字符串
源数据类型 JSON 的目标数据类型 JSON 示例
数组 不支持
bigint 2147483648将另存为 2147483648
二元的 bytes 字符串 什么时候binary.handling.mode = bytes字符串'hello'将作为二进制字符串添加到表中'0x68656C6C6F',将被 Debezium 转换为'aGVsbG8AAAAAAAAAAAAAAAAAAAA='并将作为以下内容存储在 Redis 目标数据库中:'aGVsbG8AAAAAAAAAAAAAAAAAAAA='
位字符串 不支持
斑点 bytes 字符串 什么时候binary.handling.mode = bytes加载到表中的二进制图像文件将被 Debezium 转换为 bytes,并以 bytes 字符串的形式存储在 Redis 目标数据库中
布尔 布尔 布尔值 value:true 将作为值为 True 的布尔数据类型保存在 Redis 目标数据库中
字符串 当 PostgreSQL 数据类型为 char(14) 时,'hello world' 将保存为 'hello world'
日期 number
自 epoch 以来映射到 ms.microsec
PG 字段值:2021-01-29将被 Debezium 转换为 int 18656(自 epoch 以来的日期数),该数字将被转换为自 epoch 以来的毫秒数,并将存储在 Redis 目标数据库中:1611878400000
整数 2147483640将另存为2147483640
间隔 不支持
具有null值将由 Debezium 作为null并将存储在 Redis 目标数据库中,其值为null
数值的 Debezium 配置参数decimal.handling.mode确定连接器如何映射十进制值。什么时候decimal.handling.mode = 'precision'Debezium 接收到的二进制字符串将转换为其相应的数值,并将作为数字存储在 Redis 目标数据库数据库中。什么时候decimal.handling.mode = 'string'Debezium 接收到的字符串将作为字符串存储在 Redis 目标数据库中。什么时候decimal.handling.mode = 'double'Debezium 接收到的 double 值将作为 number 存储在 Redis 目标数据库中。 decimal.handling.mode = string:PG 字段值:4521398.56将被 Debezium 作为字符串接收'4521398.56',并将作为字符串 ' 存储在 Redis 目标数据库中4521398.56' .
smallint 32767 将另存为 32767
发短信 字符串
时间 映射到午夜过后秒数的 number number
'14:23:46'将转换为51826000000
PostgreSQL、Oracle、Cassandra:时间戳
MySQL、SQL Server:日期时间
decimal
映射到 ms.microsec since epoch.
SQL Server 日期时间格式:
YYYY-MM-DD hh:mm:ss[.nnn]
范围:
1753-01-01通过9999-12-31
PG 字段值:'2018-06-20 15:13:16.945104'将被 Debezium 转换为'1529507596945104'(微秒),并将作为 '1529507596945.104 存储在 Redis 目标数据库中
PosrgreSQL: timestamptz
Oracle: 具有本地时区
的时间戳 MySQL: timestamp

转换为 UTC 并存储为自 epoch 以来的 ms.microsec 数
泰姆兹
转换为 UTC 并存储为自 epoch 以来的 ms.microsec 数
PG 字段值:'14:23:46.12345'将被 Debezium 转换为字符串'12:23:46.12345Z'并将作为以下内容存储在 Redis 目标数据库中:44638.345
varbinary bytes 字符串
bytes 或 base64 编码的 String,或十六进制编码的 String,基于连接器配置属性设置
binary.handling.mode
什么时候binary.handling.mode = bytes字符串'hello'将作为二进制字符串添加到表中'0x68656C6C6F',将被 Debezium 转换为'aGVsbG8='并将作为以下内容存储在 Redis 目标数据库中:'aGVsbG8='
瓦查尔 字符串 'Hello World' 将保存为 'Hello World'
XML 格式 字符串

Cassandra 数据类型

源数据类型 HASH 的目标数据类型 HASH 示例
ASCII 字符串
计数器 (64 位长) 字符串 2
日期 不支持
十进制 不支持
字符串 '1.007308023'
期间 不支持
字符串 数字-3.4E+38将由 Debezium 接收为-3.4E38,将被 Applier 转换为-340000000000000000000000000000000000000并将作为'-340000000000000000000000000000000000000'
冷冻 字符串 {'10.10.11.1', '10.10.10.1', '10.10.12.1'}将作为字符串保存在 Redis 目标数据库中:'{'10.10.11.1', '10.10.10.1', '10.10.12.1'}'
冻结的 UDT 字符串 {'city': 'City','street': 'Street','streetno': 2,'zipcode': '02-212'}将作为字符串保存在 Redis 目标数据库中:'{'city': 'City','street': 'Street','streetno': 2,'zipcode': '02-212'}'
inet 字符串
IPv4 和 IPv6 网络地址
IP 地址4.35.221.243将被 Debezium 转换为'/4.35.221.243'并将作为'/4.35.221.243'
列表 字符串 列表['New York', 'Paris','London','New York']将由 Debezium 作为字符串数组发送:['New York', 'Paris','London','New York']并将作为字符串保存在 Redis 目标数据库中"['New York', 'Paris','London','New York']"
地图 字符串 {'fruit' : 'Apple', 'band' : 'Beatles'}将作为字符串保存在 Redis 目标数据库中:'{'fruit' : 'Apple', 'band' : 'Beatles'}'
设置 字符串 套装{'y','n'}将作为字符串 ''{'y','n'}' 保存在 Redis 目标数据库中
小小的 字符串
uuid 字符串 B9980B96-A85B-411C-B8E7-4BE55C123793
字符串 元组{ "field1": 1, "field2": "testing tuple", "field3": 2 }将作为字符串保存在 Redis 目标数据库中:' { "field1": 1, "field2": "testing tuple", "field3": 2 }'
瓦林特 不支持
源数据类型 JSON 的目标数据类型 JSON 示例
ASCII 字符串
计数器 (64 位长) 2
日期 不支持
十进制 不支持
1.007308023
期间 不支持
数字 -3.4E+38 将被 debezium 接收为-3.4E38并将作为-1e+38
冷冻 数组 {'10.10.11.1', '10.10.10.1', '10.10.12.1'}将作为数组保存在 Redis 目标数据库中:{'/10.10.11.1', '/10.10.10.1', '/10.10.12.1'}
冻结的 UDT 对象 {'city': 'City','street': 'Street','streetno': 2,'zipcode': '02-212'}将保存在 Redis 目标数据库中,因为字符串将作为对象保存在 Redis 目标数据库中:{'city': 'City','street': 'Street','streetno': 2,'zipcode': '02-212'}
inet 字符串
IPv4 和 IPv6 网络地址
IP 地址4.35.221.243将被 Debezium 转换为'/4.35.221.243'并将作为'/4.35.221.243'
列表 数组 列表['New York', 'Paris','London','New York']将由 Debezium 作为字符串数组发送:['New York', 'Paris','London','New York']并将作为数组保存在 Redis 目标数据库中:['New York', 'Paris','London','New York']
地图 对象 {'fruit' : 'Apple', 'band' : 'Beatles'}将作为对象保存在 Redis 目标数据库中:{'fruit' : 'Apple', 'band' : 'Beatles'}
设置 数组 套装{'y','n'}将作为数组保存在 Redis 目标数据库中:{'y','n'}
小小的
uuid 字符串 B9980B96-A85B-411C-B8E7-4BE55C123793
对象 元组{ "field1": 1, "field2": "testing tuple", "field3": 2 }将作为对象保存在 Redis 目标数据库中:{ "field1": 1, "field2": "testing tuple", "field3": 2 }
瓦林特 不支持

MySQL 和 MariaDB 数据类型

源数据类型 HASH 的源数据类型 Hash 示例
枚举 字符串 MySQL 枚举值'cat'将作为'cat'
几何学 不支持
geometrycollection 不支持
JSON 格式 字符串 {“pid”: 102, “name”: “name2”}
线串 不支持
多行字符串 不支持
多点 不支持
多多边形 不支持
多边形 不支持
设置 字符串 '1,2,3'将作为以下内容存储在 Redis 目标数据库中:'1,2,3'
字符串 价值'55'将作为2055并将由 Debezium 作为 int32 数据类型发送,值为2055.它将作为字符串存储在 Redis 目标数据库中'2055'
源数据类型 JSON 的目标数据类型 JSON 示例
枚举 字符串 MySQL 枚举值'cat'将作为'cat'
几何学 不支持
geometrycollection 不支持
JSON 格式 对象 {“pid”: 102, “name”: “name2”}
线串 不支持
多行字符串 不支持
多点 不支持
多多边形 不支持
多边形 不支持
设置 字符串 '1,2,3'将作为以下内容存储在 Redis 目标数据库中:'1,2,3'
价值'55'将作为2055并将由 Debezium 作为 int32 数据类型发送,值为2055.它将作为编号存储在 Redis 目标数据库中2055

Oracle 数据类型

源数据类型 HASH 的源数据类型 Hash 示例
b文件 不支持
binary_double 字符串 '1.7E+308'
binary_float 字符串 '3.40282E38'
克洛布 字符串 大块文本
float,real,double precision
real = FLOAT(63),double precision = FLOAT(126).
字符串 价值-3.402E+38将作为字符串保存在 Redis 目标数据库中'-340200000000000000000000000000000000000'当 Debezium 配置参数decimal.handling.mode = 'double'
长生 不支持
nchar string - 是可以存储 Unicode 字符的 Unicode 数据类型 字符串'testing hebrew שלום'将作为 'testing hebrew \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d         '
nclob 不支持
数量 (p,s) 字符串 '10385274000.32'
nvarchar string - 是可以存储 Unicode 字符的 Unicode 数据类型 字符串testing hebrew שלום'将作为 'testing hebrew \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
不支持
rowid 字符串 AAAR1QAAOAAAACFAAA
使用 tz 的时间戳 字符串 '2021-12-30 14:23:46'将被 Debezium 转换为字符串'2021-12-30T14:23:46+02:00'并将作为字符串存储在 Redis 目标数据库中:'1611878400000'这是自 epoch 以来的毫秒数
乌拉维德 不支持
源数据类型 JSON 的目标数据类型 JSON 示例
b文件 不支持
binary_double 1.7E+308
binary_float 3.40282E38
克洛布 字符串 大块文本
float,real,double precision
real = FLOAT(63),double precision = FLOAT(126).
数字/字符串 价值-3.402E+38将作为数字保存在 Redis 目标数据库中-340200000000000000000000000000000000000当 Debezium 配置参数decimal.handling.mode = 'double'
长生 不支持
nchar string - 是可以存储 Unicode 字符的 Unicode 数据类型 字符串'testing hebrew שלום'将作为 'testing hebrew \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d         '
nclob 不支持
数量 (p,s) 10385274000.32
nvarchar string - 是可以存储 Unicode 字符的 Unicode 数据类型 字符串testing hebrew שלום'将作为 'testing hebrew \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
不支持
rowid 字符串 AAAR1QAAOAAAACFAAA
使用 tz 的时间戳 '2021-12-30 14:23:46'将被 Debezium 转换为字符串'2021-12-30T14:23:46+02:00'并将作为数字存储在 Redis 目标数据库中:1611878400000这是自 epoch 以来的毫秒数
乌拉维德 不支持

PostgreSQL 数据类型

源数据类型 HASH 的源数据类型 Hash 示例
不支持
CIDR (CIDR) 字符串
IPv4 和 IPv6 网络地址。
'4.35.221.243/32'
不支持
字符串
HStret 字符串 '{“pages”:“368”,“author”:“凯瑟琳·邓恩”,“category”:“小说”}'
inet 字符串
IPv4 和 IPv6 网络地址
'4.35.221.243'
JSON 格式 字符串 “{”guid“: ”9c36adc1-7fb5-4d5b-83b4-90356a46061a“,
”name“: ”Angela Barton“,
”is_active“: null,
”company“: ”Magnafone“
”address“: ”178 Howard Place, Gulf, Washington,702“,
”registered“: ”2009-11-07T08:53:22 +08:00“,
”latitude“: 19.793713,
”longitude“: 86.513373,
”tags“: [”enim“,”aliquip“,”qui“ ]}”
线 不支持
macaddr 字符串
MAC 地址
'08:00:2b:01:02:03'
字符串 什么时候decimal.handling.mode = 'double'货币价值-8793780.01将作为 Debezium 接收-8793780.01with double 数据类型,并将作为字符串 ' 存储在 Redis 目标数据库中-8793780.01'
路径 不支持
不支持
多边形 不支持
uuid 字符串 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'
源数据类型 JSON 的目标数据类型 JSON 示例
不支持
CIDR (CIDR) 字符串
IPv4 和 IPv6 网络地址。
'4.35.221.243/32'
不支持
字符串
HStret 字符串 '{“pages”:“368”,“author”:“凯瑟琳·邓恩”,“category”:“小说”}
inet 字符串
IPv4 和 IPv6 网络地址
'4.35.221.243'
JSON 格式 对象 {“guid”: “9c36adc1-7fb5-4d5b-83b4-90356a46061a”,
“name”: “Angela Barton”,
“is_active”: null,
“company”: “Magnafone”
“address”: “178 Howard Place, Gulf, Washington,702”,
“registered”: “2009-11-07T08:53:22 +08:00”,
“latitude”: 19.793713,
“longitude”: 86.513373,
“tags”: [“enim”,“aliquip”,“qui” ]}
线 不支持
macaddr 字符串
MAC 地址
'08:00:2b:01:02:03'
字符串 什么时候decimal.handling.mode = 'double'货币价值-8793780.01将作为 Debezium 接收-8793780.01,数据类型为 double,并将作为数字存储在 Redis 目标数据库中-8793780.01
路径 不支持
不支持
多边形 不支持
uuid 字符串 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'

SQL Server 数据类型

源数据类型 HASH 的源数据类型 Hash 示例
字符串 当值>0它将由 Debezium 转换为 true,并将作为 '1' 而当值= 0它将被 Debezium 转换为 false,并将在 Redis 目标数据库中保存为 '0'
日期时间2 string
表示自纪元以来的毫秒数,不包括时区信息。
当 Debezium 配置参数time.precision.mode='connect'、值 '2018-06-20 15:13:16.945104' 将被 Debezium 转换为值 '1529507596945104' 中,并将作为字符串保存在 Redis 目标数据库'1529507596945.104'
datetimeoffset 字符串 当 Debezium 配置参数decimal.handling.mode = 'precision'、datetimeoffset 数据类型值 '12-10-25 12:32:10 +01:00' 将转换为字符串 '2025-12-10T12:32:10+01:00'并将作为1765366330000
十进制,浮点数,实数 字符串
值范围:十进制 10^38 +1 到 10^38,浮点数 1.79E+308 到 -2.23E-308,0 和 2.23E-308 到 1.79E+308,实数:- 3.40E + 38 到 -1.18E - 38、0 和 1.18E - 38 到 3.40E + 38
当 Debezium 配置参数decimal.handling.mode = 'precision'值 '-3.402E+38' 将被 Debezium 转换为二进制字符串 '/wAP3QCzc/wpiIGe8AAAAAA=' 并将作为字符串 ' 保存在 Redis 目标数据库中-340200000000000000000000000000000000000'
图像 string
从 0 到 2,147,483,647 字节的可变长度二进制数据。
字符串
值范围:-922,337,203,685,477,5808 到 922,337,203,685,477.5807
当 Debezium 配置参数decimal.handling.mode = 'precision'价值922337203685477.5807将被 Debezium 转换为二进制 'f/////////8=' 字符串,并将作为字符串 ' 保存在 Redis 目标数据库中922337203685477.5807'
nchar string - 固定大小的字符串数据,可以存储 Unicode 字符的 Unicode 数据类型
nvarchar string - 可变大小的字符串数据,可以存储 Unicode 字符的 Unicode 数据类型
数值的 字符串
值范围 - 10^38 +1 到 10^38
当 Debezium 配置参数time.precision.mode = 'connect'decimal.handling.mode = 'precision',则值1.00E +33将被 Debezium 转换为二进制字符串'SztMqFqGw1MAAAAAAAAAAA=='并将作为字符串保存在 Redis 目标数据库中'1000000000000000000000000000000000'
rowVersion string
数据类型,该数据类型公开数据库中自动生成的唯一二进制数。RowVersion 通常用作对 table 行进行版本标记的机制。
0x00000000000007D0
smalldatetime string
表示 epoch 之后的毫秒数,不包括时区信息。
'2018-06-20 15:13:16' 将被 Debezium 转换为1529507580000ms 的 S 的 S 请求,并将作为字符串 '1529507580000'.
秒数:16 将不包含在转换中,也不会保存在 Redis 目标数据库中
小钱 字符串
值范围:- 214,748.3648 到 214,748.3647
当 Debezium 配置参数decimal.handling.mode = 'string'价值-214748.3648将被 Debezium 转换为字符串'-214748.3648',并将作为 '-214748.3648'
空间几何类型 不支持
空间地理类型 不支持
桌子 不支持
发短信 可变长度 Unicode 数据
唯一标识符 字符串 06牛肉00-F859-406B-9A60-0A56AB81A97
源数据类型 JSON 的目标数据类型 JSON 示例
布尔 当值>0它将被 Debezium 转换为 true,并将作为 Redis 目标数据库保存为Truewhile when 值= 0它将被 Debezium 转换为 false,并将在 Redis 目标数据库中保存为False
日期时间2 number
表示自纪元以来的毫秒数,不包括时区
当 Debezium 配置参数time.precision.mode='connect'、值 '2018-06-20 15:13:16.945104' 将被 Debezium 转换为值 '1529507596945104' 中,并将作为数字保存在 Redis 目标数据库1529507596945.104
datetimeoffset 当 Debezium 配置参数decimal.handling.mode = 'precision'、datetimeoffset 数据类型值 '12-10-25 12:32:10 +01:00' 将转换为字符串 '2025-12-10T12:32:10+01:00'并将作为字符串保存在 Redis 目标数据库中1765366330000
十进制,浮点数,实数 数字/字符串 当 Debezium 配置参数decimal.handling.mode = 'precision'值 '-3.402E+38' 将被 Debezium 转换为二进制字符串 '/wAP3QCzc/wpiIGe8AAAAAA=' 并将作为数字保存在 Redis 目标数据库中-340200000000000000000000000000000000000
图像 字符串
number/string 取决于 decimal.handling.mode 的值 当 Debezium 配置参数decimal.handling.mode = 'precision'价值922337203685477.5807将被 Debezium 转换为二进制 'f/////////8=' 字符串,并将作为数字保存在 Redis 目标数据库中922337203685477.5807
nchar 字符串
nvarchar string - 可变大小的字符串数据,可以存储 Unicode 字符的 Unicode 数据类型
数值的 当 Debezium 配置参数time.precision.mode = 'connect'decimal.handling.mode = 'precision',则值1.00E +33将被 Debezium 转换为二进制字符串'SztMqFqGw1MAAAAAAAAAAA=='并将作为数字保存在 Redis 目标数据库中1000000000000000000000000000000000
rowVersion string
数据类型,该数据类型公开数据库中自动生成的唯一二进制数。RowVersion 通常用作对 table 行进行版本标记的机制。
0x00000000000007D0
smalldatetime number
表示 epoch 之后的毫秒数,不包括时区信息。
'2018-06-20 15:13:16' 将被 Debezium 转换为1529507580000ms 的 Epoch 值,并将作为数字保存在 Write-behind 中1529507580000.
秒数:16 将不包含在转换中,也不会保存在 Redis 目标数据库中
小钱 当 Debezium 配置参数decimal.handling.mode = 'string'价值-214748.3648将被 Debezium 转换为字符串'-214748.3648',并将作为 '-214748.3648'
空间几何类型 不支持
空间地理类型 不支持
桌子 不支持
发短信
唯一标识符 字符串 06牛肉00-F859-406B-9A60-0A56AB81A97

* 数据类型为“不支持”的字段将不会显示在 Target Hash 中。