Sqoop 与 TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 的兼容性

Sqoop compatibility with TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT

对于我的一个项目,我想使用 sqoop 将多个表从 MySQL 数据库传输到配置单元中。因为我有几个使用 MEDIUMTEXT 数据类型的列,所以我想检查与有经验的人的兼容性,以防止突然出现意外。

取自最新的Sqoop userguide (1.4.6),在直接模式下不兼容 BLOB、CLOB 或 LONGVARBINARY 列。

鉴于没有提到与 "TEXT" 数据类型不兼容,我可以从 MySQL 导入它们而不会出现问题吗?

在MySQL中,TEXT与CLOB相同。用户指南提到的 CLOB 限制适用于 TEXT 类型。

与典型的数据类型不同,CLOB 和 TEXT 不需要将数据内联存储到记录中,而是可以将内容存储在单独的文件中,并且记录中会有指针。这就是为什么直接路径不适用于大多数数据库中的 CLOB/TEXT、BLOB 等特殊类型。

我终于开始为我的项目设置我的 hadoop 集群了。我将 hadoop 2.6.3 与 hive 1.2.1 和 sqoop 1.4.6 一起使用。 事实证明,使用 Sqoop 将 TEXT 数据类型从 MySQL 导入 Hive 没有问题。您甚至可以提供使用 mysqldump 工具的“--direct”参数来加快传输速度。在我的项目中,我必须导入多个表,每个表包含 2 个 MEDIUMTEXT 列。每个表只有大约 2 GB,所以不是那么大。

我希望这对与我处于相同情况的人有所帮助。