2017-02-12 3 views
0

Я обрабатываю твиттер, сохраняя твиты в таблице в memsql. В таблице есть поля, такие как tweet_id, posted_time, body и т. Д.Дизайн таблицы MemSQL для облака слов

В таблице содержится около 5 миллионов твитов в день. всего миллиарда чириканья за весь период, хранящийся до сих пор

Таблица хранится в качестве хранилища столбцов, а tweet_id - как окорочный ключ, а post_time - столбец кластеров столбцов.

Он работает отлично для всех анализов в реальном времени до сих пор и возвращает ответы в подсечку, если вы запрашиваете один день. Чем шире ваша дата, тем медленнее запрос

Требование состоит в том, чтобы создать слово облако из поля тела твита. Мой вопрос: что это лучший способ сделать это? Мне нужен запрос, чтобы быть эффективными (занимает секунду не минуты) Имейте в виде следующего

  • соединение не эффективна для этого большого стола.
  • , взяв поле тела за несколько миллионов твитов и сломав его словам, а затем совокупным словам и придумать верхние неэффективно.

Я считаю, что потребуется отдельная таблица, какой может быть дизайн для этой таблицы? предложения, пожалуйста,

Наконец, мой MemSQL кластер имеет 5 узлов, в общей сложности 1 ТБ оперативной памяти и 192 ядра

ответ

0

Я не думаю, что MemSQL это лучший способ сделать это. Лучше всего проиндексировать его с помощью сервера/библиотеки поиска, например Apache Solr, или просто использовать Apache Lucene в качестве вашего бэкэнд. Таким образом, запросы, необходимые для облака слов, такие как «Дайте мне все подсчеты самых ранних n-слов, отсортированных по счету», вернутся через несколько секунд.

Смежные вопросы