SlideShare a Scribd company logo
© 2020 DataStax.© 2020 DataStax.
Полет на Zeppelin
с Apache Spark™ и Cassandra™
Alex Ott
© 2020 DataStax.
Ø Ядерный физик по образованию
Ø Более 20 лет опыта разработки ПО на разных языках
Ø Области интересов – big data, machine learning, NLP, …
Ø Principal Solutions Architect @ DataStax
Ø Apache Zeppelin Committer, плюс много других OSS проектов
Ø Контакты:
Øhttps://github.com/alexott/
Øhttps://twitter.com/alexott_en
Øhttp://alexott.blogspot.com/
Обо мне
© 2020 DataStax.
Ø Apache Zeppelin
Ø Apache Spark
Ø Apache Cassandra
Ø Комбинируем все вместе
О чем пойдет речь
© 2020 DataStax.
Apache Zeppelin
https://zeppelin.apache.org/
© 2020 DataStax.
Ø Многопользовательская среда для интерактивной разработки/
анализа данных
Ø Доступ через браузер, интерактивное обновление данных
Ø Блокнот (notebook) может использовать любое количество
интерпретаторов
Ø Поддержка разных языков программирования
Ø Большое количество интерпретаторов для работы с разными базами
данных и прочих технологий
Ø Отображение данных в разных видах, с возможностью расширения
Ø Версионирование блокнотов (Git, S3, GCS, MongoDB, …)
Что это такое?
© 2020 DataStax.
Ø Apache Spark (Scala, Python, SQL)
Ø Flink (SQL, Scala, Python)
Ø Apache Cassandra
Ø Elasticsearch
Ø KSQL
Ø Google BigQuery
Ø JDBC
Ø Apache Beam
Ø SparQL
Интерпретеры для разных технологий
Ø MongoDB
Ø InfluxDB
Ø Ignite
Ø Pig
Ø Neo4j
Ø Hazelcast Jet
Ø HDFS
Ø Apache Mahout
Ø…
© 2020 DataStax.
Ø Scala
Ø Python/IPython
Ø Kotlin
Ø Groovy
Разные языки программирования
ØJava
Ø R
Ø Shell
Ø Интерфейс к Jupyter
© 2020 DataStax.
Разные интерпретаторы в одном блокноте
© 2020 DataStax.
Разное представление результатов
Ø Вывод результатов в виде:
Ø Текста
Ø Таблиц (разделённых TAB)
Ø HTML
Ø JSON
Ø Сеть
Ø Angular backend/frontend APIs для реализации дополнительной
функциональности
Ø Динамическое обновление данных (в некоторых интерпретаторах)
© 2020 DataStax.
Разное представление результатов
© 2020 DataStax.
Дополнительные способы визуализации
© 2020 DataStax.
Ø Специальные функции для взаимодействия с Zeppelin
Ø z.show(…) для показа содержимого переменных
Ø z.put/z.get для обмена данными между интерпретаторами в блокноте
Ø z.input/z.select/z.checkbox – создание интерактивных форм
Ø интерполяция переменных (в некоторых интерпретаторах)
Zeppelin Context
© 2020 DataStax.
Ø Изменения сделанные в блокноте, сразу видны для всех
Ø Можно установить права доступа к блокноту
Ø Поддержка форм для ввода данных
Ø Можно опубликовать отдельный параграф с результатами
Совместная работа и публикация
© 2020 DataStax.
Развертывается как:
Ø Дистрибутив в виде тарболла
Ø Docker image
Ø Поддержка Kubernetes (в версии 0.9.0)
Настройка:
Ø UI для настройки интерпретаторов
Ø Настройка через REST API
Развертывание и настройка
© 2020 DataStax.
Ø Аутентификация через Apache Shiro
Ø Права доступа к блокнотам (изменение, чтение, выполнение)
Ø Права доступа к интерпретаторам
Ø Совместный или отдельный контекст интерпретаторов
Ø Аутентификация для источников данных (частичная поддержка)
Ø Дополнительная настройка HTTP заголовков для безопасности
Безопасность
© 2020 DataStax.
Apache Spark
https://spark.apache.org/
© 2020 DataStax.
Ø Фреймворк для эффективной распределённой обработки данных
Ø Поддерживает большое количество источников данных:
Ø форматы файлов: CSV, JSON, Parquet, …
Ø базы данных и т.п.: JDBC, Cassandra, Kafka, …
Ø Пакетная и потоковая обработка данных
Ø Spark SQL позволяет выполнять SQL запросы на данных из любого
источника
Ø Поддерживает программирование на Scala, Java, Python, R
Что такое Apache Spark
© 2020 DataStax.
Ø Разные режимы развертывания:
Ø Локальный – для небольших экспериментов
Ø Встроенный кластер
Ø Apache Mesos
Ø Kubernetes
Ø Облачные платформы: AWS EMR (Elastic Map Reduce), …
Ø Databricks (AWS или Azure)
Режимы развертывания
© 2020 DataStax.
Архитектура
© 2020 DataStax.
Архитектура
© 2020 DataStax.
Apache Cassandra
https://cassandra.apache.org/
© 2020 DataStax.
Ø Распределенная (в том числе и географически), масштабируемая,
производительная, отказоустойчивая база данных
Ø Активно используется в проектах где нужна высокая
производительность с низким временем ответа и большим
количеством данных (Apple, Netflix, Spotify, …)
Ø Нет единой точки отказа
Ø Данные автоматически реплицируются
Ø Cassandra Query Language (CQL) - похож на SQL (эта похожесть
часто является источником проблем)
Ø Регулируемая консистентность данных
Что такое Apache Cassandra
© 2020 DataStax.
Комбинируем все вместе
© 2020 DataStax.
Zeppelin + Cassandra
https://zeppelin.apache.org/docs/0.9.0-preview1/interpreter/cassandra.html
© 2020 DataStax.
Ø Доступен с версии 0.6
Ø Поддержка всех команд CQL
Ø Поддержка команд cqlsh: DESCRIBE, HELP, …
Ø Поддержка batch statements
Ø Поддержка подготовленных запросов (prepared statements)
Ø Возможность изменения поведения отдельных команд с помощью
параметров (consistency level, timestamp, fetch size, …)
Интерпретатор для Cassandra
© 2020 DataStax.
Ø Настройка:
Ø Аутентификации
Ø Consistency levels
Ø Различных политик (балансирование нагрузки, повторение, и т.п.
Ø …
Ø Поддержка DataStax Java driver 4.x в версии 0.9.0 (еще нет в
preview1)
Ø Работа с Cassandra & DSE, включая типы данных DSE
Ø Поддержка DataStax Astra (Cassandra as a service)
Ø Стабильность и производительность
Интерпретатор для Cassandra
© 2020 DataStax.
© 2020 DataStax.
Zeppelin + Spark
https://zeppelin.apache.org/docs/0.9.0-preview1/interpreter/spark.html
© 2020 DataStax.
Ø Интерпретатор Spark выбран по умолчанию
Ø Задачи Spark могут выполняться в любом поддерживаемом режиме
Ø Позволяет работать со Spark используя Scala, Python/IPython, R,
Kotlin, Spark SQL
Ø Поддержка Dataframe в z.show
Spark в Zeppelin
© 2020 DataStax.
© 2020 DataStax.
Cassandra + Spark
© 2020 DataStax.
Ø Поддерживает оба API:
Ø Dataframe/Datasets (рекомендуется)
Ø RDD - немного больше функциональности, но низкоуровневый
Ø Поддержка Spark SQL
Ø Разные языки программирования:
Ø Scala & Java - RDD и Dataframes
Ø Python, R, .Net – только Dataframes
Ø Множество оптимизаций для эффективного чтения данных из Cassandra
Ø Predicates pushdown – чтение только нужных данных из Cassandra
Ø join с данными в Cassandra по первичному ключу или ключу партиционирования
Spark Cassandra Connector (SCC)
© 2020 DataStax.
Ø Создание таблиц на основе структуры Dataframe/Dataset
Ø Доступ к метаданным (TTL & WriteTime)
Ø Удаление данных на основе данных в RDD
Ø Изменение коллекций – добавление/удаление элементов
(только в RDD API)
Ø Возможность одновременной работы с несколькими кластерами
Cassandra (очень удобно для миграции данных)
Spark Cassandra Connector
© 2020 DataStax.
Ø Теперь доступно вся функциональность, которая раньше была только в
коммерческой версии:
Ø Эффективный join Dataframe с данными в Cassandra (DSE Direct Join)
Ø Поддержка типов данных DSE (geo-spatial)
Ø Spark Structured Streaming
Ø Дополнительные оптимизации
Ø Новая функциональность:
Ø Поддержка DataStax Astra
Ø Поддержка работы с TTL/WriteTime в Dataframe API
Ø Оптимизация запросов с IN на primary/partition keys
Ø Улучшенная поддержка контейнеров (Kubernetes, Mesos)
Spark Cassandra Connector 2.5.0
© 2020 DataStax.
Традиционный синтаксис:
val data = spark.read.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "…", "keyspace" -> "…")).load()
или упрощенный:
import org.apache.spark.sql.cassandra._
val data = spark.read.cassandraFormat("tbl", "ks").load()
Dataframe API (чтение данных)
© 2020 DataStax.
Традиционный синтаксис:
data.write.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "…", "keyspace" -> "…"))
.mode("append").save()
или упрощенный:
import org.apache.spark.sql.cassandra._
data.write.cassandraFormat("tbl", "ks").mode("append").save()
Dataframe API (запись данных)
© 2020 DataStax.
Ø Необходимо импортировать com.datastax.spark.connector._
Ø Чтение данных
val data = sc.cassandraTable("keyspace", "table")
Ø Запись данных:
data.saveToCassandra("keyspace", "table")
Ø join с данными в Cassandra:
data.joinWithCassandraTable("keyspace","table")
Ø удаление данных из Cassandra:
data.deleteFromCassandra("keyspace", "table")
RDD API
© 2020 DataStax.
Live demo
© 2020 DataStax.
Дополнительная
информация
© 2020 DataStax.
Ø DataStax Community: https://community.datastax.com
Ø Cassandra. The Definitive Guide, 3ed:
https://www.datastax.com/resources/ebook/oreilly-cassandra-definitive-
guide
Ø Spark Cassandra Connector (SCC):
https://github.com/datastax/spark-cassandra-connector
Ø Анонс версии 2.5.0 SCC: https://www.datastax.com/blog/2020/05/advanced-
apache-cassandra-analytics-now-open-all
Ø Репозиторий с блокнотами: https://github.com/alexott/zeppelin-demos
Дополнительная информация
© 2020 DataStax.
Спасибо за внимание

