banner

Blog

Jun 28, 2023

Apache Iceberg lo cambia todo: ¿Qué hay debajo?

El formato de tabla Apache Iceberg de código abierto y alto rendimiento ha transformado para siempre el uso del lago de datos y el análisis de datos, haciendo que los almacenes de datos tradicionales sean menos atractivos, observa Jason Hughes de Dremio.

En medio de volúmenes de datos cada vez mayores, no es ningún secreto que las empresas están luchando por obtener valor inmediato de esos datos, mientras simultáneamente intentan implementar sistemas que puedan responder a sus usos futuros. Lo que hay en el horizonte puede ser difícil de predecir. Las plataformas de datos deben satisfacer esta doble necesidad y la tecnología central está impulsando su evolución para lograrlo. Apache Iceberg de código abiertoAbre una nueva ventana , un formato de alto rendimiento para tablas analíticas, está cambiando la forma en que las empresas acceden a los datos y los ponen a trabajar, aportando una flexibilidad fundamental al análisis de datos.

Iceberg permite un rendimiento sin obstáculos del almacenamiento de datos para el lago de datos, ya que los almacenes de datos tradicionales se han convertido más en un lastre que en un bote salvavidas para las empresas que buscan análisis rentables. Iceberg, que se originó en la ingeniería de Netflix y les permitió tratar Amazon S3 como su almacén de datos, ha sido un proyecto de código abierto listo para producción utilizado para impulsar el análisis de datos en empresas como Netflix, Adobe, Apple y muchas otras durante mucho tiempo. Además de su probada preparación para la producción, sus API también han garantizado la compatibilidad, pero su lanzamiento 1.0 a fines del año pasado consagró esa compatibilidad como garantía y reforzó su estado para casos de uso de ciencia de datos y almacenamiento de datos de nivel de producción. Iceberg ha crecido a un ritmo tremendo, con 1559 solicitudes de extracción fusionadas en los últimos 12 meses, y el desarrollo del software a través de Apache Software Foundation cuenta actualmente con el respaldo de Amazon, Snowflake, Google, Tabular y Dremio, entre otros.

Un formato de tabla, como Iceberg, es un componente crítico de las nuevas arquitecturas Lakehouse que permiten cargas de trabajo analíticas que ejecutan consultas sobre grandes volúmenes de datos en almacenes de objetos en la nube como S3 y ADLS. Las tablas Iceberg facilitan las operaciones del lenguaje de manipulación de datos (DML) directamente en estos almacenes de objetos en la nube. Se pueden optimizar de muchas maneras diferentes, como particionando, ordenando e indexando, para permitir una organización y procesamiento eficiente de datos a escala masiva. Al mismo tiempo, los usuarios obtienen una experiencia sencilla porque no necesitan conocer los detalles subyacentes de una tabla para aprovechar los beneficios de rendimiento.

El auge de Iceberg como estándar de formato de tabla abierta detrás de las casas en el lago ha cambiado lo que significa crear y ejecutar una infraestructura de datos moderna. En última instancia, este nuevo enfoque hundirá los almacenes de datos que requieren un movimiento constante de datos y que generan múltiples copias de datos, encerrando a las empresas en soluciones patentadas, a menudo costosas. Si tiene dos soluciones, las cuales pueden soportar cargas de trabajo equivalentes, pero una es cerrada y la otra es abierta y menos costosa desde una perspectiva de tiempo, recursos y licencias, la historia de la tecnología generalmente ha demostrado que la última gana.

Ver más: Una guía para líderes para mejorar la visualización de datos y el diseño de paneles

Durante décadas, los almacenes de datos han sido fundamentales para consultar grandes cantidades de datos históricos estructurados de una variedad de fuentes y para permitir que las cargas de trabajo analíticas se ejecuten rápidamente. Han ofrecido políticas efectivas de gobierno de datos para garantizar la disponibilidad, usabilidad y seguridad de los datos. Han ofrecido las capacidades tecnológicas para permitir mejores prácticas, como el cambio lento de dimensiones y la gestión de datos maestros. Pero los datos de un almacén son rehenes de un sistema específico del proveedor que sólo el motor informático del almacén puede utilizar. El almacenamiento y/o la computación en estos sistemas son costosos (generalmente uno, si no ambos) y ese costo resulta en una decisión difícil para las organizaciones: ejecutar todas las cargas de trabajo que la empresa necesita a un costo alto, o no ejecutar todas las cargas de trabajo que el negocio necesita a un alto costo. necesidades del negocio a un menor costo. Los almacenes de datos también impiden que las organizaciones ejecuten las cargas de trabajo de aprendizaje automático que necesitan y no pueden manejar bien, si es que lo hacen, cargas de trabajo de datos semiestructurados y no estructurados, que se están convirtiendo en expectativas en el mercado.

Luego, la adopción de la tecnología de lago de datos se extendió porque ofrecía almacenamiento masivo y económico para todo tipo de datos y la capacidad de ejecutar muchos tipos diferentes de cargas de trabajo de ciencia de datos. Para muchas organizaciones, los lagos de datos se implementaron a través de un ecosistema Hadoop donde los análisis se habilitaron inicialmente con marcos como MapReduce. Pero esos trabajos de MapReduce tenían que escribirse en Java, algo imposible para las masas de defensores de SQL que trabajan con datos. Luego, Facebook creó Apache Hive para convertir declaraciones SQL en trabajos de MapReduce y el formato de tabla de Hive para permitir a los analistas referirse a directorios y archivos de datos como tablas en su SQL. A medida que el almacenamiento de objetos en la nube como S3 y ADLS se convirtieron en lagos preferidos, los clústeres de Hadoop y MapReduce perdieron popularidad, y muchos motores distribuidos en varios idiomas que podían abordar el análisis de datos, la ciencia de datos y el aprendizaje automático reemplazaron ese sistema. Pero el formato de tabla de Hive siguió siendo el estándar de facto.

