跳转至

处理原生数据类型

处理原生数据类型

下图显示了受支持的本机数据类型列表以及 SynchDB 如何根据其性质(或类别)将它们分组在一起。例如,数字组包含所有本质上是数字的整数或浮点数据类型。如果数据包含非数字字符,它们将给出错误。同样,不同的数据类型组需要特定的数据格式才能应用。

img

现在 DML 转换器知道如何在 PostgreSQL 端为这些受支持的本机数据类型生成数据,然后它会查看 DBZ 元数据以了解源数据的表示方式。这是必要的,因为 Debezium 引擎可能会对数据进行编码以打包更多需要在处理数据之前解码的信息,或者使用结构来表示复杂的数据类型,如几何图形。如果不知道 Debezium 如何表示数据,数据处理可能会产生不理想的结果,导致 PostgreSQL 在应用期间出错。以下是 Debezium 可以表示有效负载数据的格式类型列表:

img

有了这两条信息,DML 转换器就知道输入是什么样子,输出应该是什么样子。它将从其函数矩阵中选择最佳处理程序来处理数据。例如,如果目标类型为“FLOAT4”,源数据类型格式为“DBZTYPE_BYTES”,则将选择函数“handle_base64_to_numeric()”来处理数据。所选函数负责解码二进制输入并将其计算为数字。