Orm на no sql через jpa. Павел Вейник
-
Upload
alina-dolgikh -
Category
Software
-
view
2.490 -
download
1
Transcript of Orm на no sql через jpa. Павел Вейник
![Page 1: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/1.jpg)
Java Day Minsk 2015
ORM на noSql через JPA
Павел ВейникHead of Dev @ geomotiv
![Page 2: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/2.jpg)
Java Day Minsk 2015
1. SQL vs noSql
2. JPA + Kundera + Pelops + Thrift + Cassandra
3. Проект и команда
![Page 3: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/3.jpg)
Java Day Minsk 2015
SQL vs noSql
SQL-2011 и др
ясная концепция
матаппарат
зрелое решение
не теряет данные
масштабируется
целостность данных
ACID
нет стандарта
расплывчатая
нет
нет
может
масштабируется
нет FK и PK
eventual constistency
![Page 4: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/4.jpg)
Java Day Minsk 2015
SQL vs noSql: разработка
commercial
легко менять код под новые выборки
быстрое прототипирование
ORM стандарт JPA
Hibernate
триггеры, процедуры
громоздкий код
не нужно думать о производительности
open source
трудно менять код под новые выборки
быстрое прототипирование?
нет стандарта
Thrift
все в клиентском коде
сложный код
вы думаете о производительности
![Page 5: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/5.jpg)
Java Day Minsk 2015
noSql
● Используется в целях маркетингаNot Only SQL
● Используется жертвами маркетинга● Используется как вспомогательное решение
рядом с РСУБД● Используется как самостоятельное решение
в нестандартных проектах
![Page 6: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/6.jpg)
Java Day Minsk 2015
Бухучет
![Page 7: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/7.jpg)
Java Day Minsk 2015
![Page 8: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/8.jpg)
Java Day Minsk 2015
NoSql?
Каждому приложению не нужна вся мощь Oracle, DB2 или даже Mysql, часто даже полный ACID не нужен.
NoSql — усеченный вариант, разработчику предоставляются низкоуровневые средства работы с БД и ответственность за их использование.
![Page 9: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/9.jpg)
Java Day Minsk 2015
Задача
Перевести большой проект с MySql на Cassandra
Разработать новый уровень обращения к бд
JPA, Hibernate, 300+ таблиц, много данных
![Page 10: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/10.jpg)
Java Day Minsk 2015
Решение
● JPA● Kundera● scale7-pelops● Thrift● Cassandra
![Page 11: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/11.jpg)
Java Day Minsk 2015
![Page 12: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/12.jpg)
Java Day Minsk 2015
![Page 13: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/13.jpg)
Java Day Minsk 2015
Боль
Снижение производительности работы с бд примерно в 2 раза.
Увеличение времени ожидания ответа.
Вернули MySql назад и придумали разумный план на полгода по переходу на Cassandra. В результате добавили пару кэшей.
![Page 14: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/14.jpg)
Java Day Minsk 2015
Проект и команда
![Page 15: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/15.jpg)
Java Day Minsk 2015
Умник– Неизвестный фактор
CTO – Интересы в компани несколькими уровнями
выше чем технологии
Команда– Не хочет ссориться с CTO
– Не хочет делать дурную работу и отвечать за нее
Фрилансер– Хочет сделать задание и получить деньги
![Page 16: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/16.jpg)
Java Day Minsk 2015
Почему?
● Почему CTO выдал распоряжение по переходу на noSql?
● Почему команда не донесла до СТО масштабы перехода?
● Почему оказалось проще потратить время и ресурсы, чем подумать сразу?
● Почему фрилансер взялся за странную работу?
![Page 17: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/17.jpg)
Java Day Minsk 2015
Технологии?
Процессы?
Роли?
Исполнители?
Разработчики
Отношения?
Управление?
HR? Внутренний HR?
Успех проекта
![Page 18: Orm на no sql через jpa. Павел Вейник](https://reader030.fdocuments.us/reader030/viewer/2022020208/55ca37ecbb61eb9a698b4639/html5/thumbnails/18.jpg)
Java Day Minsk 2015
?Павел Вейник
Head of Dev @ geomotiv