从 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 转储导入到配置单元的主要内容,如果未能解决你的问题,请参考以下文章