将非常大的sqlite表导入BigQuery

时间:2016-11-27 15:45:14

标签: sqlite google-bigquery

我有一个相对较大的SQLite表(500万行,2GB),我正试图转移到Google BigQuery。我用于数据库中其他表的简单解决方案是使用像SQLite Manager(Firefox扩展)这样的东西导出到CSV,但这失败了我想象的是在尝试时出现内存不足错误导出有问题的表。我正在尝试考虑解决这个问题的最佳方法,并提出以下建议:

  1. 写一些会手动编写单个巨大CSV的内容。这似乎是一个糟糕的想法,原因很多,但最重要的是其中一个领域是文本数据,这将不可避免地与BQ的导入工具支持的任何分隔符搞砸了,我不确定BQ是否可以支持单个CSV
  2. 编写脚本以手动将所有内容导出为一系列CSV,例如每行约100k行 - 主要问题是这将需要导入50个文件
  3. 将所有内容写入一系列JSON并尝试找出一种方法来处理它,与上面相同
  4. 尝试将其导入MySQL,然后执行一个显然可以被BQ读取的mysqldump
  5. 使用Avro,它看起来和#2一样,除非它是二进制的,所以当它不可避免地失败时调试会更难
  6. 我在本地ElasticSearch节点上也有一些这样的数据,但我找不到任何方法将其迁移到BQ。有没有人有什么建议?我在网上发现的大部分内容都是试图从BQ中取出东西,而不是把东西放进去。

1 个答案:

答案 0 :(得分:1)

(2)不是问题。 BQ每个导入作业最多可导入10k个文件。

此外,BQ还可以导入非常大的CSV / JSON / AVRO文件,只要输入可以分片(基于文本的格式不压缩,CSV文件没有引用的新行)。

有关详情,请参阅https://cloud.google.com/bigquery/quota-policy#import