2016-11-27 53 views
0

我有一個相對較大的SQLite表(500萬行,2GB),我試圖將其移至Google BigQuery。我在db中用於其他表格的簡單解決方案是使用類似SQLite Manager(Firefox擴展)來導出到CSV,但是這種方式失敗了,我想象的是嘗試嘗試時出現內存不足錯誤導出有問題的表格。我試圖想出最好的方法來處理這個問題,並且想出了以下幾點:將非常大的sqlite表導入BigQuery

  1. 寫一些手動編寫單個巨大的CSV文件。這似乎是一個壞主意,原因很多,但最重要的是,其中一個領域是文本數據,它將不可避免地與BQ的導入工具支持的任何分隔符混淆,而且我不確定BQ甚至可以支持單個CSV大
  2. 編寫一個腳本來手動將所有內容導出到一系列的CSV文件,比如每個〜100k行 - 主要的問題是這將需要導入50個文件
  3. 將所有內容寫入系列的JSON,並試圖找出一種方法來處理它,從那裏相同,如上
  4. 嘗試將其導入到MySQL,然後做一個mysqldump,顯然可以通過BQ讀取
  5. 使用Avro,這似乎是一樣#2除了它將是二進制的,所以當它不可避免地失敗時它將更難調試

我也有一些在本地ElasticSearch節點上的這些數據,但我找不到任何方式將其遷移到BQ。有沒有人有什麼建議?我在網上找到的大多數東西都試圖讓事情脫離BQ,而不是把東西放進去。

+0

編寫一段腳本,執行5行100行的示例,嘗試使用bigquery,CSV,JSON,(推薦)Avro,如您所願。 2GB不大,BigQuery的未壓縮限制是5TB。 – Pentium10

回答

1

(2)不是問題。 BQ每個導入作業最多可導入10k個文件。

另外,只要輸入可以分片(基於文本的格式不壓縮,CSV文件不用引用新行),BQ也可以導入非常大的CSV/JSON/AVRO文件。

有關更多信息,請參見https://cloud.google.com/bigquery/quota-policy#import