将非常大的sqlite表导入BigQuery

将非常大的sqlite表导入BigQuery,sqlite,google-bigquery,Sqlite,Google Bigquery,我有一个相对较大的SQLite表(500万行,2GB),我正试图将其移动到Google BigQuery。我在db中的其他表中使用的简单解决方案是使用类似SQLite Manager(Firefox扩展)的东西导出到CSV,但这失败了,我认为在导出相关表时会出现内存不足错误。我正试图找到解决这个问题的最佳方法,并得出以下结论: 写一些可以手动编写单个巨大CSV的东西。出于许多原因,这似乎是个坏主意,但重要的是其中一个字段是文本数据,这将不可避免地与BQ的导入工具支持的任何分隔符发生冲突,我不确定

我有一个相对较大的SQLite表(500万行,2GB),我正试图将其移动到Google BigQuery。我在db中的其他表中使用的简单解决方案是使用类似SQLite Manager(Firefox扩展)的东西导出到CSV,但这失败了,我认为在导出相关表时会出现内存不足错误。我正试图找到解决这个问题的最佳方法,并得出以下结论:

  • 写一些可以手动编写单个巨大CSV的东西。出于许多原因,这似乎是个坏主意,但重要的是其中一个字段是文本数据,这将不可避免地与BQ的导入工具支持的任何分隔符发生冲突,我不确定BQ是否能够支持这么大的单个CSV
  • 编写一个脚本,手动将所有内容导出到一系列CSV中,例如每个CSV约10万行或其他内容——主要问题是,这将需要导入50个文件
  • 将所有内容写入一系列JSON中,并尝试从中找出处理它的方法,如上所述
  • 尝试将其导入MySQL,然后执行mysqldump,显然BQ可以读取它
  • 使用Avro,它看起来和#2一样,只是它将是二进制的,所以当不可避免地失败时,调试会更加困难
  • 我在本地ElasticSearch节点上也有一些数据,但我也找不到任何方法将其迁移到BQ。有人有什么建议吗?我在网上找到的大部分东西都是试图从BQ中获取信息,而不是将信息放入BQ中

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

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

    有关详细信息,请参阅。

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

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


    有关更多信息,请参阅。

    编写一个脚本,执行5行然后100行的示例,并根据需要使用bigquery、CSV、JSON(推荐)Avro。2GB不是很大,BigQuery上的未压缩限制是5TB。编写一个脚本,执行5行然后100行的示例,然后尝试使用BigQuery,CSV、JSON,(推荐)Avro,如您所愿。2GB不是很大,BigQuery的未压缩限制是5TB。