将没有数字 ID 的非常大的表从 MySQL 加载到 S3

Posted

技术标签:

【中文标题】将没有数字 ID 的非常大的表从 MySQL 加载到 S3【英文标题】:Loading a very large table without a numeric ID from MySQL to S3 【发布时间】:2016-09-30 09:37:44 【问题描述】:

我正在尝试将 mysql 中的一个大表(500GB 大小,大约 200M 行)泵入(使用 Sqoop)到 S3。但是,此表没有数字键列。

它有一个包含 3 列的组合主键。我观察到 sqoop 无法均匀地对数据集进行分块,因为 ID 在最小值和最大值之间分布不均匀。 sqoop 中的 Rage 查询效果不佳,因为该列未编入索引。

有没有更好的方法来使用 sqoop 或任何其他技术来做到这一点?

附:我正在尝试将数据输出为 AVRO 文件

【问题讨论】:

一个 500GB 的表 :o (我很确定即使是整个 Stack Exchange database 也没有那么大)。是什么让它这么大? 它的交易数据:) 【参考方案1】:

如果您的表具有多列键,则需要使用 --split-by 参数使用不同的列手动指定范围。 Sqoop 不支持多列。

【讨论】:

又一个第三方软件挡路的案例?

以上是关于将没有数字 ID 的非常大的表从 MySQL 加载到 S3的主要内容,如果未能解决你的问题,请参考以下文章

一个非常大的表的 SQL 分区

如何将表从mysql数据库导出到excel?

Laravel:通过另一个表从具有关联表的表中检索记录

jquery - 从一个非常大的表中删除所有行的最快方法

将 HIVE 中的表从一个数据库复制到另一个数据库

如何使用python有效地填充给定一个非常大的表的矩阵?