我必须通过 Sqoop 将超过 4 亿行从 MySQL 表(具有复合主键)导入 PARTITIONED Hive 表 Hive。该表有两年的数据,列的出发日期从 20120605 到 20140605,一天有数千条记录。我需要根据出发日期对数据进行分区。
版本:
阿帕奇 Hadoop - 1.0.4
阿帕奇蜂巢 - 0.9.0
Apache Sqoop - sqoop-1.4.2.bin__hadoop-1.0.0
据我所知,有3种方法:
- MySQL -> Non-partitioned Hive table -> INSERT from Non-partitioned Hive table into Partitioned Hive table
- MySQL -> 分区 Hive 表
MySQL -> Non-partitioned Hive table -> ALTER Non-partitioned Hive table 添加 PARTITION
是我正在关注的当前痛苦的一个
我读到在 Hive 和 Sqoop 的更高版本(?)中添加了对此的支持,但找不到示例
语法要求将分区指定为键值对——在数百万条记录无法想到所有分区键值对的情况下是不可行的 3。
任何人都可以提供方法 2 和 3 的输入吗?