Se necesitan múltiples componentes tecnológicos para proporcionar análisis, independientemente de si está utilizando un lago de datos o un almacén de datos, incluido el almacenamiento, el formato de archivo, el formato de tabla, un catálogo y motores. El lago de datos tenía todo eso, pero el formato de tabla muy simplista de Hive estaba causando todo tipo de problemas.

Y el esfuerzo de ingeniería para optimizar los componentes del lago de datos para análisis es significativo, especialmente cuando el rendimiento y el tiempo importan. Los ingenieros de datos deben configurar minuciosamente todas las herramientas de forma adecuada y garantizar el rendimiento y las garantías ACID para trabajos de alta prioridad o de misión crítica. Los errores pueden ser muy costosos.

Los motores de consulta como Apache Spark, Apache Impala, Presto, Trino y otros admiten cargas de trabajo de análisis y ejecutan consultas directamente en el lago de datos. Debido a las limitaciones del formato de tabla de Hive, estos motores y los ingenieros que los usaban se toparon con la complejidad al intentar realizar operaciones que haría un almacén de datos, como actualizar datos de forma segura desde el lago de datos y proporcionar un alto rendimiento.

Apache Iceberg ha superado las limitaciones que imponían las tablas de Hive. Como formato de tabla de código abierto independiente del proveedor, Iceberg ha hecho posible utilizar operaciones DML sólidas (insertar, actualizar y eliminar) en sus tablas, proporcionar estructuras que permiten un alto rendimiento, evolucionar el esquema de una tabla y optimizar el rendimiento con el tiempo. y acceder a datos históricos dentro de cualquier período definido, que anteriormente solo estaban disponibles en almacenes de datos y otras bases de datos. Fundamental para el cumplimiento y la gobernanza, las capacidades de viaje en el tiempo de Iceberg significan que las empresas pueden acceder y auditar datos históricos. Iceberg también ha abierto nuevas funciones, incluido el control de versiones de datos, la partición transparente y una forma de garantizar un alto rendimiento en el almacenamiento de objetos en la nube a cualquier escala. Esto ha permitido a los equipos ejecutar más cargas de trabajo en el lago de datos con mayor facilidad y flexibilidad.

Iceberg es el componente fundamental de una arquitectura de lago que une la funcionalidad del almacén de datos y la flexibilidad del lago de datos. Todos los componentes de la casa del lago sirven para esos fines y deben hacerlo de manera rentable. Estar comprometido con Apache Iceberg y Apache Parquet y sus estándares impulsados ​​por la comunidad requiere una casa de lago abierta que admita todas las operaciones SQL DML y DDL y análisis de transmisión de Iceberg. Una comunidad diversa de desarrolladores de diferentes empresas es una señal de que los intereses de una empresa en particular no dominarán la dirección de un proyecto. Una comunidad esencialmente propiedad de una empresa puede generar incentivos contradictorios en los que se puede incentivar a esa empresa a mantener algunas características valiosas en partes propietarias de su pila, en lugar de contribuir con ellas al proyecto de código abierto.

La vibrante innovación de Iceberg presenta de manera única la necesidad de una casa en el lago con análisis SQL de autoservicio, una vista de datos unificada y un rendimiento inferior a un segundo a un costo muy bajo. Podría ser aconsejable utilizar Iceberg internamente, incluso para conjuntos de datos que no sean Iceberg en el lago de datos, para aprovechar los beneficios de Iceberg. Con Iceberg, los usuarios pueden crear tablas de cualquier tamaño. Pueden comenzar con algo pequeño y crecer hasta más de 1 billón de filas y petabytes de datos, manteniendo al mismo tiempo el rendimiento de las consultas interactivas.

Parte del objetivo de la apertura es que las organizaciones pueden utilizar cualquier motor de procesamiento y eliminar la dependencia del proveedor. Las capacidades de Iceberg permiten nuevos casos de uso con conjuntos de datos masivos, como atención médica personalizada, detección de fraude, gestión de datos 360 del cliente y desarrollo de energía limpia, entre otros. En última instancia, Iceberg es importante para la comunidad de datos (y para cualquier comunidad de lagos que busque eficiencia e innovación) porque permite a los usuarios consultar y analizar de forma segura y creativa sus datos a cualquier escala de una manera eficaz y económica.

Si está buscando aprender sobre Iceberg desde la sopa hasta las nueces, tres de mis colegas y yo estamos escribiendo Apache Iceberg: The Definitive GuideAbre una nueva ventana de O'Reilly, con el objetivo de continuar la conversación y educar a la comunidad sobre todo lo relacionado con Iceberg. .

Una tecnología nueva y profunda está consolidando el papel de los datos en la toma de decisiones en todas las industrias y mercados. El humilde formato de tabla ha recorrido un largo camino gracias a los esfuerzos concertados de cientos de contribuyentes de código abierto en la vibrante comunidad que rodea a Apache Iceberg. Ese desarrollo está cambiando fundamentalmente la infraestructura de datos moderna, a medida que nos alejamos de los modelos de almacenamiento de datos de décadas de antigüedad y los lagos de datos limitados hacia las posibilidades abiertas de las casas de lago.

¿Cuál es su opinión sobre Apache Iceberg? Compártalo con nosotros en FacebookAbre una nueva ventana, XAbre una nueva ventana y LinkedInAbre una nueva ventana. ¡Nos encantaría saber de usted!

Fuente de la imagen: Shutterstock

Director de Defensa Técnica, Dremio

Únete a Spiceworks
COMPARTIR