我有一个包含超过一亿行的大表的数据库。我想导出这些数据(经过一些转换,比如将这个表与其他几个表连接起来,清理一些字段等)并将其存储在一个大文本文件中,以供以后使用 Hadoop 处理。
到目前为止,我尝试了两件事:
使用 Python,我使用这个子查询技巧按块(通常一次 10'000 条记录)浏览表,对每一行执行转换并直接写入文本文件。这个技巧有帮助,但
LIMIT
随着出口的进行,它变得越来越慢。我无法用这个导出完整的表。使用
mysql
命令行工具,我尝试将查询结果CSV
直接输出到文本文件中。由于大小,它耗尽了内存并崩溃了。
我目前正在研究Sqoop作为将数据直接导入的工具HDFS
,但我想知道其他人如何处理如此大规模的导出?