More Related Content

What's hot

Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
Shahar Evron
 
Presentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - WebinarPresentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - Webinar
Orient Technologies
 
Cassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE SearchCassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE Search
Caleb Rackliffe
 
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Dave Stokes
 
What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6
EDB
 
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Dave Stokes
 
MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018
Dave Stokes
 
Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016
Dave Stokes
 
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
Gianmario Spacagna
 
Couch db
Couch dbCouch db
Couch db
amini gazar
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the Web
Karel Minarik
 
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
Dave Stokes
 
Scaling MySQL -- Swanseacon.co.uk
Scaling MySQL -- Swanseacon.co.uk Scaling MySQL -- Swanseacon.co.uk
Scaling MySQL -- Swanseacon.co.uk
Dave Stokes
 
PNWPHP -- What are Databases so &#%-ing Difficult
PNWPHP -- What are Databases so &#%-ing DifficultPNWPHP -- What are Databases so &#%-ing Difficult
PNWPHP -- What are Databases so &#%-ing Difficult
Dave Stokes
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
Dave Stokes
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
DataStax
 
Architecture of exadata database machine – Part II
Architecture of exadata database machine – Part IIArchitecture of exadata database machine – Part II
Architecture of exadata database machine – Part II
Paresh Nayak,OCP®,Prince2®
 
