Explicación detallada del lago de datos del almacén de datos y la integración del lago y el almacén

Recibe buenos artículos más rápido que otros

Con el surgimiento del concepto de lagos de datos en los últimos años, la industria ha estado comparando e incluso discutiendo sobre almacenes de datos y lagos de datos. Algunas personas dicen que el lago de datos es la plataforma de big data de próxima generación, y los principales proveedores de la nube también están proponiendo sus propias soluciones de lago de datos.Algunos productos de almacenamiento de datos en la nube también han agregado la función de vinculación con el lago de datos.

Pero, ¿cuál es la diferencia entre un almacén de datos y un lago de datos?¿Es una disputa de ruta técnica? ¿Es una batalla de gestión de datos? ¿Son los dos incompatibles o pueden coexistir armoniosamente o incluso complementarse?

El autor de este artículo es del departamento de plataforma informática de Alibaba y ha estado profundamente involucrado en la construcción de la plataforma intermedia de big data/datos de Alibaba.Desde una perspectiva histórica, analizará en profundidad los entresijos de los lagos de datos y los almacenes de datos. y explique la nueva dirección de la integración y la evolución de los dos: la integración del almacén del lago y una introducción a la solución de integración del almacén del lago basada en Alibaba Cloud MaxCompute/EMR DataLake.

01 Cambios y transformaciones en el campo del big data en los últimos 20 años

1.1 Resumen

Han pasado 20 años desde que el campo del big data se desarrolló desde principios de este siglo hasta el presente. Observando la ley del desarrollo desde un nivel macro, se puede resumir en los siguientes cinco aspectos:

1. Los datos mantienen un rápido crecimiento : desde la perspectiva de los elementos centrales de 5V, el campo de los grandes datos mantiene un rápido crecimiento. La economía de Alibaba, como una empresa que usa mucho y se enfoca en el desarrollo de big data, ha mantenido un crecimiento de alta velocidad en el tamaño de los datos en los últimos cinco años (60%-80% anualizado), y la tasa de crecimiento continuará en el futuro previsible. Para las empresas emergentes, el campo de los grandes datos está creciendo más de un 200 % al año.

2. Big data ha sido ampliamente reconocido como un nuevo factor de producción : la migración del posicionamiento de valor en el campo de big data, de "exploración" a "inclusividad", se ha convertido en el departamento central de cada empresa/gobierno y lleva a cabo tareas clave. . Aún tomando Alibaba como ejemplo, el 30% de los empleados envían directamente trabajos de big data. A medida que la inclusión de big data ingresa al entorno de producción, se mejoran los productos de nivel empresarial, como la confiabilidad, la seguridad, las capacidades de administración y control y la facilidad de uso.

3. Las capacidades de gestión de datos se han convertido en un nuevo enfoque : las capacidades de almacenamiento de datos (middle office) se han vuelto populares y cómo hacer un buen uso de los datos se ha convertido en la competitividad central de las empresas.

4. La tecnología de motores ha entrado en un período de convergencia  - con Spark (computación general), Flink (computación de flujo), Hbase (KV), Presto (análisis interactivo), ElasticSearch (búsqueda), Kafka (bus de datos) ocupando gradualmente desde 2010- 2015 En la ecología de código abierto, en los últimos cinco años, los nuevos motores se han vuelto cada vez menos de código abierto, pero cada tecnología de motor ha comenzado a desarrollarse en profundidad (mejor rendimiento, estabilidad del nivel de producción, etc.).

5. Hay dos tendencias en la evolución de la tecnología de plataforma, lago de datos VS almacén de datos : ambas se centran en el almacenamiento y la gestión de datos (tecnología de plataforma), pero en diferentes direcciones.

1.2 Mirando lagos y almacenes desde la perspectiva del desarrollo de tecnología de big data

En primer lugar, el concepto de almacén de datos apareció mucho antes que el lago de datos, que se remonta a la década de 1990, cuando la base de datos era la reina. Por lo tanto, es necesario que aclaremos el tiempo aproximado, el origen y las razones más importantes detrás del surgimiento de estos términos en el contexto de la historia. En general, el desarrollo de la tecnología de procesamiento de datos en el campo de la informática se divide principalmente en cuatro etapas:

1. Fase 1: La era de la base de datos. La base de datos nació por primera vez en la década de 1960, y la base de datos relacional que la gente conoce hoy apareció en la década de 1970, y brilló brillantemente en los siguientes 30 años más o menos, dando lugar a muchas bases de datos relacionales excelentes, como Oracle, SQL Server, MySQL. , PostgresSQL, etc., se convirtieron en una parte indispensable del sistema informático principal en ese momento. En la década de 1990, nació el concepto de almacén de datos.

En este momento, el concepto de almacén de datos se trata más de la metodología de cómo administrar varias instancias de bases de datos en una empresa, pero está limitado por el poder de procesamiento de una base de datos de una sola máquina y el alto precio de las bases de datos de varias máquinas (base de datos secundaria). y subtabla) durante mucho tiempo, en este momento, los almacenes de datos aún están lejos de las empresas y los usuarios comunes. La gente incluso discute cuál es más factible, el almacén de datos (gestión centralizada unificada) o el data mart (gestión centralizada por departamento y campo).

2. Fase 2: El "período de exploración" de la tecnología de big data. El tiempo ha entrado alrededor de 2000. Con la explosión de Internet, miles de millones o decenas de miles de millones de páginas y clics masivos de usuarios han abierto una nueva era de rápido aumento en la cantidad de datos globales.

Las soluciones de bases de datos tradicionales ya no pueden proporcionar potencia informática a un costo aceptable, las enormes necesidades de procesamiento de datos están comenzando a encontrar avances y la era de los grandes datos ha comenzado a brotar. En 2003, 2004 y 2006, Google publicó sucesivamente tres artículos clásicos (GFS, MapReduce y BigTable) que sentaron las bases para el marco técnico básico de esta era de big data, a saber, almacenamiento distribuido, programación distribuida y modelos informáticos distribuidos.

