使用sqoop我可以创建托管表,但不能创建externale表。请告诉我从数据仓库卸载数据并将其加载到配置单元外部表中的最佳实践是什么。1.仓库里的表是分区的。有些是按日期分区的,有些是按状态分区的。请将您的想法或实践应用到生产环境中。
8ulbf1ek1#
sqoop不支持创建配置单元外部表。相反,您可以:使用sqoop codegen命令生成sql,用于创建与远程rdbms表匹配的配置单元内部表(请参阅http://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html#_literal_sqoop_codegen_literal)修改生成的sql以创建配置单元外部表在配置单元中执行修改后的sql运行sqoop import命令,加载到预先创建的配置单元外部表中
wwtsj6pe2#
第一步:从mysql导入数据到hive表。sqoop导入--连接jdbc:mysql用法://localhost/--用户名训练--密码训练--表--配置单元导入--配置单元表--m1--以','结尾的字段步骤2:在配置单元中,将表类型从托管更改为外部。
Alter table <Table-name> SET TBLPROPERTIES('EXTERNAL'='TRUE')
note:you can 直接导入到配置单元表或导入到配置单元后端。
bfnvny8b3#
我最好的建议是将数据sqoop到hdfs,并为原始操作和转换创建外部对象。最后将数据聚合到内部表。我相信这是以一种恰当的方式完成任务的最佳实践之一。希望这有帮助!!!请参阅以下链接: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/ 参考第一个链接后,第二个链接将澄清您的大部分问题。干杯!!
3条答案
按热度按时间8ulbf1ek1#
sqoop不支持创建配置单元外部表。相反,您可以:
使用sqoop codegen命令生成sql,用于创建与远程rdbms表匹配的配置单元内部表(请参阅http://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html#_literal_sqoop_codegen_literal)
修改生成的sql以创建配置单元外部表
在配置单元中执行修改后的sql
运行sqoop import命令,加载到预先创建的配置单元外部表中
wwtsj6pe2#
第一步:从mysql导入数据到hive表。
sqoop导入--连接jdbc:mysql用法://localhost/--用户名训练--密码训练--表--配置单元导入--配置单元表--m1--以','结尾的字段
步骤2:在配置单元中,将表类型从托管更改为外部。
note:you can 直接导入到配置单元表或导入到配置单元后端。
bfnvny8b3#
我最好的建议是将数据sqoop到hdfs,并为原始操作和转换创建外部对象。
最后将数据聚合到内部表。我相信这是以一种恰当的方式完成任务的最佳实践之一。希望这有帮助!!!请参阅以下链接:
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/ 参考第一个链接后,第二个链接将澄清您的大部分问题。
干杯!!