Schema-on-Read es un patrón de diseño de bases de datos y sistemas de almacenamiento que difiere del tradicional Schema-on-Write. En lugar de imponer un esquema rígido y predefinido a los datos antes de su ingestión (como en las bases de datos relacionales), Schema-on-Read permite almacenar datos en su formato original, a menudo semiestructurado o no estructurado. El esquema se infiere, se aplica o se construye dinámicamente en el momento en que los datos son consultados o leídos, adaptándose a las necesidades específicas de la aplicación o el análisis en ese instante.

Este enfoque es fundamental en muchos sistemas de 'Big Data' y bases de datos NoSQL. Ejemplos concretos incluyen: Apache Hive, que permite consultar datos almacenados en HDFS (a menudo en formatos como Parquet, ORC o CSV) utilizando SQL, aplicando el esquema en tiempo de consulta; Apache Spark, especialmente con DataFrames y Spark SQL, donde los datos pueden cargarse sin un esquema predefinido y este se infiere o se especifica al momento de la lectura; y bases de datos documentales como MongoDB, donde los documentos pueden tener estructuras variadas y el esquema es flexible, permitiendo la evolución de los datos sin migraciones de esquema costosas.

Para un arquitecto, Schema-on-Read es crucial porque ofrece una flexibilidad significativa y agilidad en el manejo de datos, especialmente en entornos donde la estructura de los datos puede evolucionar rápidamente o es inherentemente heterogénea. Permite una ingesta de datos más rápida y menos restrictiva, lo que es vital para data lakes y sistemas de streaming. Sin embargo, los trade-offs incluyen una mayor complejidad en el lado de la lectura (ya que cada consulta debe 'entender' la estructura de los datos), posibles problemas de rendimiento si el esquema es muy complejo de inferir o aplicar, y la necesidad de herramientas de gobernanza de datos robustas para evitar la 'anarquía de datos' y asegurar la calidad y consistencia de la información al momento de la consulta.