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