Поддержка mongodb компонентами firedac в rad studio 10 seattle

14
Поддержка MongoDB компонентами FireDAC

Upload: andrew-sovtsov

Post on 16-Apr-2017

342 views

Category:

Education


12 download

TRANSCRIPT

Page 1: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Поддержка MongoDB компонентами FireDAC

Page 2: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Embarcadero Technologies

• Основана в 1993

• 3.2 M пользователей - 97% из списка Fortune 2000

• 35+ Наград продуктов за постоянные инновации

2

Page 3: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Темы1. Знакомство с MongoDB

2. JSON / BSON и новое в RTL

3. FireDAC MongoDB API wrapping classes

4. FireDAC MongoDB datasets

5. Практика

6. Вопросы и ответы

Page 4: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

У вас есть FireDAC?

• Высокоскоростная, легкая в применении технология доступа к корпоративным БД

• Универсальный доступ к данным с учетом и использованием специфики каждой СУБД

• В редакции Enterprise поставляется с полными исходными текстами

FireDAC делает разработку приложений БД творческим и приятным делом

Page 5: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

- это?..

• Самая популярная NoSQL СУБД (на 4 месте в общем списке)

• Тип NoSQL: Документ-ориентированная СУБД• Документы представляются как Name/Value

пары в формате BSON • Binary представление JSON (с минимальными отличиями)

• Встроенные документы и массивы снижают потребность в операциях join

• Гибкие схемы – для хранения неструктурированных и комплексных данных

• Легко масштабируется• Простая установка, open source, free

User• Name

• Email Address

Article• Name

• Slug

• Publish date

• Text

• Author

Tag[]• Value

Comment[]• Comment

• Date

• Author

Category[]• Value

В базе данных MongoDB хранятся документы

Page 6: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Богатые возможности

• Богатый язык запросов (полный CRUD)• GeoSpatial – географические запросы • Текстовый поиск• Гибкие схемы• Aggregation и MapReduce• GridFS (distributed & replicated file storage

для больших объектов)• Интеграция с Hadoop, Storm, Solr и т.п.

Автоматическая репликация данных

Горизонтальное масштабирование

Page 7: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle
Page 8: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Терминология MongoDBRDBMS MongoDB

Catalog / Database Database

Table Collection

Record JSON document

SQL CRUD = Insert, Find, Update, Delete, и т.п. Аргументы в формате JSON.

SELECT (joins, nested SELECT’s, etc)

Single collection Find (no joins)

Transaction / ACID Single document / ACID

Foreign key --

Page 9: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Устройство MongoDB. Documents.

• NoSQL = No Schema:– Разные документы в коллекции могут иметь разные структуры (dynamic structure)– В норме документы коллекции имеют некоторый набор общих элементов

• Хранятся в виде BSON = Binary JSON:– Больший набор типов данных (OID, Binary, Long numbers, Dates)– Ускорение операций reading / writing– Ускорение навигации – Соответствие 1:1 между BSON и Extended JSON

• Документ:– Допустимый BSON-object– В каждом документе присутствует пара “_ID: <value>” с идентификатором– Индексы могут быть построены по любому из полей или их набору– Любое поле может быть использовано для поиска документа– Документ можно заменять полностью или модифицировать частично– Любая операция с документом – atomic– Транзакции с участием нескольких документов не поддерживаются

Page 10: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Устройство MongoDB. Documents. Создание.

db.Restaurants.Insert({name: “Vella”, address: {street: “2 Avenue”,

building: “1480”, coord: [-73.95, 40.77]}, …})

• Будет добавлено поле _ID (может быть неявно)

• Параметр WriteConcern указывает требуемые гарантии в результате операции записи документа

• Можно применять Batch insertion. АналогичноFireDAC ArrayDML.

Page 11: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Устройство MongoDB. Documents. Чтение.

db.Restaurants.Find({})

db.Restaurants.Find({“address.street:”: “2 Avenue”})

• Гибкий язык запросов в формате JSON-document, включающий разделы:– Projection – список выдаваемых полей (как список SELECT)– Match – критерии отбора (аналог WHERE)– Sort – критерии сортировки (аналог ORDER BY)

• Операции join отсутствуют• Возвращает cursor с отобранными JSON-документами

Page 12: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

N

Page 13: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Спасибо за внимание!

Powering Today’s Applications and Data

Андрей СовцовEmbarcadero

Email:[email protected]

Blog: http://embt.co/ASovtsovTel: +7(495)708 4393

Записи вебинаров: http://embt.co/MrAndySova

Блоги Embarcadero (все языки):

http://community.embarcadero.com/index.php/blogs

[email protected]

Дмитрий Арефьев

Разработчик FireDACСвязь через

Embarcadero Quality CentralEmbarcadero FireDAC forum

http://goo.gl/dnysmN

Page 14: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle

Вопросы?