Trabajar con big data puede ser un desafío, gracias a la sobrecarga de rendimiento asociada con el movimiento de datos entre diferentes herramientas y sistemas como parte del proceso de procesamiento de datos. De hecho, debido a que los lenguajes de programación, los formatos de archivos y los protocolos de red tienen diferentes formas de representar los mismos datos en la memoria, el proceso de serializar y deserializar datos en una representación diferente potencialmente en cada paso de una canalización de datos hace que trabajar con grandes cantidades de datos sea más lento y más costoso en términos de hardware. Apache Arrow resuelve este problema, haciendo que las cargas de trabajo de análisis sean más eficientes para el hardware de CPU y GPU moderno. Un marco que define un formato de datos en columnas en memoria que cada motor de procesamiento puede usar, Apache Arrow hace para las cargas de trabajo OLAP (procesamiento analítico en línea) lo que ODBC/JDBC hizo para las cargas de trabajo OLTP (procesamiento de transacciones en línea) al crear una interfaz común para diferentes sistemas. trabajando con datos analíticos. Apache Arrow ha comenzado a obtener una gran adopción en la comunidad de desarrolladores y está preparado para cambiar el ecosistema de big data para siempre. Beneficios de Apache Arrow El principal beneficio de adoptar Arrow es el rendimiento. Con Arrow, ya no es necesario serializar y deserializar datos cuando se mueven entre diferentes herramientas e idiomas, ya que todo puede usar el formato Arrow. Esto es especialmente útil a escala cuando necesita varios servidores para procesar datos. Considere el siguiente ejemplo de ganancias de rendimiento de Ray, un marco de Python para administrar la computación distribuida: IDG Fuente: blog de Apache Arrow Claramente, convertir los datos al formato Apache Arrow es más rápido que usar una alternativa para Python como Pickle. Sin embargo, se obtienen ganancias de rendimiento aún mayores cuando se trata de deserialización, que es órdenes de magnitud más rápida. El formato basado en columnas de Apache Arrow significa que el procesamiento y la manipulación de datos también es más rápido porque ha sido diseñado para CPU y GPU modernas, que pueden procesar los datos en paralelo y aprovechar cosas como SIMD (instrucción única, datos múltiples) para el procesamiento vectorizado. Apache Arrow también proporciona lecturas de copia cero, por lo que los requisitos de memoria se reducen en situaciones en las que desea transformar y manipular los mismos datos subyacentes de diferentes maneras. Otro beneficio es que Apache Arrow se integra bien con Apache Parquet, otro formato basado en columnas para datos centrado en la persistencia en el disco. Combinados, Arrow y Parquet hacen que la gestión del ciclo de vida y el movimiento de datos de la RAM al disco sea mucho más fácil y eficiente. El ecosistema de Apache Arrow presenta un beneficio adicional, ya que con el tiempo se agregan más funciones y características y también se mejora el rendimiento. En muchos casos, las empresas donan proyectos completos a Apache Arrow y contribuyen en gran medida al proyecto en sí. Apache Arrow beneficia a casi todas las empresas porque facilita la transferencia de datos entre sistemas. Al agregar compatibilidad con Apache Arrow a un proyecto, resulta más fácil para los desarrolladores migrar o adoptar esa tecnología también. Características y componentes de Apache Arrow Hay cuatro características y componentes clave del proyecto Apache Arrow: el formato de datos en columnas Arrow, Arrow Flight, Arrow Flight SQL y Arrow DataFusion. El formato de columnas Arrow es el núcleo del proyecto y define la especificación real de cómo se deben estructurar los datos en la memoria. Desde una perspectiva de rendimiento, las características clave que ofrece este formato son: Los datos se pueden leer secuencialmente Acceso aleatorio en tiempo constante Compatibilidad con procesamiento vectorial y SIMD Lecturas de copia cero Arrow Flight es un marco RPC (llamada a procedimiento remoto) agregado a Apache Arrow para permiten una fácil transferencia de grandes cantidades de datos a través de redes sin la sobrecarga de serialización y deserialización. La compresión proporcionada por Arrow también significa que se consume menos ancho de banda en comparación con protocolos menos optimizados. Muchos proyectos utilizan Arrow Flight para habilitar la computación distribuida para cargas de trabajo de análisis y ciencia de datos. Arrow Flight SQL, una extensión de Arrow Flight, interactúa directamente con las bases de datos SQL. Todavía se considera experimental y se están agregando funciones rápidamente. Recientemente se agregó al proyecto un controlador JDBC (Java Database Connectivity), que permite que cualquier base de datos que admita JDBC u ODBC (Microsoft Open Database Connectivity) se comunique con los datos de Arrow a través de Flight SQL. Finalmente, DataFusion es un marco de ejecución de consultas que fue donado a Apache Arrow en 2019. DataFusion incluye un optimizador de consultas y un motor de ejecución con soporte para API SQL y DataFrame. Se usa comúnmente para crear canalizaciones de datos, procesos ETL (extracción, transformación y carga) y bases de datos. Proyectos destacados de Apache Arrow Muchos proyectos están agregando integraciones con Apache Arrow para facilitar la adopción de su herramienta o incorporando componentes de Apache Arrow directamente en su proyectos para evitar la duplicación de trabajo. Los siguientes son algunos de ellos: InfluxDB 3.0. El nuevo motor de almacenamiento en columnas de InfluxDB (anteriormente conocido como InfluxDB IOx) utiliza el formato Apache Arrow para representar datos y mover datos hacia y desde Parquet. También utiliza DataFusion para agregar soporte SQL a InfluxDB. Parquet Apache. Parquet es un formato de archivo para almacenar datos en columnas utilizado por muchos proyectos para su persistencia. Parquet admite lecturas y escrituras vectorizadas hacia y desde Apache Arrow. Dask. Dask, un marco de computación paralelo, facilita la escalación horizontal del código Python. Utiliza Apache Arrow para acceder a los archivos Parquet. Rayo. Ray es un marco que permite a los científicos de datos procesar datos, entrenar modelos de aprendizaje automático y servir esos modelos en producción utilizando una herramienta unificada. Se basa en Apache Arrow para mover datos entre componentes con una sobrecarga mínima. Pandas. Pandas, una de las herramientas de análisis de datos más populares en el ecosistema de Python, puede leer datos almacenados en archivos Parquet utilizando Apache Arrow entre bastidores. Turbodbc. Turbodbc es un módulo de Python que permite a los científicos de datos acceder de manera eficiente a los datos almacenados en bases de datos relacionales a través de la interfaz ODBC. Apache Arrow hace que esto sea más eficiente al permitir que los datos se transfieran en lotes en lugar de registros individuales. La presión para eliminar los efectos de bloqueo mediante la mejora de la interoperabilidad se está produciendo hoy en día en muchas áreas diferentes del desarrollo de software. Por ejemplo, lo vemos en el espacio de observabilidad y monitoreo con proyectos como OpenTelemetry, así como en el ecosistema de big data con proyectos como Apache Arrow. Con Apache Arrow, los desarrolladores no solo ahorran tiempo al no tener que reinventar la rueda. También obtienen un valioso acceso a todo el ecosistema de herramientas de procesamiento de datos que también utilizan Apache Arrow, lo que puede facilitar significativamente la adopción por parte de nuevos usuarios. Anais Dotis-Georgiou es una desarrolladora defensora de InfluxData y le apasiona embellecer los datos con el uso de análisis de datos, inteligencia artificial y aprendizaje automático. Ella toma los datos que recopila y aplica una combinación de investigación, exploración e ingeniería para traducir los datos en algo que tenga función, valor y belleza. Cuando no está detrás de una pantalla, puedes encontrarla afuera dibujando, estirándose, subiendo o persiguiendo una pelota de fútbol. New Tech Forum ofrece un lugar para que los líderes tecnológicos, incluidos proveedores y otros contribuyentes externos, exploren y debatan sobre empresas emergentes. tecnología con una profundidad y amplitud sin precedentes. La selección es subjetiva y se basa en nuestra elección de las tecnologías que creemos que son importantes y de mayor interés para los lectores de InfoWorld. InfoWorld no acepta garantías de marketing para su publicación y se reserva el derecho de editar todo el contenido aportado. Envíe todas sus consultas a doug_dineley@foundryco.com. Copyright © 2023 IDG Communications, Inc.

Source link