Choosing the right Database ?
·
Questions to ask to choose the
appropriate database for your needs
o Read
heavy, Write Heavy or Balanced workload? Throughput needs? Will it change, does
it need to scale or fluctuate during the day?
o How
much data to store and for how long? will it grow? Average Object Size? How are
they accessed?
o Data
Durability? Source of Truth for the data?
o Latency
requirements? Concurrent users?
o Data
Model? How will you query the data? Joins? Structured? Semi-Structured?
o Strong
Schema? More flexible? Reporting? Search? RDBMS/NOSQL?
o License
cost? Switch to native Cloud DB like Auroa?
·
Database Types
o RDBMS (-SQL/OLTP):
RDS, Auroa - great for joins
o NoSQL Database: Dynamodb (~json), Elasticache(key value/pairs), Neptune (graph) - no joins,
no SQL
o Object Store:
S3 (for big objects) / Glacier (for backups /archives)
o Data Warehouse:
(=SQL Analytics /BI ), Redshift (OLAP), Athena
o Graphs: Neptune -
displays reationship between data