我通过ruby scipt从PostgreSQL中清除日志数据并存储到GoogleCloudStorage中。 每个文件有10000个用户数据,文件总数超过100000.Belows是文件的一部分。
我将每个文件下载到本地计算机并将gzip过滤为JSON for BigQuery,如
jq -c ".[]" ~/Downloads/1-10000 > ~/Downloads/1-10000.json
并且bq load --source_format=NEWLINE_DELIMITED_JSON userdata.user_logs_1-10000 gs://user-logs/1-10000 schema.json
用手工制作BigQuery.It成功,但这不是聪明的方式,我不能重复这一点。
将大量gzip文件解析为json并立即加载到BigQuery中的最佳方法是什么。
我对所有建议持开放态度。谢谢。
答案 0 :(得分:1)
我意识到有3个步骤。 (如果我错了,请告诉我。)
您可以尝试yajl-ruby gem来完成前两个步骤。
require 'uri'
require 'yajl/gzip'
require 'yajl/deflate'
require 'yajl/http_stream'
url = URI.parse("http://example.com/foo.json")
results = Yajl::HttpStream.get(url)
并查看BigBroda和BigQuery。我之前从未使用过Google BigQuery,我不知道哪一个有效。你必须自己尝试一下。
这是一个例子:
bq = BigQuery::Client.new(opts)
bq.insert('table_name', results)
如果使用多线程或多处理,那将会很有帮助,因为你有大量的文件。