Могу ли я использовать Snowflake в качестве реляционной базы данных? - PullRequest
0 голосов
/ 20 июня 2019

Одним из инструментов SaaS, с которым мы работаем, является использование базы данных MySQL в качестве основной БД. Помимо пользовательских данных, он также получает поток кликов и другую информацию.

Об этой БД:

  • Таблицы: 11
  • Строки в самой большой таблице: 7 000 000
  • Общий размер: 17GB
  • Ежедневно пишет: 50 000
  • Ежедневные чтения: 1000

Может ли Snowflake заменить эту базу данных MySQL и какого повышения производительности мы можем ожидать?

1 Ответ

1 голос
/ 20 июня 2019

Я бы рекомендовал избегать ориентированной на запись нормализованной реляционной базы данных для отчетов (даже если это схема типа снежинки) по следующим причинам.База данных выглядит более ориентированной на запись, и может происходить множество транзакций.

  1. База данных не предназначена для создания отчетов.Вам все равно нужно сделать много объединений, чтобы получить результат, иначе вам может потребоваться денормализация.

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

  3. Создание огромных отчетов по нормализованной базе данных может привести к дополнительной нагрузке на сервер и повлиять на производительность сервера.

Я бы предложил вамсоздать базу данных реплик с использованием репликации, ETL и т. д. и использовать ее для целей отчетности.

...