Поддержка mongodb компонентами firedac в rad studio 10 seattle
TRANSCRIPT
Поддержка MongoDB компонентами FireDAC
Embarcadero Technologies
• Основана в 1993
• 3.2 M пользователей - 97% из списка Fortune 2000
• 35+ Наград продуктов за постоянные инновации
2
Темы1. Знакомство с MongoDB
2. JSON / BSON и новое в RTL
3. FireDAC MongoDB API wrapping classes
4. FireDAC MongoDB datasets
5. Практика
6. Вопросы и ответы
У вас есть FireDAC?
• Высокоскоростная, легкая в применении технология доступа к корпоративным БД
• Универсальный доступ к данным с учетом и использованием специфики каждой СУБД
• В редакции Enterprise поставляется с полными исходными текстами
FireDAC делает разработку приложений БД творческим и приятным делом
- это?..
• Самая популярная 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 хранятся документы
Богатые возможности
• Богатый язык запросов (полный CRUD)• GeoSpatial – географические запросы • Текстовый поиск• Гибкие схемы• Aggregation и MapReduce• GridFS (distributed & replicated file storage
для больших объектов)• Интеграция с Hadoop, Storm, Solr и т.п.
Автоматическая репликация данных
Горизонтальное масштабирование
Терминология 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 --
Устройство 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– Транзакции с участием нескольких документов не поддерживаются
Устройство MongoDB. Documents. Создание.
db.Restaurants.Insert({name: “Vella”, address: {street: “2 Avenue”,
building: “1480”, coord: [-73.95, 40.77]}, …})
• Будет добавлено поле _ID (может быть неявно)
• Параметр WriteConcern указывает требуемые гарантии в результате операции записи документа
• Можно применять Batch insertion. АналогичноFireDAC ArrayDML.
Устройство MongoDB. Documents. Чтение.
db.Restaurants.Find({})
db.Restaurants.Find({“address.street:”: “2 Avenue”})
• Гибкий язык запросов в формате JSON-document, включающий разделы:– Projection – список выдаваемых полей (как список SELECT)– Match – критерии отбора (аналог WHERE)– Sort – критерии сортировки (аналог ORDER BY)
• Операции join отсутствуют• Возвращает cursor с отобранными JSON-документами
N
Спасибо за внимание!
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
Вопросы?