【发布时间】:2016-05-04 16:34:43
【问题描述】:
堆栈:使用 Ambari 2.1 安装 HDP-2.3.2.0-2950 我正在遵循的步骤:
- 使用 Sqoop 将 SQL Server 表加载到 HDFS 上
- 在 Hive 中创建 EXTERNAL 表
在执行 sqoop 导入命令时,我没有使用任何与 charset/unicode/utf-8 相关的东西,并且导入成功
在创建 Hive 外部表时,我想知道应该为原始 sql server 表中的 nvarchar 列选择什么数据类型,现在我担心即使在 Sqoop 中导入时也需要解决这个问题。
- 在 Sqoop 导入中找不到相关的 charset/nvarchar 等选项
- 在 Hive 中,是否可以盲目使用 varchar/string 代替 nvarchar
【问题讨论】:
-
Hadoop 和 Hive 原生使用 UTF-8,因此他们不需要关心遗留字符集的遗留问题。如果 SQL Server 中所有列的字符集定义都正常,并且 Microsoft JDBC 驱动程序完成了将源字符集转换为 Java 客户端字符集的工作,那么您就完成了。
-
我继续使用 varchar Hive 数据类型而不是 String,我希望这不会导致任何问题。 Sqoop 导入没有给出任何错误。
-
在 Hive 中,VARCHAR ==(STRING + 检查写入实际长度是否符合最大长度)所以差异是表面的。
标签: hadoop character-encoding hive sqoop nvarchar