Luego, casi al mismo tiempo, nació un excelente sistema de tecnología distribuida representado por Google, Microsoft Cosmos y el código abierto Hadoop, que por supuesto también incluye el sistema Feitian de Alibaba. En este momento, la gente está emocionada por buscar la escala del procesamiento de datos, es decir, "grandes" datos, y no hay tiempo libre para debatir si se trata de un almacén de datos o un lago de datos.

3. Etapa tres: el "período de desarrollo" de la tecnología de big data. En la segunda década del siglo XXI, a medida que se invierten más y más recursos en el campo de la computación de big data, la tecnología de big data ha entrado en una etapa de desarrollo vigoroso y el conjunto ha comenzado a cambiar de ser utilizable a ser fácil de usar. .

En lugar de costosos trabajos de MapReduce escritos a mano, han surgido varios motores informáticos expresados ​​en SQL. Estos motores de cómputo están optimizados para diferentes escenarios, pero todos usan el lenguaje SQL con un umbral muy bajo, lo que reduce en gran medida el costo de usar tecnología de big data.El almacén de datos unificado con el que la gente soñaba en la era de las bases de datos finalmente se ha hecho realidad. Varias bases de datos La metodología de los tiempos empieza a asomar cabeza. Durante este período, la ruta técnica comenzó a subdividirse.

Los sistemas integrados como AWS Redshift, Google BigQuery, Snowflake y MaxCompute promovidos por proveedores de la nube se denominan almacenes de datos en la era de los grandes datos. El almacenamiento HDFS abierto representado por el sistema Hadoop de código abierto, el formato de archivo abierto, el servicio de metadatos abiertos y el modo de trabajo colaborativo de múltiples motores (Hive, Presto, Spark, Flink, etc.) han formado el prototipo del lago de datos. . .

4. Etapa 4: "Período de popularización" de la tecnología de big data. En la actualidad, la tecnología de big data ya no es una tecnología de cohetes, sino que ha penetrado en todos los ámbitos de la vida y ha llegado el período de popularización de big data. Los requisitos del mercado para los productos de big data, además de la escala, el rendimiento y la facilidad de uso, plantean requisitos de producción de nivel empresarial más completos, como el costo, la seguridad y la estabilidad.

  • La línea Hadoop de código abierto, el reemplazo iterativo de componentes básicos como motores, metadatos y almacenamiento han entrado en un estado relativamente estable, y la conciencia del público sobre la tecnología de big data de código abierto ha alcanzado un nivel sin precedentes. Por un lado, la conveniencia de la arquitectura abierta ha traído una buena participación de mercado, por otro lado, la arquitectura abierta flexible ha causado que la solución de código abierto encuentre cuellos de botella en la construcción de capacidades de nivel empresarial, especialmente en seguridad de datos, un fuerte control de los derechos de identidad y el gobierno de datos, y la eficiencia de la colaboración es deficiente (como Ranger como componente de control de autoridad, Atlas como componente de gobierno de datos y los motores principales de hoy en día no pueden lograr una cobertura completa). Al mismo tiempo, el desarrollo del propio motor plantea más desafíos a la arquitectura abierta existente.La aparición de diseños de circuito cerrado automático como Delta Lake y Hudi ha provocado un cierto grado de insuficiencia en la base de un conjunto de sistemas de almacenamiento. , un conjunto de metadatos y la colaboración de varios motores.
  • Es AWS el que realmente populariza el concepto de lagos de datos. AWS ha creado un conjunto de soluciones de productos abiertas y colaborativas con S3 como almacenamiento centralizado, Glue como servicio de metadatos y E-MapReduce y Athena como motores. Su apertura es similar al sistema de código abierto, y Lake Formation se lanzó en 2019 para resolver el problema de la confianza de seguridad entre productos. Aunque esta arquitectura está lejos de los productos de almacenamiento de datos en la nube relativamente maduros en términos de capacidades de nivel empresarial, sigue siendo muy atractiva para los usuarios de sistemas de tecnología de código abierto porque la arquitectura es similar y fácil de entender. Después de AWS, varios proveedores de la nube también siguieron el concepto de lagos de datos y proporcionaron soluciones de productos similares en sus propios servicios en la nube.
  • Los productos de almacenamiento de datos promovidos principalmente por los proveedores de la nube se han desarrollado bien y las capacidades básicas de los almacenes de datos han seguido aumentando. El rendimiento y el costo se han mejorado considerablemente (MaxCompute ha completado una actualización integral del motor central y el rendimiento a pasos agigantados, actualizando el récord mundial TPCx-BigBench durante tres años consecutivos), y las capacidades de administración de datos se han mejorado sin precedentes (teoría de modelado del centro de datos , almacenamiento de datos inteligente), las capacidades de seguridad de nivel empresarial son muy prósperas (admiten múltiples modelos de autorización, como autorización detallada a nivel de columna basada en ACL y basada en reglas, computación confiable, cifrado de almacenamiento, desensibilización de datos, etc.), y se han realizado mejoras generales en la computación federada. Hasta cierto punto, los datos almacenados en el propio almacén que no es de datos han comenzado a incluirse en la gestión, y el límite con el lago de datos se ha vuelto cada vez más borroso.

En resumen, el almacén de datos es un concepto que nació en la era de las bases de datos. En la era de los grandes datos, floreció con varios servicios de almacén de datos de los proveedores de la nube. En la actualidad, generalmente se refiere a los servicios integrados basados ​​en tecnología de grandes datos proporcionados por proveedores de la nube. El lago de datos nace del diseño abierto del sistema de tecnología de código abierto en la era de los grandes datos Después de la integración y la publicidad de AWS, generalmente consiste en una serie de productos en la nube o componentes de código abierto para formar una solución de grandes datos.

