存储大量可查询的JSON

时间:2019-03-30 15:06:31

标签: json database amazon-web-services google-cloud-platform nosql

我正在尝试找到一种能够满足以下要求的数据库解决方案。

  1. 存储用表名分隔的平面,随机,JSON结构(例如,random_json_table_1,random_json_table_2)。
  2. 能够处理大量插入操作(+ 10000 /秒)。
  3. 能够查询随机json结构(SELECT * FROM random_json_table_1 WHERE JSON_SELECT('​​data','$ .city.busses')NOT NULL AND JSON_SELECT('​​data','$ .city.busStops','length' )> 5)。
  4. SELECT查询必须在千兆字节的数据上快速运行。

我看了看Amazon Athena,它看起来很有希望,但是我很好奇是否还有其他解决方案。

2 个答案:

答案 0 :(得分:1)

您可以考虑使用BigQuery。 关于2),有BigQuery streaming界面。 还有4),您可以使用BigQuery公开数据(例如流行的BitCoin交易表)来了解BigQuery的运行速度。

下面是使用BigQuery standardSQL的示例查询,显示了如何过滤存储在JSON字符串中的数据。

#standardSQL
SELECT JSON_EXTRACT(json_text, '$') AS student
FROM UNNEST([
  '{"age" : 1, "class" : {"students" : [{"name" : "Jane"}]}}',
  '{"age" : 2, "class" : {"students" : []}}',
  '{"age" : 10,"class" : {"students" : [{"name" : "John"}, {"name": "Jamie"}]}}'
  ]) AS json_text
WHERE CAST(JSON_EXTRACT_SCALAR(json_text, '$.age') AS INT64) > 5;

enter image description here

答案 1 :(得分:0)

感觉Google的BigQuery托管数据库可能对您有价值。阅读here似乎发现每秒有100,000行的软限制,并且每个请求可以插入10,000行。为了执行查询,BigQuery宣传自己能够处理可接受范围内的PB级表。

这是BigQuery主页的链接:

https://cloud.google.com/bigquery/