Cómo elegir un almacén de datos para la próxima novedad brillante
Publicado: 2018-01-26Nota: Esta es una publicación de blog técnica escrita por la ingeniera principal Silvia Botros y apareció por primera vez en el blog de Sysadvent el 25 de diciembre de 2017.
Las bases de datos pueden ser difíciles. ¿Sabes qué es más difícil? Elegir uno en primer lugar. Esto es un desafío, ya sea que se encuentre en una empresa nueva que todavía está encontrando su producto/mercado adecuado o en una empresa que ha encontrado su audiencia y simplemente está ampliando la oferta de productos.
Al construir algo nuevo, una de las primeras partes de ese proceso de diseño es qué almacenamientos de datos debemos usar y ¿debería ser uno solo o plural? ¿Deberíamos usar almacenes relacionales o debemos elegir un almacén de valor clave? ¿Qué pasa con las opciones de tiempo? ¿Deberíamos agregar también alguna repetición de registros distribuidos?
Entonces. Muchos. Opciones…
Intentaré en este artículo describir un proceso que, con suerte, guiará esa decisión y, cuando corresponda, explicaré cómo el tamaño y la madurez de su organización pueden afectar esta decisión.
Requisitos de referencia
Los datos son el alma de cualquier producto. Incluso si estamos planeando en el diseño usar tecnología más avanzada para almacenar el estado de la aplicación (porque MySQL o Postgres ya no son "geniales"), lo que elijamos sigue siendo un almacén de datos y, por lo tanto, requiere que apliquemos rigor cuando haciendo nuestra selección.
Lo importante a recordar es que nada es gratis. Todos los almacenes de datos conllevan compromisos y, si no es explícito sobre los compromisos que está tomando como un riesgo comercial, estará tomando un riesgo desconocido que se mostrará en el peor momento posible.
Es poco probable que su gerente de producto sepa o incluso deba preocuparse por lo que usa para su almacén de datos, pero impulsará las necesidades que reducen la lista de opciones. Sin embargo, a veces incluso eso necesita un empujón por parte del equipo de desarrollo. Aquí hay una lista de cosas que necesita preguntarle al equipo de producto para ayudarlo a impulsar sus opciones:
- Tasa de crecimiento: ¿Cómo se espera que cambien los datos en sí mismos o el acceso a ellos con el tiempo?
- ¿Cómo utilizará el equipo de facturación estos nuevos datos?
- ¿Cómo utilizará el equipo de ETL estos datos?
- ¿Qué requisitos de precisión/coherencia se esperan para esta nueva función?
- ¿Qué lapso de tiempo para esa consistencia es aceptable? ¿Es aceptable la corrección posterior al procesamiento?
Encuentra el contexto que no se dice
La elección del almacén de datos no es una elección reservada para el DBA o el equipo de operaciones, o incluso solo para el ingeniero que escribe el código.
Las organizaciones maduras con un mercado direccionable conocido deben tomar una decisión de las partes interesadas de toda la organización.
Si los requisitos del equipo del producto se ajustan a una docena de almacenes de datos, ¿cómo determina los requisitos que no se mencionan explícitamente?
Debe hacer surgir los requisitos tácitos lo antes posible porque es el camino hacia las expectativas fallidas en el futuro.
Muchas cosas implícitas pueden hacer que falles en esta trampa de 'demasiadas opciones'. Esto incluye pero no se limita a:
- Listas de características incompletas
- Requisitos de rendimiento que no se enumeran explícitamente
- Necesidades de consistencia que se asumen
- Tasa de crecimiento que no se especifica
- Necesidades de consulta de facturación o ETL que aún no están disponibles/conocidas
Todas estas son formas posibles que pueden hacer que un equipo de ingeniería haga girar sus ruedas durante demasiado tiempo examinando una larga lista de opciones de almacenamiento de datos simplemente porque los criterios explícitos con los que están trabajando son demasiado permisivos o incompletos.
Para más productos 'greenfield', como mencioné antes, su objetivo es la flexibilidad. Por lo tanto, un almacén de datos de propósito más general y de calidad conocida lo ayudará a acercarse a un entregable, con el conocimiento de que, en el futuro, es posible que deba pasar a un almacén de datos que sea más adecuado para su nueva escala.
Haz tu lista
Es hora de filtrar las soluciones potenciales por su lista de requisitos. La lista resultante no debe ser más que un puñado de posibles almacenes de datos. Si la lista de posibles bases de datos que puede usar es más que eso, entonces sus requisitos son demasiado permisivos y necesita volver atrás y obtener más información.
Para las empresas más jóvenes y menos maduras, los requisitos del almacén de datos son el área de mayor incógnita. Es posible que esté creando algo nuevo que nadie ofrece todavía, por lo que cosas como el tamaño total del mercado direccionable y la tasa de crecimiento pueden ser relativamente desconocidos y difíciles de cuantificar.
En este caso, lo que necesita es no limitarse demasiado pronto en la vida útil de su nueva empresa mediante el uso de un almacén de datos pony de un solo truco. Sí, en algún momento sus datos crecerán de maneras nuevas e inesperadas, pero lo que necesita en este momento es flexibilidad a medida que intenta encontrar su nicho de mercado y aprender cómo será el crecimiento de sus datos y qué características específicas de escalabilidad serán cruciales para tu crecimiento
Si es una empresa más grande con un número creciente de clientes que pagan, su tarea aquí es reducir la lista de opciones para almacenar preferentemente los datos que ya tiene y mantiene. Cuando ya tiene muchos clientes que pagan, el riesgo de agregar nuevos almacenes de datos con los que su equipo no está familiarizado se vuelve mayor y, según el contexto de los datos, simplemente inaceptable.
Otra cosa a tener en cuenta es qué herramientas ya existen para los almacenes de datos y qué significaría adoptar una nueva en cuanto al trabajo inicial que debe hacer su equipo. Gestión de la configuración, scripts de copia de seguridad, scripts de recuperación de datos, nuevas comprobaciones de supervisión, nuevos paneles para crear y familiarizarse con ellos. La lista de costos operativos de un nuevo almacén de datos, independientemente del riesgo, no es trivial.
Elige tu veneno
Así que aquí hay un secreto mal guardado al que se aferran los administradores de bases de datos. Las bases de datos son terribles en algo. Incluso hay todo un teorema sobre eso. No solo las bases de datos en el sentido tradicional, sino cualquier tecnología que almacene el estado será horrible de una manera única en la forma en que la use.
Eso es solo un hecho de la vida que es mejor que internalices ahora. No, no estoy diciendo que deba evitar el uso de ninguna de estas tecnologías, estoy diciendo que mantenga sus expectativas cuerdas y sepa que USTED y solo usted y su equipo finalmente son responsables de cumplir las promesas que hace.
¿Qué significa esto en términos no abstractos? Una vez que tenga una idea sólida de qué almacenes de datos formarán parte de lo que está construyendo, debe comenzar por conocer las debilidades de estos almacenes de datos. Estas debilidades incluyen pero no se limitan a:
- ¿Funciona bien este almacén de datos en las consultas de exploración?
- ¿Este almacén de datos se basa en un protocolo de chismes para la replicación de datos? si es así, ¿cómo maneja las particiones de red? ¿Cuántos datos están involucrados en ese chisme?
- ¿Este almacén de datos tiene un único punto de falla?
- ¿Qué tan maduros son los conductores en la comunidad para hablar con ellos o necesitas rodar por tu cuenta?
- Esta lista puede ser enorme
Pensar en las debilidades de las posibles soluciones que aún están en su lista debería eliminar más opciones de la lista. Esta es ahora la realidad que cumple con las elevadas promesas de la tecnología.
¡Hoja de cálculo y hornear!
Una vez que su lista de opciones se reduce a un pequeño puñado, es hora de ponerlas todas en una hoja de cálculo y comenzar a profundizar un poco más. Necesita una columna de pros y una columna de contras y, en este punto, deberá dedicar algún tiempo a la documentación de cada base de datos para descubrir detalles esenciales sobre cómo realizar ciertas tareas.
Si se trata de datos que espera que tengan una gran tasa de crecimiento, necesita saber cuál de estas opciones es más fácil de escalar. Si esta es una característica que hace muchas búsquedas difusas, necesita saber qué almacén de datos puede manejar mejor los escaneos o la búsqueda a través de una gran cantidad de filas y con qué diseño. El objetivo en esta etapa es reducir la lista a 2 o 3 opciones idealmente solo a través de la documentación porque si esta nueva característica es lo suficientemente crítica para el éxito de la empresa, tendrá que comparar las tres.
¿Por qué punto de referencia dices? Porque no hay dos empresas que utilicen el mismo almacén de datos de la misma manera. Porque a veces la documentación implica advertencias que solo quedan expuestas en las historias de guerra de otras personas.
Porque nadie posee la estabilidad, la confiabilidad y la previsibilidad de este almacén de datos excepto usted.
Diseñe su punto de referencia por adelantado. Idealmente, configura una instancia completa de los almacenes de datos en su lista con especificaciones de nivel de producción y produce datos de prueba que no son demasiado pequeños para que las pruebas de carga sean inútiles. Asegúrese no solo de comparar la 'carga normal', sino también de probar algunos escenarios de falla.
La esperanza es que a través del punto de referencia, pueda encontrar cualquier advertencia que sea lo suficientemente grave como para hacer que vuelva a visitar la lista de opciones ahora en lugar de más tarde cuando todo el código esté escrito y ahora esté en la fase de simulacro de incendio con mucho tiempo. y esfuerzo comprometido con la elección que hiciste.
Documente su elección
No importa lo que haga, debe documentar y difundir internamente el método por el cual llegó a su elección y las alternativas que se investigaron en el camino a esa decisión. Suponiendo que exista un modelo de arquitectura general de cómo se creará esta nueva función y todos sus componentes, asegúrese de crear una sección dedicada al almacén de datos que impulsa esta nueva función con enlaces a todos los puntos de referencia realizados para llegar a la decisión a la que llegó el equipo. .
Esto no es solo para el beneficio de futuras nuevas contrataciones, sino también para el beneficio de su equipo ahora. Un documento que las personas pueden leer de forma asincrónica y desarrollar opiniones proporciona una manera de mantener el proceso de decisión transparente, aumentar la sensación de mejores intenciones entre los miembros del equipo y puede generar críticas desde perspectivas que no había previsto.
comida para llevar
Estos pasos no solo conducirán a decisiones basadas en datos al hacer crecer la oferta comercial, sino que también conducirán a una infraestructura sólida y un enfoque más disciplinado sobre cuándo y dónde utiliza un campo cada vez mayor de tecnologías para proporcionar valor a sus pagos. clientes.