02 ¿Qué es un lago de datos?

En los últimos años, el concepto de lagos de datos ha sido muy popular, pero la definición de lagos de datos no es uniforme. Veamos primero las definiciones relevantes de lagos de datos.

Definición de Wikipedia de un lago de datos:

Un lago de datos es un sistema que almacena datos en un formato natural, como archivos o objetos binarios grandes. Por lo general, almacena todos los datos de la empresa de manera unificada, incluida la copia original en el sistema de origen y los datos transformados, como los que se utilizan para informes, visualización, análisis de datos y aprendizaje automático. Los lagos de datos pueden incluir datos estructurados de bases de datos relacionales (filas y columnas), datos semiestructurados (CSV, registros, XML, JSON), datos no estructurados (correo electrónico, archivos, PDF) y datos binarios (imágenes, audio, video). Las formas de almacenar lagos de datos incluyen el sistema de archivos distribuido Apache Hadoop, Azure Data Lake o los servicios de almacenamiento en la nube de Amazon Cloud Lake Formation, y soluciones como Alluxio Virtual Data Lake. Un pantano de datos es un lago de datos degradado que es inaccesible para los usuarios o de poco valor.

La definición de AWS es relativamente sucinta:

Un lago de datos es un repositorio centralizado que le permite almacenar todos los datos estructurados y no estructurados a cualquier escala. Puede almacenar datos tal cual (sin estructurarlos primero) y ejecutar diferentes tipos de análisis, desde tableros y visualizaciones hasta procesamiento de big data, análisis en tiempo real y aprendizaje automático para guiar una mejor toma de decisiones.

Otros proveedores de nube, como Azure, también tienen sus propias definiciones, por lo que este artículo no las repetirá.

Pero no importa cuán diferente sea la definición de lago de datos, la esencia del lago de datos en realidad incluye las siguientes cuatro partes:

1. Sistema de almacenamiento unificado

2. Almacenar datos sin procesar

3. Ricos modelos/paradigmas computacionales

4. El lago de datos no tiene nada que ver con ir a la nube

A juzgar por los cuatro estándares anteriores, el sistema de almacenamiento Hadoop HDFS para big data de código abierto es una arquitectura de lago de datos estándar con una arquitectura de almacenamiento de datos original unificada. El lago de datos, que se ha discutido ampliamente recientemente, es en realidad un concepto limitado, que se refiere específicamente a "un sistema de lago de datos basado en un sistema de almacenamiento alojado en la nube y un sistema que separa el almacenamiento de la informática en términos de arquitectura". Por ejemplo, un lago de datos basado en el sistema AWS S3 o el sistema Alibaba Cloud OSS. 

La siguiente figura muestra el proceso de evolución de la arquitectura técnica del lago de datos, que en su conjunto se puede dividir en tres etapas:

1. Fase 1: arquitectura de lago de datos Hadoop de código abierto autoconstruida, los datos originales se almacenan uniformemente en el sistema HDFS, el motor se basa principalmente en la ecología de código abierto de Hadoop y Spark, y el almacenamiento y la informática están integrados. La desventaja es que las empresas necesitan operar, mantener y administrar todo el clúster por sí mismas, lo cual es costoso y tiene poca estabilidad en el clúster.

2. Fase 2: la arquitectura del lago de datos de Hadoop alojada en la nube (es decir, el lago de datos de código abierto de EMR), los servidores físicos subyacentes y las versiones de software de código abierto son proporcionados y administrados por los proveedores de la nube, y los datos aún se almacenan uniformemente en el Sistema HDFS El motor se basa en la ecología de código abierto Hadoop y Spark Principalmente.

Esta arquitectura mejora la flexibilidad y la estabilidad del nivel de la máquina a través de la capa IaaS en la nube, lo que reduce el costo general de operación y mantenimiento de la empresa, pero la empresa aún necesita administrar y controlar el estado de ejecución del servicio y el sistema HDFS, es decir , la operación y mantenimiento de la capa de aplicación Trabajo. Al mismo tiempo, debido a que el almacenamiento y la computación están acoplados, la estabilidad no es óptima, los dos recursos no se pueden expandir de forma independiente y el costo de uso no es óptimo.

3. Fase 3: Arquitectura del lago de datos en la nube, es decir, el sistema de almacenamiento puramente administrado en la nube reemplaza gradualmente a HDFS y se convierte en la infraestructura de almacenamiento del lago de datos, y la riqueza del motor también se expande continuamente. Además de los motores ecológicos de Hadoop y Spark, varios proveedores de nube también han desarrollado productos de motor para lagos de datos.

Por ejemplo, los motores de lago de datos para análisis incluyen AWS Athena y Huawei DLI, y AWS Sagemaker para IA. Esta arquitectura aún mantiene las características de un almacenamiento y múltiples motores, por lo que el servicio de metadatos unificados es muy importante.Por ejemplo, AWS lanzó Glue y Alibaba Cloud EMR pronto lanzará el servicio de metadatos unificados de lago de datos. Las ventajas de esta arquitectura sobre la arquitectura del lago de datos HDFS nativo son:

  • Ayude a los usuarios a deshacerse del difícil problema de la operación y el mantenimiento del sistema HDFS nativo. Hay dos dificultades en la operación y mantenimiento del sistema HDFS: 1) En comparación con el motor de cómputo, el sistema de almacenamiento tiene mayores requisitos de estabilidad y mayores riesgos de operación y mantenimiento; La arquitectura de separación de computación y almacenamiento ayuda a los usuarios a desacoplar el almacenamiento y lo transfiere a los proveedores de la nube para una gestión unificada de la operación y el mantenimiento, lo que resuelve los problemas de estabilidad y operación y mantenimiento.
  • El sistema de almacenamiento separado se puede expandir de forma independiente, ya no es necesario combinarlo con la informática, lo que puede reducir el costo general
  • Una vez que el usuario adopta la arquitectura del lago de datos, también ayuda objetivamente al cliente a completar la unificación del almacenamiento (resolver el problema de múltiples islas de datos HDFS)