Updates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesUpdates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI Indexes
Jim Hatcher
 
Everyday I’m scaling... Cassandra
Everyday I’m scaling... CassandraEveryday I’m scaling... Cassandra
Everyday I’m scaling... Cassandra
Instaclustr
 

What's hot (20)

Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
 
Presentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - WebinarPresentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - Webinar
 
Cassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE SearchCassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE Search
 
CouchDB
CouchDBCouchDB
CouchDB
 
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
 
What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6What's New in PostgreSQL 9.6
What's New in PostgreSQL 9.6
 
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
 
MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018
 
Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016Polyglot Database - Linuxcon North America 2016
Polyglot Database - Linuxcon North America 2016
 
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
In-Memory Logical Data Warehouse for accelerating Machine Learning Pipelines ...
 
Couch db
Couch dbCouch db
Couch db
 
CouchDB – A Database for the Web
CouchDB – A Database for the WebCouchDB – A Database for the Web
CouchDB – A Database for the Web
 
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
MySQL Utilities -- Cool Tools For You: PHP World Nov 16 2016
 
Scaling MySQL -- Swanseacon.co.uk
Scaling MySQL -- Swanseacon.co.uk Scaling MySQL -- Swanseacon.co.uk
Scaling MySQL -- Swanseacon.co.uk
 
