如何使用sqoop在Hive中创建外部表。需要建议

问题描述 投票:2回答:3

使用sqoop我可以创建托管表但不创建外部表。

请告诉我从数据仓库卸载数据并将其加载到Hive外部表中的最佳做法是什么。

1.仓库中的表格是分区的。有些是日期明智的分区,有些是明智的分区。

请将您的想法或做法用于生产环境。

hadoop hive sqoop
3个回答
4
投票

Sqoop不支持创建Hive外部表。相反,您可以:

  1. 使用Sqoop codegen命令生成用于创建与远程RDBMS表匹配的Hive内部表的SQL(请参阅http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_literal_sqoop_codegen_literal
  2. 修改生成的SQL以创建Hive外部表
  3. 在Hive中执行修改后的SQL
  4. 运行Sqoop import命令,加载到预先创建的Hive外部表中

3
投票

第1步:将数据从mysql导入到hive表。

sqoop import --connect jdbc:mysql:// localhost / --username training --password training --table --hive-import --hive-table -m 1 --fields-terminated-by','

步骤2:在配置单元中将表类型从Managed更改为External。

    Alter table <Table-name> SET TBLPROPERTIES('EXTERNAL'='TRUE')

注意:您可以直接导入到hive表中,也可以导入到hive的后端。


0
投票

我最好的建议是将您的数据SQOOP转换为HDFS,并为Raw操作和转换创建EXTERNAL。

最后将数据混合到内部表中。我相信这是以正确方式完成工作的最佳实践之一。希望这可以帮助!!!请参考以下链接:

  1. https://mapr.com/blog/what-kind-hive-table-best-your-data/在上面,如果你想直接跳到这一点 - > 2.2.1外部或内部
  2. https://hadoopsters.net/2016/07/15/hive-tables-internal-and-external-explained/在提到第一个链接之后,第二个链接将澄清您的大部分问题。

干杯!!

© www.soinside.com 2019 - 2024. All rights reserved.