La siguiente figura es el diagrama de arquitectura del lago de datos Alibaba Cloud EMR. Es una gran plataforma de datos basada en la ecología de código abierto. Admite tanto el lago de datos de código abierto de HDFS como el lago de datos en la nube de OSS.

Figura 4. Arquitectura del lago de datos EMR en la nube de Alibaba

Las empresas utilizan la tecnología de lago de datos para crear una gran plataforma de datos, que incluye principalmente acceso a datos, almacenamiento de datos, cálculo y análisis, gestión de datos, control de autoridad, etc. La siguiente figura es una arquitectura de referencia definida por Gartner. Debido a la flexibilidad y apertura de la tecnología de lago de datos actual, no está muy madura en términos de eficiencia de rendimiento, control de seguridad y gobierno de datos, y aún existen grandes desafíos en lo que respecta a los requisitos de producción a nivel empresarial (detallados en el Capítulo 4 elaboración).

03 El nacimiento del data warehouse y su relación con el data center

El concepto de almacén de datos se originó en el campo de la base de datos, y se ocupa principalmente de escenarios complejos de consulta y análisis orientados a datos. Con el desarrollo de la tecnología de big data, se ha tomado prestada una gran cantidad de tecnologías de bases de datos, como el lenguaje SQL, el optimizador de consultas, etc., para formar un almacén de datos de big data, que se ha convertido en la corriente principal debido a sus poderosas capacidades de análisis.

En los últimos años, la combinación de almacén de datos y tecnología nativa de la nube se ha convertido en un almacén de datos en la nube, que resuelve el problema de suministro de recursos para que las empresas implementen almacenes de datos. Como una capacidad de plataforma de alto nivel (nivel empresarial) de big data, el almacén de datos en la nube ha atraído cada vez más atención debido a sus capacidades listas para usar, expansión ilimitada y fácil operación y mantenimiento.

Definición de Wikipedia de un almacén de datos:

En informática, un almacén de datos (también conocido como almacén de datos empresarial) es un sistema para generar informes y analizar datos que se considera un componente central de la inteligencia empresarial. Un almacén de datos es un depósito central de datos integrados de una o más fuentes dispares. Un almacén de datos almacena datos actuales e históricos juntos para crear informes analíticos para los empleados de toda la empresa.

Una explicación más académica es que el almacén de datos fue propuesto por WHInmon, el padre del almacén de datos, en 1990. La estructura de almacenamiento de datos , para un análisis y disposición sistemáticos , con el fin de facilitar varios métodos de análisis, como el procesamiento analítico en línea (OLAP ), extracción de datos (Minería de datos) y soporte adicional, como el sistema de soporte de decisiones (DSS), el sistema de información de supervisión La creación de (EIS) ayuda a los tomadores de decisiones a analizar de manera rápida y efectiva información valiosa de grandes cantidades de datos, facilita la toma de decisiones y responda rápidamente a los cambios en el entorno externo, y ayude a construir inteligencia empresarial (BI).

La esencia de un almacén de datos consta de las siguientes tres partes:

1. El sistema de almacenamiento integrado proporciona datos de forma abstracta (por ejemplo, utilizando Tabla o Vista) y no expone el sistema de archivos.

2. Los datos deben limpiarse y transformarse, generalmente por ETL/ELT

3. Énfasis en el modelado y la gestión de datos para decisiones de inteligencia empresarial.

A juzgar por los criterios anteriores, tanto los almacenes de datos tradicionales (como Teradata) como los sistemas de almacenamiento de datos en la nube emergentes (AWS Redshift, Google BigQuery, Alibaba Cloud MaxCompute) encarnan la esencia del diseño de los almacenes de datos y no exponen los sistemas de archivos al exterior. mundo Es una interfaz de servicio que proporciona entrada y salida de datos.

Por ejemplo, Teradata proporciona la herramienta de importación de datos CLI, Redshift proporciona el comando Copiar para importar datos desde S3 o EMR, BigQuery proporciona el servicio de transferencia de datos, MaxCompute proporciona el servicio de túnel y la herramienta de reubicación MMA para la carga y descarga de datos. Este diseño puede traer varias ventajas:

1. El motor comprende profundamente los datos, y el almacenamiento y el cálculo se pueden optimizar profundamente

2. Gestión completa del ciclo de vida de los datos, sistema de linaje perfecto

3. Gestión y gobierno de datos detallados

4. Capacidades perfectas de gestión de metadatos, fácil de construir una plataforma intermedia de datos de nivel empresarial

Debido a esto, al inicio de la construcción de la plataforma de big data de Alibaba Feitian, se adoptó la arquitectura del almacén de datos al seleccionar el modelo, es decir, la plataforma de big data MaxCompute . MaxCompute (anteriormente ODPS) no es solo la plataforma de big data de la economía de Alibaba, sino también un servicio de computación de big data en línea seguro, confiable, de alta eficiencia y bajo costo en Alibaba Cloud que se escala de gigabytes a exabytes bajo demanda (Figura 6 Es la arquitectura del producto MaxCompute. Para obtener más información, haga clic en la dirección del sitio web oficial de Alibaba Cloud MaxCompute).

Como almacén de datos en la nube de nivel empresarial en el modelo SaaS, MaxCompute se usa ampliamente en la economía de Alibaba, así como en Internet, nuevas finanzas, nuevas ventas minoristas, gobierno digital y otros miles de clientes de Alibaba Cloud.

Figura 6. Arquitectura del producto de almacén de datos en la nube de MaxCompute