PNWPHP -- What are Databases so &#%-ing Difficult
PNWPHP -- What are Databases so &#%-ing DifficultPNWPHP -- What are Databases so &#%-ing Difficult
PNWPHP -- What are Databases so &#%-ing Difficult
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
Architecture of exadata database machine – Part II
Architecture of exadata database machine – Part IIArchitecture of exadata database machine – Part II
Architecture of exadata database machine – Part II
 
Updates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI IndexesUpdates from Cassandra Summit 2016 & SASI Indexes
Updates from Cassandra Summit 2016 & SASI Indexes
 
Everyday I’m scaling... Cassandra
Everyday I’m scaling... CassandraEveryday I’m scaling... Cassandra
Everyday I’m scaling... Cassandra
 

Similar to Полет на Zeppelin с Apache Spark™ и Cassandra™

Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Helena Edelson
 
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Michael Rys
 
Spark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureSpark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and Furure
DataStax Academy
 
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Paul Brebner
 
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Michael Rys
 
Spark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and FutureSpark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and Future
Russell Spitzer
 
DataStax: Spark Cassandra Connector - Past, Present and Future
DataStax: Spark Cassandra Connector - Past, Present and FutureDataStax: Spark Cassandra Connector - Past, Present and Future
DataStax: Spark Cassandra Connector - Past, Present and Future
DataStax Academy
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
Anton Kirillov
 
Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)
Michael Rys
 
Containerized Data Persistence on Mesos
Containerized Data Persistence on MesosContainerized Data Persistence on Mesos
Containerized Data Persistence on Mesos
Joe Stein
 
Practical OData
Practical ODataPractical OData
Practical OData
Vagif Abilov
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
Michael Rys
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational Data
Victor Coustenoble
 
Stargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data APIStargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data API
Data Con LA
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Presto: Query Anything - Data Engineer’s perspective
Presto: Query Anything - Data Engineer’s perspectivePresto: Query Anything - Data Engineer’s perspective
Presto: Query Anything - Data Engineer’s perspective
Alluxio, Inc.
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
DataStax
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Guido Schmutz
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo
 
Apache Cassandra Lunch #94: StreamSets and Cassandra
Apache Cassandra Lunch #94: StreamSets and CassandraApache Cassandra Lunch #94: StreamSets and Cassandra
Apache Cassandra Lunch #94: StreamSets and Cassandra
Anant Corporation
 

Similar to Полет на Zeppelin с Apache Spark™ и Cassandra™ (20)

Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
 
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
 
