Oracle CLOB 数据类型到 Redshift 数据类型

Oracle CLOB data type to Redshift data type

我们正在将 Oracle 表迁移到 redshift 表。我们发现很少有表具有 CLOB 数据类型。在 redshift 中,我们将 CLOB 转换为 Varchar(65535) 类型。在执行复制命令时,我们得到

The length of the data column investigation_process is longer than the length defined in the table. Table: 65000, Data: 90123.

我们需要使用哪种数据类型?请分享您的建议。

Redshift 并非设计用于存储 CLOB(或 BLOB)数据。大多数确实将 CLOB 与 table 内容分开存储的数据库,以免给所有查询增加过多数据的负担。 CLOB 引用存储在 table 内容中,并在结果生成时执行 CLOB 引用替换。

CLOB 应存储在 S3 中,对适当 CLOB(S3 密钥)的引用应存储在 Redshift table 中。问题是没有一个预先打包的工具来执行 CLOB 以使用 Redshift AFAIK 进行参考替换。您的解决方案将需要一些重组来为所有数据用户执行此替换操作。这是可行的,它只需要一个数据层来执行所需的替换。