Gracias a la estructura del almacén de datos de MaxCompute, las capas superiores de Alibaba han construido gradualmente capacidades de gestión como "sistema de seguridad de datos", "calidad de datos", "gobernanza de datos" y "etiquetado de datos", y finalmente formaron el big data de Alibaba. plataforma intermedia. Se puede decir que como uno de los primeros en proponer el concepto de centro de datos, el centro de datos de Alibaba se benefició de la arquitectura del almacén de datos.

04 Lago de datos VS Almacén de datos

En resumen, el almacén de datos y el lago de datos son dos orientaciones de diseño de la arquitectura de big data. La diferencia fundamental en el diseño entre los dos radica en el control del acceso al sistema de almacenamiento, la gestión de derechos y los requisitos de modelado.

El diseño del lago de datos brinda la máxima flexibilidad a los datos que ingresan al lago al abrir el almacenamiento de archivos subyacente. Los datos que ingresan a un lago de datos pueden ser registros sin procesar estructurados, semiestructurados o incluso completamente desestructurados. Además, el almacenamiento abierto brinda más flexibilidad a los motores de capa superior. Varios motores pueden leer y escribir libremente datos almacenados en el lago de datos de acuerdo con sus propios escenarios, y solo necesitan seguir un acuerdo de compatibilidad bastante amplio (dicho acuerdo flexible será de supuesto tienen peligros ocultos, que se mencionarán más adelante).

Pero al mismo tiempo, el acceso directo al sistema de archivos dificulta la implementación de muchas funciones de alto nivel, por ejemplo, la administración de derechos detallada (más pequeña que la granularidad del archivo), la administración unificada de archivos y las actualizaciones de la interfaz de lectura y escritura son también muy difícil (necesita completar cada La actualización del motor del archivo se considera actualizada).

El diseño de almacén de datos primero se centra más en los requisitos de crecimiento a nivel empresarial, como la eficiencia del uso de datos, la gestión de datos a gran escala y la seguridad/cumplimiento. Los datos ingresan al almacén de datos a través de una interfaz de servicio unificada pero abierta. Los datos generalmente tienen un esquema predefinido y los usuarios acceden a los archivos en el sistema de almacenamiento distribuido a través de la interfaz de servicio de datos o el motor informático.

El diseño de prioridad del almacén de datos abstrae la interfaz de acceso a datos/gestión de autoridad/datos en sí mismos a cambio de un mayor rendimiento (ya sea almacenamiento o computación), un sistema de seguridad de circuito cerrado y capacidades de gobierno de datos. El uso es todo lo que importa, y nosotros llámalo crecimiento.

La flexibilidad y el crecimiento tienen diferente importancia para las empresas en diferentes períodos.

1. Cuando una empresa está en la etapa de puesta en marcha, necesita una etapa de innovación y exploración desde la generación de datos hasta el consumo para asentarse gradualmente. Luego, la flexibilidad del sistema de big data utilizado para respaldar este tipo de negocios es más importante, y la arquitectura del lago de datos es más adecuada.

2. Cuando la empresa madura gradualmente y se ha asentado en una serie de procesos de procesamiento de datos, el problema comienza a transformarse en el crecimiento continuo de la escala de datos, el aumento continuo del costo del procesamiento de datos y el aumento continuo de personal y departamentos que participan en el proceso de datos, luego se utiliza para respaldar este tipo de negocio Para un sistema de big data, la calidad del crecimiento determina hasta dónde puede desarrollarse el negocio. La arquitectura del almacén de datos es más aplicable.

Este artículo ha observado que un número considerable de empresas (especialmente la industria emergente de Internet) han construido pilas de tecnología de big data desde cero, y es con la popularidad del sistema de código abierto Hadoop que han experimentado tal proceso desde la exploración y la innovación hasta modelado maduro. En este proceso, debido a que la arquitectura del lago de datos es demasiado flexible y carece de supervisión de datos, control y los medios de gobierno necesarios, el costo de operación y mantenimiento continúa aumentando y la eficiencia del gobierno de datos disminuye. Las empresas caen en la situación de "pantano de datos". ", es decir, datos. Hay demasiados datos recopilados en el lago, pero es difícil extraer de manera eficiente la parte verdaderamente valiosa.

Al final, solo migrando a una plataforma de big data con un diseño de prioridad de almacenamiento de datos se pueden resolver los problemas de operación y mantenimiento, costo y gobierno de datos que surgen después de que el negocio crece a cierta escala. Tomemos como ejemplo a Alibaba: la exitosa estrategia del centro de datos de Alibaba se completó gradualmente cuando Alibaba Group completó el reemplazo completo de múltiples Hadoop (lagos de datos) por MaxCompute (almacén de datos) alrededor de 2015 (proyecto de aterrizaje en la luna).

 

05 La dirección de la evolución de la próxima generación: integración de lago y almacén

Después de una elaboración y comparación en profundidad de los lagos de datos y los almacenes de datos, este documento cree que los lagos de datos y los almacenes de datos, como dos rutas de evolución diferentes de los sistemas de big data, tienen sus propias ventajas y limitaciones únicas.

Los lagos de datos y los almacenes de datos son fáciles de usar para las empresas emergentes, mientras que el otro es mejor para el crecimiento. Para las empresas, ¿los lagos de datos y los almacenes de datos deben ser una pregunta de opción múltiple? ¿Existe una solución que tenga en cuenta tanto la flexibilidad del lago de datos como el crecimiento del almacenamiento de datos en la nube, y que combine de manera efectiva los dos para lograr un costo total de propiedad más bajo para los usuarios?

La integración de almacenes de datos y lagos de datos también es una tendencia en la industria en los últimos años, y múltiples productos y proyectos han hecho los intentos correspondientes:

1. El almacén de datos admite el acceso al lago de datos

  • En 2017, Redshift lanzó Redshift Spectrum, que permite a los usuarios del almacén de datos de Redshift acceder a los datos del lago de datos S3.
  • En 2018, Alibaba Cloud MaxCompute lanzó la capacidad de apariencia, que admite el acceso a varios almacenamientos externos, incluidas las bases de datos OSS/OTS/RDS.

