We are working on a project where we have chosen to one NO-SQL database. we come across DynamoDB. I want to know that DynamoDB and MongoDB both are the same or totally different in terms of features and API point of view. Which is the best choice DynamoDB or MongoDB?
Related
We certainly want to use separate databases since the front-end team finds it robust to work with MongoDB Atlas and AWS cloud architects find it easy to work with DynamoDB.
Our architecture:
Web application uses MongoDB to insert, update and retrieve data.
The MongoDB is synced in real-time with DynamoDB.
Background AWS services use DynamoDB for inserting, updating and retrieving data.
The changes in either DynamoDB or MongoDB are replicated to each other.
Tried so far:
We currently do have a sync in place with DyanmoDB streams and MongoDB atlas trigger to listen to changes on each database and forward them to the other. We use lambas for this, but our replication logic is not robust yet.
AWS Database Migration Service with ongoing replication has been suggested but haven't been able to get it to work in our use case. Perhaps, this is one option.
3rd party services like: https://www.cdata.com/sync/
Ideal Fit
The most ideal solution would be an AWS-based solution if not a reliable 3rd party service.
Greatly appreciate any resources or thoughts on this! :)
I am building an app that allows people to share items with other people in the community. I wanted to use AWS as my platform.
My idea was to use react Native for the app. AWS Cognito for the authentication. AWS lambda for the server calls. Relational database for storing data about the items and user data such as geolocation. Dynamodb for real-time chat, requests for borrowing and transaction data between users. My primary focus is low cost and I was thinking of using PostgresSQL for relational database.
What do you guys think of my database choices. Of course the PostgresSQL database on rds. Is there a flaw in database plan so far? Any help would be greatly appreciated.
I would probably just use DynamoDB for everything in your application. I don't see a real need to storing some of your data in an RDS database here. However if you definitely need a relational database, I would suggest AWS Aurora Serverless so that your entire application would be using serverless AWS services. Also, normal relational database connection pools don't work that well in AWS Lambda, so I would suggest using the new Data API.
I have started developing website like naukri.com and i am using spring boot technology. When applicants register, i need to store the images and documents etc., in MySql database.
Is it right to store the images and documents in MySql database ? How much data can I store in Mysql, ie: how many no of applicants can I store?
I am thinking of using either Mongodb or Cassandra instead of MySql database. When the applicants grow to a bigger size. Which database is used to store large number of applicants documents? Which is the correct database for storing more number of records and retrieval should be fast?
I am thinking of using cloud to store the documents, but i have never used any cloud technology. Could you please help me which database do i need to use or any open source cloud technology I need to use!
Thanks in advance.
MySQL and Mogo are two radically different ways of handling data. If you will build your application based on relational database it could be very difficult to migrate to document based database, when the amount of data will be significant.
There's no good answer to your question. Both database engines have some prons and cons.
My company has been used Oracle for a long time but we would like to look for a NoSQL database as a replacement for faster querying and flexible schema design.
I have tried to use MongoDB which would be the most popular NoSQL database nowadays. I connected it to Spring Data to do some simple queries, which is quite easy to be set up and code simply. Since we are using Spring MVC for web development, Spring Data seems quite suitable for integration.
However, I heard that Cassandra would have better performance in write and read, especially in large scaling system. I am not sure whether it is worth to move to Cassandra and not sure how to measure the performance between MongoDB and Cassandra.
Here are some requirements for my system:
focusing on article fetching
tagging for articles for users to easily search for their favors or related articles
non-distributed system, but have load-balancing and fail-over
Java based, Spring MVC for web development
articles would be stored as XML
probably provide user-defined tables (collections) and fields (keys)
Therefore I would like to raise some questions:
Which Database is the most suitable for my case? You may also raise other databases apart from MongoDB and Cassandra.
If I use Cassandra, which framework would be suitable for integrating to Spring MVC?
Thank you so much in advanced.
I have experience using Spring and Cassandra together. But I always have written my own data access layer.
Using the ORMs out there for Cassandra will not allow you to leverage its full power, and you will, most likely, introduce bugs because your SQL background will make you expect certain behaviours that are just not what Cassandra will give you.
My advice write the code that will access Cassandra yourself and do not be afraid to denormalize A LOT. Think more about how you want to query (or find it) your data than the format in which you want to save it.
I also strongly recommend reading this amazing article: Cassandra Data Modeling Best Practices part 1 part 2
Another DB which might suit your application better is CouchDB (I like using BigCouch). It is another Document based NoSQL database and is in my opinion superior to MongoDB. It offers better solution for scaling and gives emphasis to Availability (just like Cassandra).
I'd like to point you to this question about the difference between CouchDB and MongoDB.
As far as framework goes Play framework has a lot of plugin to work with NoSQL systems, so you might give it a try. You could try playorm which is the last I experimented on.
EDIT : I forgot to mention Kundera as well as an ORM for Cassandra
Choosing between Cassandra and MongoDB depends on type of storage. MongoDB is primarily for document based storage where you get an edge by having various sql like features.
If you require columnar database with high availability and multi dc replication? go for Cassandra.
http://db-engines.com/en/system/Cassandra%3BHBase%3BMongoDB
I've been using Geoserver with a postgis datasource but I was thinking of switching over to a NoSQL solution for storing my geospatial data since the schemaless nature of NoSQL databases fits my application well.
However, it seems that most mapping applications that I've come across (geoserver, mapserver) don't have support for NoSQL datastores. The closest thing I've come accross is couchmaps
Has anyone used NoSQL for mapping? If so, what tools have you used? What I'm looking for in particular is an application that can serve WMS and WFS requests using a NoSQL datastore.
for GIS data and Search in Nosql MongoDB is suitable for you because mongodb itself provide facility to store and search for GIS data.
read more at here
I am interested in the same issue, and it seems that GeoServer is ready to work with MongoDB as seen in http://www.mongodb.com/presentations/mongodb-geoserver.
I hope this could help you too, http://boundlessgeo.com/2014/06/mapping-worldcup-opengeo-suite-mongodb/ . It explains how to configure the connection between GeoServer + MongoDB and how to add a layer using geotweets as source information.