Хранение большого количества запрашиваемого JSON - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь найти решение для базы данных, способное на следующее.

  1. Хранить плоские, случайные структуры JSON, разделенные именем таблицы (например, random_json_table_1, random_json_table_2).
  2. Способен обрабатывать большое количество операций вставки (+ 10000 / сек).
  3. Возможность запрашивать случайные структуры json (SELECT * FROM random_json_table_1, ГДЕ JSON_SELECT ('data', '$ .city.busses') NOT NULL AND JSON_SELECT ('data', '$ .city.busStops', 'length' )> 5) например.
  4. Запросы SELECT должны быстро выполняться на гигабайтах данных.

Я посмотрел на Amazon Athena, и она выглядит многообещающе, но мне любопытно, есть ли какие-либо другие решения там.

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Вы можете рассмотреть BigQuery. Что касается 2), существует интерфейс BigQuery для потоковой передачи . И 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

0 голосов
/ 30 марта 2019

Такое впечатление, что управляемая база данных Google BigQuery может быть полезна для вас.Читая здесь мы, кажется, обнаруживаем, что существует мягкий предел в 100 000 строк в секунду и возможность вставлять 10 000 строк в одном запросе.Для выполнения запросов BigQuery объявляет себя способным обрабатывать таблицы размером с петабайт в допустимых пределах.

Вот ссылка на главную страницу для BigQuery:

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

...