Lago de datos frente a almacén de datos

Hola a todos, en este número, Jesse quiere romper con el campo de TSDB y hablar sobre el tema de los lagos de datos y los almacenes de datos. Como un extraño, Jesse también quiere dar una introducción general a los dos. 

Este artículo solo representa opiniones personales, si hay algún sesgo, por favor, perdóname~

Hace 20 años, el almacenamiento de datos no era la tecnología más avanzada de la industria. Ha habido barreras entre los datos durante mucho tiempo, y los flujos de trabajo de datos aislados son comunes. La mayoría de las empresas son clústeres informáticos locales, y las tareas entre empresas solo están asociadas de forma limitada. Hoy en día, con el auge del análisis basado en datos, los equipos de datos multifuncionales y la nube, se acuñan los términos "almacén de datos moderno" y lagos de datos. En muchos sentidos, la nube hace que los datos sean más fáciles de administrar, accesibles para una gama más amplia de usuarios y más rápidos de procesar. Sin una discusión entre el lago de datos y el almacén de datos, las empresas no pueden usar los datos de manera significativa. Sin embargo, cuando se trata de elegir entre un lago de datos o un almacén de datos, la respuesta no es fácil. Con el lanzamiento de Amazon Redshift en 2013 y el lanzamiento de Snowflake, Google BigQuery, etc. en los años siguientes, el mercado se ha vuelto cada vez más popular. Agregue un lago de datos como S3 o Databricks a la mezcla y la decisión entre el lago de datos y el almacén de datos se vuelve más difícil. 

¿Qué son los almacenes de datos y los lagos de datos?

Un almacén de datos es un depósito de datos que proporciona almacenamiento y computación de datos, normalmente utilizando consultas SQL para casos de uso de análisis de datos. Un lago de datos es un depósito de datos que proporciona almacenamiento y computación para datos estructurados y no estructurados, generalmente para casos de uso de transmisión, aprendizaje automático o ciencia de datos.

Similitudes y diferencias entre data lake y data warehouse

Tanto los lagos de datos como los almacenes de datos son repositorios de datos. Las 3 diferencias principales entre un almacén de datos y un lago de datos son cómo proporcionan almacenamiento, metadatos y potencia informática. 

Almacenamiento: el almacenamiento se refiere a la forma en que los almacenes de datos y los lagos de datos almacenan todos los registros presentes en todas las tablas. Al utilizar varias tecnologías de almacenamiento y formatos de datos, los almacenes de datos y los lagos de datos pueden servir a una amplia gama de casos de uso con las características de rendimiento y costo requeridas. Tradicionalmente, los lagos de datos almacenan datos estructurados, semiestructurados y no estructurados sin procesar de forma indefinida, mientras que los almacenes de datos almacenan datos y sus metadatos correspondientes de forma ordenada. Estas diferencias convergieron con el tiempo cuando Databricks permitió a los usuarios agregar estructura y metadatos a través de Unity Catalog y Delta Lake, mientras que Snowflake introdujo tablas Apache Iceberg para brindar la confiabilidad y simplicidad de las tablas SQL, al tiempo que habilitaba motores Apache como Spark, Trino, Apache Flink. , Presto y Hive pueden usar con seguridad las mismas tablas al mismo tiempo.

Metadatos: los almacenes de datos y los lagos de datos a menudo brindan una forma de administrar y rastrear todas las bases de datos, esquemas y tablas que creamos. Estos objetos a menudo van acompañados de información adicional, como el esquema, el tipo de datos, la descripción generada por el usuario e incluso la actualización y otras estadísticas sobre los datos. 

Computación: la computación se refiere a la forma en que un almacén de datos o un lago de datos realiza cálculos en los registros de datos que almacena. Este motor permite a los usuarios "consultar" datos, ingerir datos y transformar datos. Normalmente, estos cálculos se expresan a través de SQL. Esta es otra área donde los lagos de datos se superponen con los almacenes de datos. El Snowpark de Snowflake admite varios lenguajes de programación, como Java, Python o Scala, que luego se ejecutan como funciones SQL. Más tarde, también lanzaron Snowpark Python, una experiencia nativa de Python con pandas y una API similar a PySpark para la manipulación de datos sin tener que escribir largos SQL. Por otro lado, Spark SQL puede ayudar a convertir lenguajes como Python, R y Scala en comandos SQL.

¿Por qué necesita un almacén de datos?

Los almacenes de datos son soluciones completamente integradas y administradas, lo que las hace fáciles de construir y usar de inmediato. Cuando se utiliza un almacén de datos, las empresas suelen utilizar metadatos, almacenamiento y computación en una única solución creada y operada por un único proveedor. En la discusión entre el lago de datos y el almacén de datos, tenga en cuenta que los almacenes de datos generalmente requieren más estructura y esquema, lo que a menudo exige una mejor higiene de los datos y una menor complejidad al leer y usar los datos. Con su funcionalidad preempaquetada y su sólido soporte para SQL, los almacenes de datos facilitan consultas rápidas y procesables, lo que los hace ideales para los equipos de análisis de datos. 

Por qué necesita un lago de datos

En el debate entre el lago de datos y el almacén de datos, un lago de datos es la versión de bricolaje de un almacén de datos, lo que permite a los equipos de ingeniería de datos elegir las diversas tecnologías de metadatos, almacenamiento y computación que desean usar con sus sistemas. Los lagos de datos son excelentes para los equipos de datos y los científicos de datos que buscan crear una plataforma más personalizada, a menudo respaldada por un puñado (o más) de ingenieros de datos.

