我需要从几个不同的sql服务器导入数据,这些服务器具有相同的表、表结构甚至主键值。因此,为了唯一地标识从sqlserver(比如“s1”)接收的记录,我希望在配置单元表中有一个额外的列(比如“servername”)。我应该如何在我的sqoop自由形式查询中添加这个。
我只想传递一个硬编码的值和列列表,这样硬编码的列值就应该存储在配置单元中。完成后,我可以根据服务器数据动态更改此值。
sqoop import --connect "connDetails" --username "user" --password "pass" --query "select col1, col2, col3, 'S1' from table where \$CONDITIONS" --hive-import --hive-overwrite --hive-table stg.T1 --split-by col1 --as-textfile --target-dir T1 --hive-drop-import-delims
s1是这里的硬编码值。我认为在sql中,当您传递一个硬代码值时,它将作为查询结果返回。有没有什么办法?提前谢谢。
1条答案
按热度按时间oxiaedzo1#
解决方法:实际上它只需要硬编码值的别名。所以执行的sqoop命令是-