【发布时间】:2013-01-18 20:15:58
【问题描述】:
我有一个包含超过一亿行的大表的数据库。我想导出这些数据(经过一些转换,比如将这个表与其他几个表连接,清理一些字段等)并将其存储到一个大文本文件中,以便以后使用 Hadoop 进行处理。
到目前为止,我尝试了两件事:
使用 Python,我使用 this subquery trick 按块(通常一次 10'000 条记录)浏览表,对每一行执行转换并直接写入文本文件。这个技巧有帮助,但是随着导出的进行,
LIMIT变得越来越慢。我无法用这个导出完整的表格。使用
mysql命令行工具,我尝试将CSV形式的查询结果直接输出到文本文件。由于体积的原因,它耗尽了内存并崩溃了。
我目前正在研究Sqoop作为将数据直接导入HDFS的工具,但我想知道其他人如何处理如此大规模的导出?
【问题讨论】:
标签: python mysql database hadoop export