我正在尝试将数据从sql server数据库导入配置单元。基本上,我将整个数据库(除了一些表)导入hive。在这里我有一些问题,我无法从任何地方得到答案。我们可以将“-hive import”与import all tables和--exclude tables一起使用吗?如果没有,那么在将所有表加载到hfds之后,如何使用createexternaltable选项为所有表构建元数据?我们可以在sqoop import命令的任何地方指定配置单元数据库名称吗?谢谢。
iqxoj9l91#
要将数据从rdbms导入到外部配置单元表,您需要遵循以下步骤1) 创建外部配置单元表(必须创建所有表)。2) 使用sqoop导入数据(这可以使用shell脚本完成)准备一个具有dbname.tablename列表的输入文件。shell脚本将此文件作为输入,逐行迭代,并为每行执行sqoop语句。
while read line; do DBNAME=`echo $line | cut -d'.' -f1` tableName=`echo $line | cut -d'.' -f2` sqoop import -Dmapreduce.job.queuename=$QUEUE_NAME --connect '$JDBC_URL;databaseName=$DBNAME;username=$USERNAME;password=$PASSWORD' --table $tableName --target-dir $HIVE_EXTERNAL_TABLE_PATH/$tableName --fields-terminated-by '\001' -m 1 done<inputFile
dwthyt8l2#
关于你的问题。不需要。正如apache文档中提到的:“--exclude tables参数仅用于+sqoop import all tables”。请参阅以下来自apache的文档(搜索报价)。https://sqoop.apache.org/docs/1.4.4/sqoopuserguide.html#_syntax.2.是的。下面是一个例子。
import-all-tables --connect ${connectString} --username ${username} -- password ${password} --hive-home /opt/hive --hive-database ${database} -- verbose --hive-import --hive-drop-import-delims -m 1
2条答案
按热度按时间iqxoj9l91#
要将数据从rdbms导入到外部配置单元表,您需要遵循以下步骤
1) 创建外部配置单元表(必须创建所有表)。2) 使用sqoop导入数据(这可以使用shell脚本完成)
准备一个具有dbname.tablename列表的输入文件。shell脚本将此文件作为输入,逐行迭代,并为每行执行sqoop语句。
dwthyt8l2#
关于你的问题。
不需要。正如apache文档中提到的:“--exclude tables参数仅用于+sqoop import all tables”。请参阅以下来自apache的文档(搜索报价)。https://sqoop.apache.org/docs/1.4.4/sqoopuserguide.html#_syntax.
2.是的。下面是一个例子。