Sin embargo, ya sea la tabla externa de Redshift Spectrum o MaxCompute, los usuarios todavía necesitan crear una tabla externa en el almacén de datos para incorporar la ruta de almacenamiento abierta del lago de datos en el sistema conceptual del almacén de datos, porque un almacenamiento abierto simple no se puede describir a sí mismo Los datos en sí mismos cambian, por lo que la creación de tablas externas y la adición de particiones para estos datos (esencialmente, la creación de un esquema para los datos en el lago de datos) no se pueden automatizar por completo (requiere la activación manual o periódica de Alter table, agregar partición o msck). Esto es aceptable para consultas temporales de baja frecuencia, pero es algo complicado para uso en producción.

2. El lago de datos admite capacidades de almacenamiento de datos 

  • En 2011, Hortonworks, una empresa de sistemas de código abierto de Hadoop, comenzó el desarrollo de dos proyectos de código abierto, Apache Atlas y Ranger, que corresponden respectivamente a las capacidades centrales de dos almacenes de datos, seguimiento de linaje de datos y seguridad de autoridad de datos. Sin embargo, el desarrollo de los dos proyectos no fue fácil y la incubación no se completó hasta 2017. Hoy, el despliegue en la comunidad y la industria está lejos de ser lo suficientemente activo. La razón principal por la que los lagos de datos son inherentemente flexibles. Por ejemplo, Ranger, como componente para la gestión unificada y segura de los permisos de datos, naturalmente requiere que todos los motores se adapten a él para garantizar que no haya vulnerabilidades de seguridad. Sin embargo, para los motores que enfatizan la flexibilidad en los lagos de datos, especialmente los motores nuevos, la prioridad se dará a la implementación de funciones y escenarios, mientras que no tomar el acoplamiento con Ranger como el primer objetivo prioritario ha hecho que la posición de Ranger en el lago de datos sea muy incómoda.
  • En 2018, Nexflix abrió una versión interna mejorada del sistema de servicio de metadatos Iceberg, que brinda capacidades mejoradas de almacenamiento de datos, incluido MVCC (control de concurrencia de múltiples versiones), pero debido a que el HMS de código abierto se ha convertido en un estándar de facto, la versión de código abierto de Iceberg es compatible como complemento. Y con HMS, la capacidad de gestión del almacén de datos se reduce considerablemente.
  • De 2018 a 2019, Uber y Databricks lanzaron sucesivamente Apache Hudi y DeltaLake, y lanzaron formatos de archivo incrementales para admitir funciones de almacenamiento de datos como Actualizar/Insertar y transacciones. La nueva función provoca cambios en el formato de archivo y la forma organizativa, rompiendo el simple acuerdo sobre almacenamiento compartido entre los múltiples motores originales del lago de datos. Por esta razón, para mantener la compatibilidad, Hudi tuvo que inventar dos tablas, como Copy-On-Write y Merge-On-Read, y tres tipos de consulta de Snapshot Query, Incremental Query y Read Optimized Query, y brindó un soporte matriz (como se muestra en la Figura 10), lo que aumenta considerablemente la complejidad de uso.

DeltaLake optó por garantizar la experiencia de usar Spark como motor de soporte principal, sacrificando relativamente la compatibilidad con otros motores convencionales. Esto ha causado muchas restricciones e inconvenientes para que otros motores accedan a los datos de Delta en el lago de datos. Por ejemplo, si Presto quiere usar la tabla DeltaLake, primero debe usar Spark para crear un archivo de manifiesto y luego crear una tabla externa basada en el manifiesto. Al mismo tiempo, también se debe prestar atención a la actualización de la manifiesto; mientras que Hive necesita usar la tabla DeltaLake con más restricciones, lo que no solo causará confusión a nivel de metadatos, ni siquiera puede escribir en la tabla.

Los intentos mencionados anteriormente de construir almacenes de datos en la arquitectura del lago de datos no tuvieron éxito, lo que demuestra que los almacenes de datos y los lagos de datos son fundamentalmente diferentes, y es difícil construir un almacén de datos completo en el sistema del lago de datos. Es difícil combinar directamente el lago de datos y el almacén de datos en un sistema, por lo que el equipo de autores comenzó a explorar basándose en la idea de integrar los dos.

Por lo tanto, proponemos la dirección de evolución de la próxima generación de tecnología de big data: la integración de lago y almacén, es decir, abrir los dos sistemas de almacén de datos y lago de datos, para que los datos y la computación puedan fluir libremente entre el lago. y almacén, para construir un ecosistema de tecnología de big data orgánico completo.

Creemos que se deben resolver tres problemas clave para construir un lago y un almacén integrados :

1. Los datos/metadatos del lago y el almacén están perfectamente conectados sin intervención manual del usuario

2. Los lagos y los almacenes tienen una experiencia de desarrollo unificada, y los datos almacenados en diferentes sistemas se pueden operar a través de una plataforma de gestión/desarrollo unificada

3. El sistema es responsable del almacenamiento en caché/movimiento automático de los datos en el lago de datos y el almacén de datos. El sistema puede decidir qué datos poner en el almacén de datos y cuáles mantener en el lago de datos de acuerdo con reglas automáticas, formando así un integración

En el próximo capítulo, presentaremos en detalle cómo la solución de almacén de lago integrado de Alibaba Cloud resuelve estos tres problemas.

06 Solución integrada de Alibaba Cloud Lake Warehouse

6.1 Arquitectura general

Basado en la arquitectura original del almacén de datos, Alibaba Cloud MaxCompute integra lagos de datos de código abierto y lagos de datos en la nube, y finalmente realiza la arquitectura general de la integración del almacén del lago (Figura 11).

