在将数据加载到Hive时遇到问题

时间:2016-02-02 11:24:26

标签: sql-server hadoop hive cloudera cloudera-cdh

我们正在通过Sqoop将数据从SQL Server加载到Hive。我们遇到的问题如下所述

一个。我们可以通过Sqoop在Hive中创建表模式,同时将SQL Server中的多个表与连接组合在一起吗?

我想创建与Sqoop命令参数

中指定的查询的连接输出相对应的模式

B中。 lastmodified模式下的Hive增量更新需要SQL Server表中的时间戳列。 Sqoop将使用该列将值与提供的时间戳进行比较。

当我在SQL Server中尝试timestamp数据类型时,Sqoop无法创建错误的Hive表

  

Hive不支持LastUpdated列的SQL类型。

LastUpdated在SQL Server中具有时间戳数据类型。 SQL Server时间戳未对齐将是SQL 92标准。日期时间数据类型也不起作用。为SQL Server Datetime列创建Hive字符串列。

可支持Sqoop增量功能的最后修改模式的其他替代方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

当您阅读sqoop文档时,您的答案都应该变得清晰。

一个。是的:第7.2.3章。自由格式查询导入@ sqoop docs

你可以在sqoop里面运行查询来进行初始摄取。

B中。是的:您可以合并数据以进行更新,另请参阅docs @ 13.2。语法

如果你想做额外的,更复杂的东西,你应该考虑只是摄取数据,raw。然后在hadoop内部应用逻辑。毕竟,它意味着处理数据。 Sqoop不支持UDF,所以你可能想看看Pig,Spark,SparkSQL。