Hive 何时使用Sqoop--创建配置单元表

Hive 何时使用Sqoop--创建配置单元表,hive,sqoop,Hive,Sqoop,有人能分辨出创建配置单元表和配置单元导入方法之间的区别吗?两者都将创建一个配置单元表,但每个配置单元表的意义是什么?配置单元导入命令: 配置单元导入命令会自动填充配置单元元存储中填充表的元数据。如果配置单元中的表尚不存在,则使用Sqoop 只需根据为表或查询获取的元数据创建它。如果表已经存在,Sqoop将把数据导入到现有表中。如果要创建新的配置单元表,Sqoop将把源表中每列的数据类型转换为与配置单元兼容的类型。 创建配置单元表命令: Sqoop可以基于现有关系数据源中的表生成配置单元表(使用c

有人能分辨出
创建配置单元表
配置单元导入
方法之间的区别吗?两者都将创建一个配置单元表,但每个配置单元表的意义是什么?

配置单元导入命令:
配置单元导入
命令会自动填充配置单元元存储中填充表的元数据。如果配置单元中的表尚不存在,则使用Sqoop 只需根据为表或查询获取的元数据创建它。如果表已经存在,Sqoop将把数据导入到现有表中。如果要创建新的配置单元表,Sqoop将把源表中每列的数据类型转换为与配置单元兼容的类型。
创建配置单元表命令:
Sqoop可以基于现有关系数据源中的表生成配置单元表(使用
createhivetable
命令)。如果已设置,则如果目标配置单元表存在,则作业将失败。默认情况下,此属性为false。

使用
createhivetable
命令涉及三个步骤:将数据导入HDFS,创建hivetable,然后将HDFS数据加载到hive。使用
hive import
可以将此过程缩短为一个步骤

配置单元导入过程中
,Sqoop将首先将正常的HDFS导入到临时位置。成功导入后,Sqoop生成两个查询:一个用于创建表,另一个用于从临时位置加载数据。您可以使用
--target dir
--warehouse dir
参数指定任何临时位置

在下面为上述说明添加了一个示例

使用创建配置单元表命令:
包括三个步骤:

  • 将数据从RDBMS导入HDFS

    sqoop导入--连接jdbc:mysql://localhost:3306/hadoopexample --表1员工——按empid划分——m 1

  • 使用
    创建配置单元表
    命令创建配置单元表

    sqoop创建配置单元表--连接jdbc:mysql://localhost:3306/hadoopexample --表employees——以“,”结尾的字段

  • 将数据加载到配置单元

    hive>将路径“employees”中的数据加载到表employees中;
    将数据加载到表default.employees
    表default.employees统计:[numFiles=1,totalSize=70]
    好啊
    所用时间:2.269秒
    配置单元>从员工中选择*;
    好啊
    1001 emp1 101
    1002 emp2 102
    1003 emp3 101
    1004 emp4 101
    1005 emp5 103
    所用时间:0.334秒,获取:5行

  • 使用配置单元导入命令:


    sqoop导入--连接jdbc:mysql://localhost:3306/hadoopexample --表departments--按deptid拆分-m1--配置单元导入

    区别在于创建配置单元表将基于数据库中的源表在配置单元中创建表,但不会传输任何数据。命令“import--hive import”将在配置单元中创建表并从源表导入数据。

    我认为此“从用户指南中复制和粘贴”并没有特别的帮助。但当我多次尝试使用此命令时,我没有得到类似表已经存在的错误..这是我尝试的命令。。sqoop创建配置单元表--连接jdbc:mysql://localhost:3306/TestDB -用户名根-密码根-表tb2。。你能解释一下“创建配置单元表命令包含三个步骤”是什么意思吗?你能给我一个这方面的命令示例吗??再次感谢:)请告诉我以下两个命令sqoop import--connect jdbc之间的区别:mysql://localhost:3306/db1 -username root-password password-table name-配置单元表tableName-创建配置单元表-配置单元导入这是创建内部表还是外部表?