Проблемы с использованием ClickHouse - PullRequest
0 голосов
/ 05 апреля 2019

Мы обновляем нашу существующую систему, которая использует MYSQL DB для работы со следующими типами данных.

  • данные о транзакциях и заказах
  • информация о клиентах
  • информация о продуктах

Нам нужно запросить эти данные и получить статистические данные, а также отфильтровать, список фасетов и сегментов и KPI.

Мы попробовали ClickHouse, Druid, DGraph сделалинесколько тестов на примере данных для сравнения и проверки того, какая БД соответствует нашим потребностям.

Несколько вещей, которые мне понравились в Druid DB:

  • Druid Search Queries: в котором перечислены всесовпадает с измерениями (именами столбцов) и количеством / вхождением для одного и того же.Ссылка: http://druid.io/docs/latest/querying/searchquery.html
  • поддержка utf8mb4
  • Полнотекстовый поиск
  • Поиск без учета регистра

Мы обнаружили, что ClickHouse быстрее по сравнению с MYSQLи базы данных друидов.Но есть следующие проблемы:

  • Невозможно выполнить поисковые запросы, похожие на друиды (которые возвращают измерение и вхождения).Есть ли способ обойти это?
  • Поиск без учета регистра.Как мы справимся с этим?ClickHouse чувствителен к регистру, верно?
  • utf8mb4 поддержка?Как мы можем сохранить / сохранить специальные символы или несколько смайликов, которые не поддерживаются в utf8?У нас были похожие проблемы в MYSQL, и изменение сортировки на utf8mb4 решило эту проблему.Что мы делаем в ClickHouse для достижения этой цели?

Ваши предложения помогут нам преодолеть эти трудности и принять более правильное решение.

Заранее спасибо.

1 Ответ

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

Невозможно выполнить друидоподобные поисковые запросы (которые возвращают измерение и вхождения).Есть ли способ обойти это?

Эта функция работает примерно так:

SELECT interval, dim1, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim1
UNION ALL
SELECT interval, dim2, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim2
UNION ALL
...

Поиск без учета регистра.Как мы справимся с этим?ClickHouse чувствителен к регистру, верно?

Есть несколько вариантов, например, функция positionCaseInsensitiveUTF8(haystack, needle) или совпадение с регулярными выражениями: https://clickhouse.yandex/docs/en/query_language/functions/string_search_functions/#match-haystack-pattern

utf8mb4 поддержка?Как мы можем сохранить / сохранить специальные символы или несколько смайликов, которые не поддерживаются в utf8?

Строки в ClickHouse представляют собой произвольные последовательности байтов, поэтому вы можете хранить там все, что захотите, но вам, вероятно, следует проверить, соответствуют ли доступные функции вашему сценарию использования.

...