Поддержка mongodb компонентами firedac в rad studio 10 seattle
TRANSCRIPT
![Page 1: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/1.jpg)
Поддержка MongoDB компонентами FireDAC
![Page 2: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/2.jpg)
Embarcadero Technologies
• Основана в 1993
• 3.2 M пользователей - 97% из списка Fortune 2000
• 35+ Наград продуктов за постоянные инновации
2
![Page 3: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/3.jpg)
Темы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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/4.jpg)
У вас есть FireDAC?
• Высокоскоростная, легкая в применении технология доступа к корпоративным БД
• Универсальный доступ к данным с учетом и использованием специфики каждой СУБД
• В редакции Enterprise поставляется с полными исходными текстами
FireDAC делает разработку приложений БД творческим и приятным делом
![Page 5: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/5.jpg)
- это?..
• Самая популярная 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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/6.jpg)
Богатые возможности
• Богатый язык запросов (полный CRUD)• GeoSpatial – географические запросы • Текстовый поиск• Гибкие схемы• Aggregation и MapReduce• GridFS (distributed & replicated file storage
для больших объектов)• Интеграция с Hadoop, Storm, Solr и т.п.
Автоматическая репликация данных
Горизонтальное масштабирование
![Page 7: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/7.jpg)
![Page 8: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/8.jpg)
Терминология 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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/9.jpg)
Устройство 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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/10.jpg)
Устройство 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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/11.jpg)
Устройство 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](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/12.jpg)
N
![Page 13: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/13.jpg)
Спасибо за внимание!
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
Дмитрий Арефьев
Разработчик FireDACСвязь через
Embarcadero Quality CentralEmbarcadero FireDAC forum
http://goo.gl/dnysmN
![Page 14: Поддержка MongoDB компонентами FireDAC в RAD Studio 10 Seattle](https://reader031.vdocuments.site/reader031/viewer/2022012313/5871af4b1a28abda6a8b6433/html5/thumbnails/14.jpg)
Вопросы?