У меня есть база данных MySQL с большими таблицами (~4-20G) и сервер Tableau для аналитиков. Запросы с Tableau работают слишком медленно. Я хочу между ними поставить Spark SQL, чтобы из MySQL делать только SELECT, а вся обработка будет в Spark.
Есть ли в этом смысл? И если есть, хватит ли одного кластера Spark?
IMO Spark Cluster, состоящий из единственного узла, не дает никаких преимуществ кроме Spark API и сопутствующих библиотек: Spark SQL
, Spark ML
, etc.
Вся "прелесть" обработки данных в Spark Cluster
в возможности параллельной и распределенной обработки огромных массивов данных, которые не помещаются в память одного сервера. Разумеется существуют накладные расходы при работе со Spark. Я когда-то сравнивал скорость несложной обработки данных на одном узле Spark Cluster, используя Spark SQL
и Pandas
- на одном и том же железе. Pandas
оказался почти в 10 раз быстрее. Поэтому я рассматривал использование Spark только если у вас есть реальная необходимость параллельной и распределенной обработки данных и если у вас есть соответствующее железо - с 3+ узлами кластера.
PS большинство функций из Spark SQL
уже реализованы в MySQL
, поэтому вы можете попробовать сделать все на стороне MySQL
обычными запросами - это может сэкономить часть времени чтения и передачи данных.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Можно из такой строки: 548673++++++1028 809216 /RU/CARD2CARD ALFA_MOBILE>MOSCOW 3105
Слово следует рассматривать как последовательность, содержащую только буквы (все остальные символы не являются частью слово)Например: Вход: