1

Это, наверное, глупый вопрос, но я только начал заниматься интернетом в компании, и я должен выяснить, как перенести большое алгоритмическое приложение на основе C из MySQL в Cassandra (я совершенно новый для всего этого). Я искал, как я подойду к этому в течение дня, но я все еще немного неясен. Я вижу, что для работы в Кассандре данные должны быть денормализированы. Кроме того, есть несколько инструментов для переноса данных из MySQL в Cassandra, например Sqoop или Bulk Loader.Как перенести приложение в Кассандру?

Итак, мой вопрос: переместить это приложение в Cassandra, я должен изменить каждый оператор SQL и таблицу в Cassandra, возможно, используя C-драйвер Datastax? Или я просто добавляю что-то в приложение, которое записывает данные MySQL в пространство ключей в Кассандре, когда приложение работает, например, говорит here?

Подавляющее большинство ресурсов, которые я нашел, просто показывают, как переместить данные в Кассандру, в отличие от логики всего приложения. Кроме того, большинство ресурсов, которые я нашел, выглядят устаревшими - кажется, что, поскольку более новые версии Cassandra имеют приблизительно равные скорости чтения и записи, мое впечатление состоит в том, что нет полной необходимости полностью денормализовать данные.

FYI: текущие данные хранятся примерно в тридцати таблицах статистики, агрегированных из точек беспроводного доступа.

ответ

3

Вам понадобятся изменения в приложении. Код чтения/записи данных очень отличается между cassandra и mysql. Вы сможете получить много запросов в mysql, которые вы не сможете использовать в cassandra. Cassandra требует, чтобы данные были смоделированы таким образом, чтобы поддерживать эффективный запрос с использованием своего (по сравнению с SQL) ограниченного языка запросов CQL.

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

Вам необходимо смоделировать вашу модель данных cassandra в соответствии с запросами, которые использует ваше приложение (и, возможно, другие приложения). Затем вы можете создать схему cassandra и экспортировать/импортировать данные mysql. Для этого вы можете использовать такие инструменты, как Pentaho, или даже написать приложение миграции. Сколько данных сейчас в базе данных? Если это не так много, вы можете уйти с экспортом и импортом csv.

Ваше приложение нужно будет изменить. Измените приложение на чтение и запись в cassandra. Можете ли вы терпеть простоя? Если нет, рассмотрите подходы, указанные в ссылке, которую вы опубликовали.

Это не тривиальное обязательство. В зависимости от модели данных, находящейся в настоящее время в mysql, это может быть серьезным делом.

Удачи вам!

+0

Спасибо за ваш быстрый ответ! Нет данных, которые необходимо перенести - на данный момент само приложение вставляет симулированные данные в таблицы и запускает алгоритм в этих тестовых случаях. –

+0

Кроме того, насколько я знаю, в приложении нет никаких подключений. Запросы представляют собой довольно простые выражения, такие как «select type», width from ap_radios, где ((ap_mac = y) и (id = x)) ». –

+0

И, извините, что именно вы имеете в виду при простоях? Это не очень торопившийся проект - мне дали месяц, чтобы запланировать миграцию и начать ее. И для изменения реальных запросов в приложении, является ли драйвер Datastax C единственным способом? –

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