En esta arquitectura, aunque coexisten varios conjuntos de sistemas de almacenamiento subyacentes, a través de una capa de acceso de almacenamiento unificado y una gestión de metadatos unificada, se proporciona una interfaz de encapsulación integrada al motor de capa superior y los usuarios pueden consultar conjuntamente las tablas en el almacén de datos y los datos. lago. La arquitectura general también tiene capacidades intermedias unificadas, como seguridad de datos, gestión y gobierno.

En respuesta a los tres problemas clave de la integración de lagos y almacenes propuestos en el Capítulo 5, MaxCompute ha implementado los siguientes cuatro puntos técnicos clave.

1. Acceso rápido

  • La nueva tecnología de conexión de red PrivateAccess de creación propia de MaxCompute, bajo la premisa de seguir los estándares de seguridad de la red virtual en la nube, se da cuenta de la capacidad de conectar la orientación laboral específica del usuario y las redes de clúster Hadoop de IDC/ECS/EMR en un modo multiusuario, con bajo Especialidad en latencia y alto ancho de banda exclusivo.
  • Después de pasos de configuración de seguridad y activación rápidos y sencillos, el lago de datos se puede conectar al almacén de datos MaxCompute adquirido.

2. Gestión unificada de datos/metadatos

  • MaxCompute realiza la gestión integrada de metadatos del lago y el almacén, y realiza la conexión perfecta entre los metadatos del lago de datos y el almacén de datos de MaxCompute a través de la tecnología de mapeo con un solo clic de metadatos de base de datos. MaxCompute asigna directamente toda la base de datos en el lago de datos HiveMetaStore a un proyecto de MaxCompute al abrir el formulario para que los usuarios creen proyectos externos. Los cambios en la base de datos de Hive se reflejarán en este proyecto en tiempo real y se puede acceder a través de este proyecto en cualquier momento. en el lado de MaxCompute, calcule los datos en él. Al mismo tiempo, la solución de lago de datos EMR de Alibaba Cloud también lanzará Data Lake Formation, y la solución de integración de almacén de lago MaxCompute también admitirá la capacidad de mapeo con un solo clic del servicio de metadatos unificado en el lago de datos. Varias operaciones en el proyecto externo en el lado de MaxCompute también se reflejarán en el lado de Hive en tiempo real, dándose cuenta realmente del vínculo perfecto entre el almacén de datos y el lago de datos, y eliminando por completo la necesidad de pasos de intervención manual de metadatos similares a los federados. solución de consulta.
  • MaxCompute implementa una capa de acceso al almacenamiento que integra lagos y almacenes. No solo es compatible con sistemas de almacenamiento integrados optimizados, sino que también es compatible sin problemas con sistemas de almacenamiento externos. Admite lagos de datos HDFS y lagos de datos de almacenamiento en la nube OSS, y puede leer y escribir varios formatos de archivo de código abierto.

3. Experiencia de desarrollo unificado

  • La base de datos de Hive en el lago de datos está asignada a un proyecto externo de MaxCompute, que no es diferente de un proyecto normal, y también disfruta de las funciones de desarrollo, seguimiento y administración de datos en el almacén de datos de MaxCompute. Basado en las poderosas capacidades de desarrollo/administración/gobernanza de datos de DataWorks, proporciona una experiencia unificada de desarrollo de almacenes de lagos y reduce los costos de administración de los dos sistemas.
  • MaxCompute es altamente compatible con Hive/Spark y admite un conjunto de tareas para ejecutarse de manera flexible y sin problemas en los dos sistemas de Hucang.
  • Al mismo tiempo, MaxCompute también proporciona una interfaz de canal de datos eficiente, que permite que el motor ecológico de Hadoop en el lago de datos acceda directamente, mejorando la apertura del almacén de datos.

4. Almacén automático

  • La integración de lagos y almacenes requiere que los usuarios coloquen y almacenen razonablemente datos entre lagos y almacenes de acuerdo con su propio uso de activos, a fin de maximizar las ventajas de los lagos y almacenes. MaxCompute ha desarrollado un conjunto de tecnología de almacenamiento en caché inteligente para identificar el calor y la frialdad de los datos en función del análisis de tareas históricas, a fin de utilizar automáticamente el ancho de banda inactivo para almacenar en caché los datos calientes en el lago de datos en el almacén de datos en un archivo eficiente. formato, acelerando aún más el almacén de datos Proceso de procesamiento de datos posterior. No solo resuelve el problema del cuello de botella del ancho de banda entre los almacenes del lago, sino que también logra el propósito de la gestión/gobernanza jerárquica de datos y la aceleración del rendimiento sin la participación del usuario.

6.2 Construya un centro de datos que integre lago y almacén

Basado en la tecnología integrada del lago y el almacén de MaxCompute, DataWorks puede encapsular aún más los dos sistemas del lago y el almacén, proteger la información heterogénea del clúster del lago y el almacén, y construir una plataforma intermedia de big data integrada para realizar un conjunto de datos. y un conjunto de tareas entre el lago y el almacén.Programación y gestión perfectas en Internet.

Las empresas pueden utilizar las capacidades integradas del centro de datos del lago y el almacén para optimizar la estructura de gestión de datos e integrar completamente las ventajas respectivas del lago de datos y el almacén de datos. Utilice lagos de datos como almacenamiento centralizado de datos sin procesar para aprovechar la flexibilidad y la apertura de los lagos de datos.

Además, las tareas y los datos de alta frecuencia orientados a la producción se envían sin problemas al almacén de datos a través de la integración de la tecnología de lago y almacén para obtener un mejor rendimiento y costo, y una serie de optimización y gobierno de datos orientados a la producción posterior permitirán en última instancia empresas para reducir costos.Encuentra el mejor equilibrio entre eficiencia y eficiencia.

En general, MaxCompute proporciona una solución de plataforma de datos más flexible, eficiente y económica para empresas. No solo es adecuado para empresas que crean nuevas plataformas de big data, sino también para empresas con plataformas de big data existentes para actualizar su arquitectura. Puede proteger la inversión existente y realizar el reciclaje de activos.

