使用sqoop我可以创建托管表,但不能创建外部表。
请告诉我从数据仓库卸载数据并将其加载到Hive外部表中的最佳做法是什么。
1.仓库中的表格已分区。有些是日期明智的分区,有些是明智的分区。
请将您的想法或做法用于生产环境。
答案 0 :(得分:3)
答案 1 :(得分:3)
步骤1:将数据从mysql导入到hive表。
sqoop导入 --connect jdbc:mysql:// localhost / - 用户名培训 - 密码培训 --table --hive-import --hive-table -m 1 --fields-terminated-by','
步骤2:在配置单元中将表类型从Managed更改为External。
Alter table <Table-name> SET TBLPROPERTIES('EXTERNAL'='TRUE')
注意:您可以直接导入hive表,也可以导入hive的后端。
答案 2 :(得分:0)
我最好的建议是将数据SQOOP到HDFS,并为原始操作和转换创建EXTERNAL。
最后将数据混搭到内部表中。我相信这是正确完成工作的最佳实践之一。 希望这可以帮助!!! 请参阅以下链接:
https://mapr.com/blog/what-kind-hive-table-best-your-data/ 在上面,如果要直接跳到-> 2.2.1外部或内部
https://hadoopsters.net/2016/07/15/hive-tables-internal-and-external-explained/ 在参考第一个链接之后,第二个将阐明您的大多数问题。
干杯!