Spark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureSpark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and Furure
 
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
 
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
 
Spark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and FutureSpark Cassandra Connector: Past, Present, and Future
Spark Cassandra Connector: Past, Present, and Future
 
DataStax: Spark Cassandra Connector - Past, Present and Future
DataStax: Spark Cassandra Connector - Past, Present and FutureDataStax: Spark Cassandra Connector - Past, Present and Future
DataStax: Spark Cassandra Connector - Past, Present and Future
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
 
Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)
 
Containerized Data Persistence on Mesos
Containerized Data Persistence on MesosContainerized Data Persistence on Mesos
Containerized Data Persistence on Mesos
 
Practical OData
Practical ODataPractical OData
Practical OData
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational Data
 
Stargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data APIStargate, the gateway for some multi-models data API
Stargate, the gateway for some multi-models data API
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Presto: Query Anything - Data Engineer’s perspective
Presto: Query Anything - Data Engineer’s perspectivePresto: Query Anything - Data Engineer’s perspective
Presto: Query Anything - Data Engineer’s perspective
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me Anything
 
Apache Cassandra Lunch #94: StreamSets and Cassandra
Apache Cassandra Lunch #94: StreamSets and CassandraApache Cassandra Lunch #94: StreamSets and Cassandra
Apache Cassandra Lunch #94: StreamSets and Cassandra
 

Recently uploaded

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 

Recently uploaded (20)

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 