6.3 Caso típico de un cliente: Sina Weibo usa la "integración de hucang" para construir un centro de cómputo de inteligencia artificial en la nube híbrida

  • fondo del caso

El equipo de la plataforma de aprendizaje automático de Weibo, principalmente haciendo recomendaciones en el campo de las redes sociales. Principalmente haciendo recomendaciones/clasificación, clasificación de texto/imágenes, antispam/anti-trampas y otras tecnologías en el campo de las redes sociales.

La arquitectura técnica gira principalmente en torno a la solución de lago de datos Hadoop de código abierto, un almacenamiento HDFS + múltiples motores informáticos (hive, spark, flink) para satisfacer las necesidades de los escenarios de informática múltiple basados ​​en IA. Sin embargo, Weibo, como la principal aplicación de redes sociales en China, ha entrado en la "tierra de nadie" de código abierto debido a su volumen de negocios y complejidad actuales. La solución de lago de datos de código abierto no puede cumplir con los requisitos de Weibo en términos de rendimiento y costo. .

Con la ayuda de las potentes capacidades de la plataforma de IA y big data Feitian de Alibaba (MaxC+PAI+DW), Weibo resolvió los cuellos de botella de rendimiento de la ingeniería de características, el entrenamiento de modelos y los cálculos matriciales a gran escala, y luego formó la plataforma Alibaba MaxCompute ( MaxCompute Warehouse) + patrón de coexistencia de plataforma de código abierto (lago de datos). 

  • punto de dolor central

Weibo espera utilizar estos dos conjuntos de plataformas heterogéneas de big data no solo para mantener la flexibilidad de diversos datos y computación orientados a la IA, sino también para resolver los problemas de rendimiento/costo de la computación y los algoritmos a gran escala. Sin embargo, debido a que las dos grandes plataformas de datos están completamente separadas a nivel de clúster, los datos y la informática no pueden fluir libremente entre las dos plataformas, lo que aumenta de manera invisible una gran cantidad de costos, como el movimiento de datos y el desarrollo informático, lo que a su vez restringe el desarrollo empresarial.

Los principales puntos débiles son: 1) Designar a una persona especial para que se encargue de la sincronización de datos de entrenamiento, la carga de trabajo es enorme 2) El gran volumen de datos de entrenamiento lleva mucho tiempo y no puede cumplir con los requisitos del entrenamiento en tiempo real 3) Recién escrito La consulta de procesamiento de datos SQL no se puede reutilizar en la consulta original de Hive SQL.

  • solución

Para resolver los puntos débiles mencionados anteriormente, el equipo de productos de Alibaba Cloud y el equipo de la plataforma de aprendizaje automático de Weibo construyeron conjuntamente una nueva tecnología que integra lagos y almacenes, abrieron el almacén de datos en la nube Alibaba MaxCompute y el lago de datos EMR Hadoop, y construyó una IA que cruza lagos y almacenes Calcula la plataforma intermedia.

Los productos de MaxCompute actualizan por completo la infraestructura de red, abren el dominio privado de la VPC del usuario y confían en el mapeo de una clave de la base de datos de Hive y las potentes y completas capacidades del motor SQL/PAI para conectar sin problemas el almacén de datos en la nube de MaxCompute y EMR Hadoop. sistema de tecnología de lago de datos para realizar el lago.Los almacenes están unificados y gestionados y enviados de forma inteligente.

  • valor del caso
  • No solo combina las ventajas de los lagos de datos y los almacenes de datos para encontrar el mejor equilibrio entre flexibilidad y eficiencia, sino que también crea rápidamente una plataforma informática de IA unificada, lo que mejora en gran medida las capacidades de soporte comercial del equipo de la plataforma de aprendizaje automático. Un conjunto de trabajos se puede programar sin problemas y de manera flexible en clústeres de MaxCompute y clústeres de EMR sin migración de datos o trabajos.
  • Las tareas de procesamiento de datos de SQL se ejecutan ampliamente en clústeres de MaxCompute y el rendimiento ha mejorado significativamente. Basado en las ricas y poderosas capacidades de algoritmos de Alibaba PAI, encapsula una variedad de servicios de algoritmos que están cerca de los escenarios comerciales para satisfacer más necesidades comerciales.
  • Los recursos elásticos nativos de la nube de MaxCompute y los recursos del clúster de EMR se complementan entre sí, y los recursos entre los dos sistemas reducen los picos y llenan los valles, lo que no solo reduce las colas de trabajo, sino que también reduce los costos generales.

07 Resumen

Los lagos de datos y los almacenes de datos son dos orientaciones de diseño de arquitectura de datos para crear sistemas distribuidos en las condiciones actuales de la tecnología de big data. Depende de si la dirección del equilibrio está más sesgada hacia la flexibilidad o las características de nivel empresarial, como el costo, el rendimiento, la seguridad y la gobernanza. .

Sin embargo, los límites entre los lagos de datos y los almacenes de datos se están desdibujando gradualmente, y se están fortaleciendo las capacidades de gobernanza de los lagos de datos y la capacidad de los almacenes de datos para extenderse al almacenamiento externo. En este contexto, MaxCompute tomó la iniciativa al proponer la integración de lagos y almacenes, presentando a la industria y a los usuarios una estructura en la que los lagos de datos, los almacenes de datos y los lagos se complementan entre sí y trabajan juntos.

Una arquitectura de este tipo proporciona a los usuarios la flexibilidad de los lagos de datos y muchas funciones de nivel empresarial de los almacenes de datos al mismo tiempo, y reduce aún más el costo total de propiedad de los usuarios que utilizan big data. -plataforma de big data de generación.

Supongo que te gusta

Origin blog.csdn.net/xljlckjolksl/article/details/131195582
Recomendado
Clasificación