Algunas características comunes de los lagos de datos incluyen:

(1) Desacoplamiento del almacenamiento y la computación: esta característica no solo ahorra muchos costos, sino que también ayuda a analizar y enriquecer los datos para la transmisión y consulta en tiempo real.

(2) Compatibilidad con computación distribuida: la computación distribuida ayuda a respaldar el rendimiento del procesamiento de datos a gran escala porque permite un mejor rendimiento de consultas segmentadas, diseños más tolerantes a fallas y un procesamiento de datos paralelo superior.

(3) Personalización e interoperabilidad: debido a su naturaleza "plug-and-play", los lagos de datos respaldan la escalabilidad de las plataformas de datos, y los diferentes elementos de la pila pueden trabajar juntos fácilmente a medida que las necesidades de datos de la empresa se desarrollan y maduran.

(4) Basado principalmente en tecnología de código abierto: esto ayuda a reducir el bloqueo de proveedores y brinda una excelente personalización, lo cual es muy efectivo para empresas con grandes equipos de ingeniería de datos.

(5) La capacidad de procesar datos no estructurados o débilmente estructurados: los lagos de datos pueden admitir datos sin procesar, lo que significa que tiene más flexibilidad en el procesamiento de datos, lo cual es muy adecuado para científicos e ingenieros de datos. Trabajar con datos sin procesar le brinda más control sobre las agregaciones y los cálculos.

(6) Admite modelos de programación complejos que no sean SQL: esta es una diferencia entre los lagos de datos y los almacenes de datos. A diferencia de la mayoría de los almacenes de datos, los lagos de datos admiten Apache Hadoop, Apache Spark, PySpark y otros marcos para la ciencia de datos avanzada y el aprendizaje automático.

¿Cuál es la integración de lago y almacén?

La decisión entre un lago de datos o un almacén de datos es bastante difícil, pero ha surgido una alternativa, especialmente entre los equipos de ingeniería de datos. Es una solución que combina capacidades de almacenamiento de datos y lago de datos, combinando técnicas tradicionales de análisis de datos con técnicas creadas para computación más avanzada, como el aprendizaje automático. La integración de Lake-warehouse surgió por primera vez cuando los proveedores de almacenamiento en la nube comenzaron a agregar funciones que ofrecían beneficios similares a los de Lake, como Redshift Spectrum o Delta Lake. Del mismo modo, los lagos de datos han estado agregando tecnologías que brindan capacidades similares a las de un almacén, como funciones y esquemas SQL. Hoy en día, la diferencia entre un lago de datos y un almacén se está reduciendo.

como escoger

La elección del lago de datos y el almacén de datos no es una respuesta fácil. Independientemente de lo que elijamos en nuestra decisión de lago de datos o almacén de datos, aquí hay algunas reglas que deben seguirse:

(1) Seleccione la solución adecuada correspondiente a los objetivos de datos de la empresa. Crear un lago de datos desde cero puede no tener sentido en términos de tiempo y recursos si una empresa solo usa regularmente una o dos fuentes de datos clave en unos pocos flujos de trabajo. Sin embargo, si la empresa está tratando de usar datos para informar todo lo que hay bajo el sol, la solución todo en uno puede proporcionar conocimientos prácticos rápidos y prácticos para los usuarios en todos los roles.

(2) Comprender quiénes son los usuarios principales. ¿El usuario principal de la plataforma de datos de la empresa es el equipo de inteligencia comercial, distribuido en varias funciones diferentes? ¿Qué tal un equipo dedicado de ingenieros de datos? ¿O grupos de científicos de datos que realizan pruebas A/B en varios conjuntos de datos?

(3) Observabilidad de los datos. Almacén de datos, lago de datos, lago de almacén: las tres soluciones (y cualquier combinación de ellas) requieren un enfoque holístico para el gobierno y la calidad de los datos. Después de todo, no importa qué tan avanzada sea nuestra canalización si los datos se dañan, se pierden o son inexactos. Algunos de los mejores equipos de datos están aprovechando la observabilidad de los datos, un enfoque integral para monitorear y alertar sobre problemas en las canalizaciones de datos. En resumen, la elección del almacén de datos y el lago de datos no es tanto una cuestión de elegir una herramienta u otra como elegir la herramienta adecuada para el trabajo.

Habiendo dicho tanto, volvamos al escenario de la base de datos de series temporales. ¿Se ingresarán datos de series temporales en un lago de datos en el futuro, y luego se agregarán y correlacionarán varios lagos de datos para realizar consultas en el almacén de datos? Por ejemplo: "La coexistencia de múltiples sistemas es una arquitectura relativamente común en las empresas, como un lago de datos, además de varios almacenes de datos y otros sistemas especializados, como transmisión, series temporales, bases de datos de gráficos e imágenes, etc.". hora de dar respuesta.

Introducción a CnosDB

CnosDB es una base de datos de series temporales distribuidas de código abierto con alto rendimiento y alta usabilidad, que se lanzó oficialmente y es completamente de código abierto.

Bienvenido a prestar atención a nuestro almacén de códigos, haga clic en tres enlaces: https://github.com/cnosdb/cnosdb

Supongo que te gusta

Origin blog.csdn.net/CnosDB/article/details/126814670
Recomendado
Clasificación