Полет на Zeppelin с Apache Spark™ и Cassandra™

  • 1. © 2020 DataStax.© 2020 DataStax. Полет на Zeppelin с Apache Spark™ и Cassandra™ Alex Ott
  • 2. © 2020 DataStax. Ø Ядерный физик по образованию Ø Более 20 лет опыта разработки ПО на разных языках Ø Области интересов – big data, machine learning, NLP, … Ø Principal Solutions Architect @ DataStax Ø Apache Zeppelin Committer, плюс много других OSS проектов Ø Контакты: Øhttps://github.com/alexott/ Øhttps://twitter.com/alexott_en Øhttp://alexott.blogspot.com/ Обо мне
  • 3. © 2020 DataStax. Ø Apache Zeppelin Ø Apache Spark Ø Apache Cassandra Ø Комбинируем все вместе О чем пойдет речь
  • 4. © 2020 DataStax. Apache Zeppelin https://zeppelin.apache.org/
  • 5. © 2020 DataStax. Ø Многопользовательская среда для интерактивной разработки/ анализа данных Ø Доступ через браузер, интерактивное обновление данных Ø Блокнот (notebook) может использовать любое количество интерпретаторов Ø Поддержка разных языков программирования Ø Большое количество интерпретаторов для работы с разными базами данных и прочих технологий Ø Отображение данных в разных видах, с возможностью расширения Ø Версионирование блокнотов (Git, S3, GCS, MongoDB, …) Что это такое?
  • 6. © 2020 DataStax. Ø Apache Spark (Scala, Python, SQL) Ø Flink (SQL, Scala, Python) Ø Apache Cassandra Ø Elasticsearch Ø KSQL Ø Google BigQuery Ø JDBC Ø Apache Beam Ø SparQL Интерпретеры для разных технологий Ø MongoDB Ø InfluxDB Ø Ignite Ø Pig Ø Neo4j Ø Hazelcast Jet Ø HDFS Ø Apache Mahout Ø…
  • 7. © 2020 DataStax. Ø Scala Ø Python/IPython Ø Kotlin Ø Groovy Разные языки программирования ØJava Ø R Ø Shell Ø Интерфейс к Jupyter
  • 8. © 2020 DataStax. Разные интерпретаторы в одном блокноте
  • 9. © 2020 DataStax. Разное представление результатов Ø Вывод результатов в виде: Ø Текста Ø Таблиц (разделённых TAB) Ø HTML Ø JSON Ø Сеть Ø Angular backend/frontend APIs для реализации дополнительной функциональности Ø Динамическое обновление данных (в некоторых интерпретаторах)
  • 10. © 2020 DataStax. Разное представление результатов
  • 11. © 2020 DataStax. Дополнительные способы визуализации
  • 12. © 2020 DataStax. Ø Специальные функции для взаимодействия с Zeppelin Ø z.show(…) для показа содержимого переменных Ø z.put/z.get для обмена данными между интерпретаторами в блокноте Ø z.input/z.select/z.checkbox – создание интерактивных форм Ø интерполяция переменных (в некоторых интерпретаторах) Zeppelin Context
  • 13. © 2020 DataStax. Ø Изменения сделанные в блокноте, сразу видны для всех Ø Можно установить права доступа к блокноту Ø Поддержка форм для ввода данных Ø Можно опубликовать отдельный параграф с результатами Совместная работа и публикация
  • 14. © 2020 DataStax. Развертывается как: Ø Дистрибутив в виде тарболла Ø Docker image Ø Поддержка Kubernetes (в версии 0.9.0) Настройка: Ø UI для настройки интерпретаторов Ø Настройка через REST API Развертывание и настройка
  • 15. © 2020 DataStax. Ø Аутентификация через Apache Shiro Ø Права доступа к блокнотам (изменение, чтение, выполнение) Ø Права доступа к интерпретаторам Ø Совместный или отдельный контекст интерпретаторов Ø Аутентификация для источников данных (частичная поддержка) Ø Дополнительная настройка HTTP заголовков для безопасности Безопасность
  • 16. © 2020 DataStax. Apache Spark https://spark.apache.org/
  • 17. © 2020 DataStax. Ø Фреймворк для эффективной распределённой обработки данных Ø Поддерживает большое количество источников данных: Ø форматы файлов: CSV, JSON, Parquet, … Ø базы данных и т.п.: JDBC, Cassandra, Kafka, … Ø Пакетная и потоковая обработка данных Ø Spark SQL позволяет выполнять SQL запросы на данных из любого источника Ø Поддерживает программирование на Scala, Java, Python, R Что такое Apache Spark
  • 18. © 2020 DataStax. Ø Разные режимы развертывания: Ø Локальный – для небольших экспериментов Ø Встроенный кластер Ø Apache Mesos Ø Kubernetes Ø Облачные платформы: AWS EMR (Elastic Map Reduce), … Ø Databricks (AWS или Azure) Режимы развертывания
  • 21. © 2020 DataStax. Apache Cassandra https://cassandra.apache.org/
  • 22. © 2020 DataStax. Ø Распределенная (в том числе и географически), масштабируемая, производительная, отказоустойчивая база данных Ø Активно используется в проектах где нужна высокая производительность с низким временем ответа и большим количеством данных (Apple, Netflix, Spotify, …) Ø Нет единой точки отказа Ø Данные автоматически реплицируются Ø Cassandra Query Language (CQL) - похож на SQL (эта похожесть часто является источником проблем) Ø Регулируемая консистентность данных Что такое Apache Cassandra
  • 24. © 2020 DataStax. Zeppelin + Cassandra https://zeppelin.apache.org/docs/0.9.0-preview1/interpreter/cassandra.html
  • 25. © 2020 DataStax. Ø Доступен с версии 0.6 Ø Поддержка всех команд CQL Ø Поддержка команд cqlsh: DESCRIBE, HELP, … Ø Поддержка batch statements Ø Поддержка подготовленных запросов (prepared statements) Ø Возможность изменения поведения отдельных команд с помощью параметров (consistency level, timestamp, fetch size, …) Интерпретатор для Cassandra
  • 26. © 2020 DataStax. Ø Настройка: Ø Аутентификации Ø Consistency levels Ø Различных политик (балансирование нагрузки, повторение, и т.п. Ø … Ø Поддержка DataStax Java driver 4.x в версии 0.9.0 (еще нет в preview1) Ø Работа с Cassandra & DSE, включая типы данных DSE Ø Поддержка DataStax Astra (Cassandra as a service) Ø Стабильность и производительность Интерпретатор для Cassandra
  • 28. © 2020 DataStax. Zeppelin + Spark https://zeppelin.apache.org/docs/0.9.0-preview1/interpreter/spark.html
  • 29. © 2020 DataStax. Ø Интерпретатор Spark выбран по умолчанию Ø Задачи Spark могут выполняться в любом поддерживаемом режиме Ø Позволяет работать со Spark используя Scala, Python/IPython, R, Kotlin, Spark SQL Ø Поддержка Dataframe в z.show Spark в Zeppelin
  • 32. © 2020 DataStax. Ø Поддерживает оба API: Ø Dataframe/Datasets (рекомендуется) Ø RDD - немного больше функциональности, но низкоуровневый Ø Поддержка Spark SQL Ø Разные языки программирования: Ø Scala & Java - RDD и Dataframes Ø Python, R, .Net – только Dataframes Ø Множество оптимизаций для эффективного чтения данных из Cassandra Ø Predicates pushdown – чтение только нужных данных из Cassandra Ø join с данными в Cassandra по первичному ключу или ключу партиционирования Spark Cassandra Connector (SCC)
  • 33. © 2020 DataStax. Ø Создание таблиц на основе структуры Dataframe/Dataset Ø Доступ к метаданным (TTL & WriteTime) Ø Удаление данных на основе данных в RDD Ø Изменение коллекций – добавление/удаление элементов (только в RDD API) Ø Возможность одновременной работы с несколькими кластерами Cassandra (очень удобно для миграции данных) Spark Cassandra Connector
  • 34. © 2020 DataStax. Ø Теперь доступно вся функциональность, которая раньше была только в коммерческой версии: Ø Эффективный join Dataframe с данными в Cassandra (DSE Direct Join) Ø Поддержка типов данных DSE (geo-spatial) Ø Spark Structured Streaming Ø Дополнительные оптимизации Ø Новая функциональность: Ø Поддержка DataStax Astra Ø Поддержка работы с TTL/WriteTime в Dataframe API Ø Оптимизация запросов с IN на primary/partition keys Ø Улучшенная поддержка контейнеров (Kubernetes, Mesos) Spark Cassandra Connector 2.5.0
  • 35. © 2020 DataStax. Традиционный синтаксис: val data = spark.read.format("org.apache.spark.sql.cassandra") .options(Map( "table" -> "…", "keyspace" -> "…")).load() или упрощенный: import org.apache.spark.sql.cassandra._ val data = spark.read.cassandraFormat("tbl", "ks").load() Dataframe API (чтение данных)
  • 36. © 2020 DataStax. Традиционный синтаксис: data.write.format("org.apache.spark.sql.cassandra") .options(Map( "table" -> "…", "keyspace" -> "…")) .mode("append").save() или упрощенный: import org.apache.spark.sql.cassandra._ data.write.cassandraFormat("tbl", "ks").mode("append").save() Dataframe API (запись данных)
  • 37. © 2020 DataStax. Ø Необходимо импортировать com.datastax.spark.connector._ Ø Чтение данных val data = sc.cassandraTable("keyspace", "table") Ø Запись данных: data.saveToCassandra("keyspace", "table") Ø join с данными в Cassandra: data.joinWithCassandraTable("keyspace","table") Ø удаление данных из Cassandra: data.deleteFromCassandra("keyspace", "table") RDD API
  • 40. © 2020 DataStax. Ø DataStax Community: https://community.datastax.com Ø Cassandra. The Definitive Guide, 3ed: https://www.datastax.com/resources/ebook/oreilly-cassandra-definitive- guide Ø Spark Cassandra Connector (SCC): https://github.com/datastax/spark-cassandra-connector Ø Анонс версии 2.5.0 SCC: https://www.datastax.com/blog/2020/05/advanced- apache-cassandra-analytics-now-open-all Ø Репозиторий с блокнотами: https://github.com/alexott/zeppelin-demos Дополнительная информация
  • 41. © 2020 DataStax. Спасибо за внимание