如何使用 Hive
将表格从sql server
导入Sqoop
并处理是否添加了任何新列以及如何将新列数据加载到hive
而不会丢失数据?
答案 0 :(得分:0)
使用此命令将数据直接导入配置单元:
sqoop import --connect "jdbc:sqlserver://11.11.111.11;databaseName=dswFICO" \ --username sqoop\ --password sqoop \ --driver com.microsoft.sqlserver.jdbc.SQLServerDriver \ --table KNA1 \ --split-by rowkey --hive-import -m 1
如果您不想在加载时丢失源数据副本,那么最好的方法是在现有的hdfs目录上创建外部表,或者您也可以复制源目录并创建外部配置单元应该指向新目录位置的表。
答案 1 :(得分:0)
您可以从sqoop import实现外部表,在那里您基本上将数据放入hdfs中的文件中,并且您必须在表的顶部构建一个外部表。
简单的sqoop导入示例,它将获取数据到hdfs但与hive无关。
$ sqoop import \
--connect jdbc:mysql://localhost/userdb \
--username root \
--table emp_add \
--m 1 \
--target-dir /queryresult
在/ queryresult路径中有数据后,只需在该位置的顶部构建一个外部表。