繁体   English   中英

使用SQOOP从RDBMS导入数据

[英]Importing data from RDBMS using SQOOP

我正在尝试将数据从SQL Server数据库导入到Hive。 基本上我将整个数据库(某些表除外)导入到Hive中。 在这里我有一些问题,我无法从任何地方得到答案。

  1. 我们可以将“ --hive-import”与import-all-tables和--exclude-tables一起使用吗? 如果没有,将所有表加载到hfds中后,如何使用create external table选项为所有表构建元数据?
  2. 我们能否在sqoop import命令中的任何位置指定配置单元数据库名称。

谢谢。

关于你的问题。

  1. 否。如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

要从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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM