从 MySql 转储导入到配置单元

Posted

技术标签:

【中文标题】从 MySql 转储导入到配置单元【英文标题】:Import from MySql dump to hive 【发布时间】:2016-11-14 11:47:01 【问题描述】:

我在将 mysql 转储导入 Hive 时遇到问题。

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

因此,我希望将 MySql 转储中的数据直接导入配置单元而不恢复到 MySql。

MySql 转储的另一个问题是有多个插入语句(大约 10 亿条)。那么它会为每个插入创建多个文件吗?那么,如何合并呢?

【问题讨论】:

提供更多细节,如中的数据格式 我有一个 mysql 数据转储,我想直接将其导入配置单元(其底层的 HDFS)而不将其恢复到 MySql。 嗨@GauravKumar,如果你成功了,你能分享一下你遵循的过程吗? 【参考方案1】:

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

示例:这会将文件 fileName.csv 中存在的数据加载到您的配置单元表 tableName 中。

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

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

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

load data inpath '/tmp/DataDirectory/*' overwrite into table tableName;

注意:由于 Hive 是读取模式,请务必注意文件和要加载到的 Hive 表中的行分隔符和字段分隔符相同。

【讨论】:

以上是关于从 MySql 转储导入到配置单元的主要内容,如果未能解决你的问题,请参考以下文章

将查询结果从 mysql 导入现有 hive 表的问题

将 MySQL 转储导入 Google SQL - unique_checks=0 是不确定的

如何将 mysql 转储导入 SQL Server 数据库

如何从终端macbook转储mysql db

在 Dockerfile 中设置 MySQL 并导入转储

在windows中将转储文件导入mysql 5.1