Apache Cassandra vs HBase: что и когда выбирать для NoSQL в Big Data

Big Data, Большие данные, архитектура, обработка данных, NoSQL, SQL, Cassandra, HBase, Hadoop, IoT, Internet of Things, IIoT, интернет вещей, предиктивная аналитика

Рассмотрев ключевые сходства и различия Cassandra и HBase, сегодня мы поговорим, в каких случаях стоит выбирать ту или иную нереляционную СУБД для обработки больших данных (Big Data) в NoSQL-хранилище. Где используются NoSQL-СУБД в Big Data Прежде всего отметим основные области применения рассматриваемых нереляционных СУБД. Проанализировав наиболее известные примеры использования (use cases) Apache HBase и Кассандры, можно сделать вывод, что обе системы широко применяются для обработки временных рядов в следующих направлениях Big Data: показания smart-датчиков в IoT/IIoT; сбор и аналитика событий пользовательского поведения (действия, счетчики веб-сайтов и т.д.), в том числе для построения рекомендательных систем, о чем мы рассказывали здесь на примере стримингового сервиса Spotify; финансовые системы (биржевая аналитика, обнаружение мошенничества); агрегация данных из систем обмена сообщениями (чаты, мессенджеры, электронная почта, Далее …

Как Apache Cassandra, Kafka, Storm и Hadoop формируют рекомендации пользователям Spotify

Big Data, Большие данные, архитектура, обработка данных, NoSQL, SQL, Cassandra, HBase, машинное обучение, Machine Learning, Spark, Kafka, предиктивная аналитика, Hadoop

Продолжая разговор про примеры практического использования Apache Cassandra в реальных Big Data проектах, сегодня мы расскажем вам о рекомендательной системе стримингового сервиса Spotify на базе этой нереляционной СУБД в сочетании с другими технологиями больших данных: Kafka, Storm, Crunch и HDFS. Рекомендательная система Spotify: зачем она нужна и что должна делать Начнем с описания самого сервиса: Spotify – это интернет-ресурс потокового аудио (стриминговый), позволяющий легально и бесплатно прослушивать более 50 миллионов музыкальных композиций, аудиокниг и подкастов, в режиме онлайн, т.е. не загружая их на локальное устройство. Этот сервис доступен в США, Европе, Австралии и Новой Зеландии, а также в некоторых странах Азии и Африки. В общем случае доля сервиса составляет более 36 % мирового аудиостриминга, при этом большая часть (70%) прослушиваний Далее …

10 примеров применения Apache Cassandra в 5 направлениях Big Data

Big Data, Большие данные, архитектура, обработка данных, NoSQL, SQL, Cassandra, HBase, Internet of Things, IoT, IIoT, интернет вещей, машинное обучение, Machine Learning, Spark

Благодаря быстроте, надежности и другим достоинствам Apache Cassandra, эта распределенная NoSQL-СУБД широко применяется во многих Big Data проектах по всему миру. В этой статье мы собрали для вас несколько интересных примеров реального использования Кассандры в 5 ключевых направлениях современного ИТ. Где используется Apache Cassandra: 5 главных приложений c примерами Промышленные решения на базе Cassandra развёрнуты в Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Twitter и множестве других компаний, работающих с большими данными [1]. Например, Expedia, крупная туристическая компания США, с помощью Кассандры хранит миллиарды постоянно обновляемых цен из 140 000 отелей. Apple имеет более 100 000 узлов Cassandra в production, что подтверждает отличную масштабируемость этой СУБД [2]. Другая data-driven организация, международная компания таксо-перевозок Uber использует Кассандру в нескольких датацентрах, чтобы обеспечить Далее …

4 этапа SQL-оптимизации в Big Data: насколько эффективен Catalyst в Apache Spark

Big Data, Большие данные, архитектура, Spark, SQL

Завершая тему SQL-оптимизации в Big Data на примере Apache Spark, сегодня мы подробнее расскажем, какие действия выполняются на каждом этапе преобразования дерева запросов в исполняемый код. А рассмотрим, за счет чего так эффективна автоматическая кодогенерация в Catalyst. Читайте в нашей статье про планы выполнения запросов, квазиквоты Scala и операции с абстрактными синтаксическими деревьями. Как Catalyst преобразует SQL-запросы в исполняемый код Весь процесс оптимизации SQL-запросов в рамках Catalyst состоит из 4-х этапов [1]: анализ, когда вычисляются отношения из абстрактного синтаксического дерева, возвращаемого синтаксическим анализатором SQL, либо из объекта DataFrame, созданного с использованием API. логическая оптимизация, когда типовые правила применяются к логическому плану: свертка (constant folding), предикатное сжатие (predicate pushdown), сокращение проекций (projection pruning) и другие правила. Catalyst позволяет добавлять свои правила Далее …

Как работает оптимизация SQL-запросов в Apache Spark: деревья запросов в Catalyst optimizer

дерево запросов, Big Data, Catalyst, Большие данные, архитектура, Spark, SQL

Продолжая разговор про SQL-оптимизацию в Apache Spark, сегодня мы рассмотрим, что такое дерево запросов и как оптимизатор Catalyst преобразует его в исполняемый байт-код при аналитической обработке Big Data в рамках Спарк. Деревья структурированных запросов и правила управления ими в Apache Spark Отметим, что деревья запросов отличаются от алгебраических деревьев операций тем, что дерево запроса позволяет сохранить всю декларативность языка SQL. Дерево запроса превращается в дерево операций после физической оптимизации [1]. Дерево является основным типом данных в Catalyst. Дерево содержит объект узла, который может иметь один или нескольких дочерних элементов. Новые узлы определяются как подклассы класса TreeNode. Эти объекты неизменны по своей природе. Объектами можно управлять с помощью функционального преобразования. В качестве примера рассмотрим дерево из 3 классов узлов [2]: Literal(value: Int) – Далее …

Что такое оптимизация SQL-запросов в Apache Spark: разбираемся с Catalyst optimizer

Big Data, Большие данные, архитектура, Spark, SQL, SQL-оптимизация, Apache Spark, Catalyst

Мы уже немного рассказывали об SQL-оптимизации в Apache Spark. Продолжая эту тему, сегодня рассмотрим подробнее, что такое Catalyst – встроенный оптимизатор структурированных запросов в Spark SQL, а также поговорим про базовые понятия SQL-оптимизации. Читайте в нашей статье о логической и физической оптимизации, плане выполнения запросов и зачем эти концепции нужны при аналитической обработке Big Data в рамках фреймворка Спарк. Как работает SQL-оптимизация и зачем она нужна: немного теории Благодаря наличию модуля SQL, Apache Spark позволяет группировать, фильтровать и преобразовывать большие данные с помощью структурированных запросов. Однако, в отличие от реляционных СУБД, Apache Spark работает с данными различных форматов и структур, которые не являются типовой таблицей: RDD (распределенная коллекция данных), DataSet и DataFrame. Тем не менее, некоторые аспекты классической теории баз Далее …

Что лучше: RDD, DataFrame или DataSet и почему – выбор структуры данных Apache Spark

RDD, DataFrame, DataSet, Big Data, Большие данные, архитектура, Spark, SQL

Завершая сравнение структур данных Apache Spark, сегодня мы рассмотрим, в каких случаях разработчику Big Data стоит выбирать датафрейм (DataFrame), датасет (DataSet) или RDD и почему. Также мы приведем практический примеры и сценарии использования (use cases) этих программных абстракций, важных при разработке систем и сервисов по интерактивной аналитике больших данных с помощью Spark SQL. Кэширование разных структур данных Apache Spark Прежде чем перейти к обоснованию выбора той или иной структуры данных Apache Spark, рассмотрим, как выполняется их кэширование, т.к. это влияет на процесс их использования. Мы уже отмечали, что из-за особенностей сериализации распределенные коллекции данных (RDD) обрабатываются медленнее табличных наборов данных (DataFrame и DataSet). Поэтому для ускорения работы с RDD имеет смысл кэшировать данные в следующих случаях [1]: итеративные циклы, которые Далее …

RDD, DataFrame и DataSet с точки зрения программиста Apache Spark: в чем разница

Big Data, RDD, DataFrame, DataSet, Большие данные, архитектура, Spark, SQL,

Продолжая говорить о сходствах и отличиях структур данных Apache Spark, сегодня мы рассмотрим, чем похожи датафрейм (DataFrame), датасет (DataSet) и RDD с позиции разработчика Big Data. Читайте в нашей статье, как обеспечивается оптимизация кода, безопасность типов при компиляции и прочие аспекты, важные при разработке распределенных программ и интерактивной аналитике больших данных с помощью Spark SQL. Сравнение RDD, DataFrame и DataSet с позиции разработчика Big Data Прежде всего перечислим, какие именно аспекты разработки программного обеспечения мы будем учитывать при сравнении структур данных Apache Spark: поддерживаемые языки программирования; безопасность типов при компиляции; оптимизация; сборка мусора (Garbage Collection); неизменность (Immutability) и совместимость (Interoperability). Начнем с языков программирования: API-интерфейсы RDD и DataFrame доступны в Java, Scala, Python и R. А Dataset API поддерживается только Далее …

RDD vs DataFrame vs DataSet: чем отличаются эти структуры данных Apache Spark

Big Data, Большие данные, архитектура, Spark, SQL, DataFrame, DataSet, RDD

В прошлый раз мы рассмотрели понятия датафрейм (DataFrame), датасет (DataSet) и RDD в контексте интерактивной аналитики больших данных (Big Data) с помощью Spark SQL. Сегодня поговорим подробнее, чем отличаются эти структуры данных, сравнив их по разным характеристикам: от времени возникновения до специфики вычислений. Критерии для сравнения структур данных Apache Spark Прежде всего, определим, по каким параметрам мы будем сравнивать DataFrame, DataSet и RDD. Для этого выделим несколько точек зрения: данные – представления, форматы, схемы; вычисления – сериализация, отложенные (ленивые) вычисления, операции агрегирования, использование памяти; разработка – поддерживаемые языки программирования, безопасность типов при компиляции, оптимизация, сборка мусора (Garbage Collection), неизменность (Immutability) и совместимость (Interoperability), область применения. Перед тем, как приступить к сравнению RDD, DataFrame и DataSet по вышеперечисленным критериям, отметим разный Далее …

3 набора данных в Spark SQL для аналитики Big Data: что такое dataframe, dataset и RDD

Big Data, Большие данные, архитектура, Spark, SQL

Этой статьей мы открываем цикл публикаций по аналитике больших данных (Big Data) с помощью SQL-инструментов: Apache Impala, Spark SQL, KSQL, Drill, Phoenix и других средств работы с реляционными базами данных и нереляционными хранилищами информации. Начнем со Spark SQL: сегодня мы рассмотрим, какие структуры данных можно анализировать с его помощью и чем они отличаются друг от друга. Что такое Spark SQL и как он работает Прежде всего, напомним, что Spark SQL – это модуль Apache Spark для работы со структурированными данными. На практике такая задача возникает при работе с реляционными базами данных, где хранится нужная информация, например, если требуется избирательное изучение пользовательского поведения на основании серверных логов. Однако, в случае множества СУБД и файловых хранилищ необходимо работать с каждой схемой данных в Далее …