从MySql转储导入到配置单元

时间:2016-11-14 11:47:01

标签: mysql hive sqoop bigdata

将MySql转储导入Hive时遇到问题。

我使用sqoop连接器成功将数据从MySql导入Hive。但是,有更多数据转储要导入到Hive。首先恢复数据库是不可行的。由于转储大小为300G,因此需要3天才能恢复。此外,由于磁盘空间问题,我无法在MySql上恢复两个以上的文件。

因此,我希望将数据(位于MySql转储中)直接导入到配置单元中,而无需还原到MySql中。

MySql转储还有一个问题是有多个insert语句(大约10亿)。那么它会为每个插入创建多个文件吗?在那种情况下,如何合并它们?

1 个答案:

答案 0 :(得分:0)

您可以使用Hive提供的“load”命令加载本地目录中的数据。

示例:这会将文件fileName.csv中的数据加载到您的hive表tableName中。

php bin/console doctrine:generate:entities AppBundle:Event

如果您的数据存在于HDFS中。使用相同的加载命令而不使用本地选项。

示例:这里/ tmp / DataDirectory是一个HDFS目录,该目录中的所有文件都将加载到Hive中。

load data local inpath '/tmp/fileName.csv' overwrite into table tableName;

警告:由于Hive是读取模式,因此请确保在您加载的文件和Hive表中处理行分隔符和字段分隔符相同。