Cada firewall, balanceador de carga, VPN, extremo de CDN, resolución de DNS, clúster de Kubernetes y servidor de aplicaciones emiten un flujo de registros identificados por una sola cosa: una dirección IP. Para una gran empresa, estos flujos generan colectivamente decenas de miles de millones de eventos al día y son la base de algunos de los análisis más valiosos que ejecuta una organización, como la detección de amenazas, la investigación de fraudes y la observabilidad de la red. Históricamente, la industria trataba estos casos de uso de observabilidad de red como casos de uso especializados que requerían una pila tecnológica especializada, lo que generaba silos, una gobernanza fragmentada y dependencia de un proveedor.
Eso cambia ahora. Hoy, funciones de IP ya están disponibles de forma general (GA). Con este lanzamiento, el análisis de direcciones IP se convierte en una carga de trabajo SQL de alto rendimiento y de primer nivel en el lakehouse, lo que permite a los equipos de seguridad procesar, enriquecer y analizar sus datos de IP de mayor volumen junto con el resto de sus análisis, bajo un único modelo de gobernanza.
En el pasado, las direcciones IP eran engañosamente difíciles de manejar en SQL. Una dirección IPv4 parece una cadena de texto, pero se comporta como un entero de 32 bits; IPv6 tiene 128 bits. Un bloque CIDR como 10.0.0.0/8 no es un valor en absoluto: es un rango de 16 millones de direcciones. Preguntar "¿está esta IP dentro de esa subred?" es un problema de contención de rango oculto detrás de un fragmento de texto.
Sin un soporte nativo, los equipos se veían obligados a recurrir a patrones frágiles, cada uno de los cuales sacrificaba la precisión, el rendimiento o la mantenibilidad:
Solución alternativa común | Lo que te cuesta |
Análisis con Regex para extraer octetos de cadenas de texto | Lento, frágil y silenciosamente erróneo con entradas malformadas o IPv6 |
Operaciones matemáticas de bits manuales para convertir direcciones en enteros | SQL ilegible que solo el autor entiende; falla en el límite entre v4 y v6 |
UDF personalizadas para la contención de CIDR | Anula la vectorización y el reconocimiento del optimizador de consultas; una caja negra que el planificador no puede aplicar mediante pushdown ni broadcast |
Preexpandir CIDR a rangos en pipelines externos | Un pipeline adicional que mantener |
Descartar IPv6 por completo | Clases enteras de tráfico moderno excluidas silenciosamente del análisis |
El resultado era una situación en la que todos perdían. Los analistas que solo usaban SQL no podían realizar filtrados de IP básicos porque requerían código procedimental. Los ingenieros de datos perdían tiempo y recursos manteniendo bibliotecas de UDF y tareas de expansión de CIDR. Por encima de todo, las cargas de trabajo críticas, como el enriquecimiento de miles de millones de eventos con tablas de inteligencia de amenazas y geo-IP, tardaban más de una hora en ejecutarse cuando el negocio necesitaba respuestas en minutos. A escala de petabytes, esa diferencia es lo que separa detectar una intrusión en curso de leer sobre ella en un informe posterior al incidente (post-mortem).
Databricks presenta un conjunto completo de funciones de IP integradas que convierten los datos de red en ciudadanos de primera clase del lakehouse. Manejan IPv4 e IPv6 de manera uniforme, aceptan representaciones tanto legibles por humanos STRING como compactas BINARY, entienden la notación CIDR de forma nativa y están implementadas en el propio motor para que el optimizador y Photon puedan acelerarlas.
El siguiente ejemplo enriquece los registros de flujo de red sin procesar con inteligencia de amenazas y luego identifica las redes de origen sospechosas que están escaneando una gran cantidad de destinos y puertos. Lo que antes requería una lógica de análisis personalizada y bibliotecas de IP a medida, ahora se puede expresar directamente en SQL utilizando operaciones nativas de IP y CIDR.
Sin UDF. Sin regex. Sin malabarismos con enteros. Se lee exactamente como la pregunta que el analista se está haciendo.
La versión GA incluye el conjunto completo de herramientas necesario para procesar, normalizar, inspeccionar y unir datos de IP:
Contención y uniones
ip_cidr_contains(cidr, needle): comprueba si una dirección IP o otro bloque CIDR se encuentra dentro de un bloque CIDR. Este es el único predicado detrás de las uniones de bloques CIDR y el filtrado de gran volumen, y la función en la que se centra todo el esfuerzo de optimización.Procesamiento y canonicalización
ip_host(ip): normaliza una dirección IPv4 o IPv6 a su forma estándar (por ejemplo, reduce 2001:0db8:0000::1 a 2001:db8::1).ip_cidr(cidr): genera la representación canónica de un bloque CIDR.Inspección de un CIDR
ip_network(cidr) / ip_network_first(cidr): devuelve la primera dirección (de red) de un bloque CIDR.ip_network_last(cidr): devuelve la última dirección de un bloque CIDR.ip_prefix_length(cidr): devuelve la longitud del prefijo (el número después de la /).ip_version(ip_or_cidr): devuelve 4 o 6 para que las direcciones de protocolos mixtos puedan bifurcarse sin necesidad de casos especiales.Conversión de representación: para mejorar el rendimiento
ip_as_binary(ip_or_cidr): convierte una dirección o un CIDR a su forma binaria compacta y canónica (4 bytes para IPv4, 16 para IPv6). Almacenar y unir mediante BINARY evita análisis repetidos y reduce el almacenamiento.ip_as_string(ip_or_cidr): vuelve a convertir una representación binaria en texto legible por humanos para la generación de informes.Variantes seguras para datos desordenados
try_ip_host(ip), try_ip_cidr(cidr), try_ip_as_binary(ip_or_cidr), try_ip_as_string(ip_or_cidr): idénticas a sus contrapartes, pero devuelven NULL en lugar de generar un error ante una entrada no válida. Esencial al ingestar registros sin procesar donde una fracción de los registros siempre está malformada, de modo que una sola fila defectuosa nunca haga fallar un trabajo de mil millones de filas.Estas funciones nativas se integran de forma natural con el resto de SQL, están disponibles para todos los usuarios de SQL sin necesidad de configuración previa, y el optimizador las entiende, lo que hace posible este nivel de rendimiento.
Rearc, que ayuda a las empresas a desarrollar plataformas de GenAI, datos y nube, está aprovechando las funciones de IP para crear casos de uso de observabilidad de red para clientes a gran escala.
Creamos un producto para una importante firma financiera que procesa regularmente más de 30 TB de datos al día, donde el rendimiento y la eficiencia de costos son fundamentales. Con las funciones de IP nativas del motor de Databricks, pudimos analizar, validar y unir datos de IP directamente en SQL, reemplazando una implementación ad-hoc anterior con algo mucho más elegante y fácil de mantener. Dado que las funciones están integradas en el motor, logramos esto sin sacrificar el rendimiento que exigen nuestras cargas de trabajo a esta escala. Han hecho que ofrecer análisis de red en el lakehouse sea más sencillo y rápido para nosotros." —Dara Kharabi, líder de práctica de AI y Datos en Rearc
Un desafío común en el análisis de IP es encontrar una sola dirección o sub-CIDR dentro de un rango mucho mayor, lo cual es fundamental para detectar amenazas rápidamente, investigar fraudes y monitorear la actividad de la red a escala. Este caso de uso representa una unión de rangos, con la que los motores históricamente han tenido dificultades porque los algoritmos de combinación estándar se basan en la igualdad. El motor de Databricks admite una unión de rangos optimizada para direcciones IP a través de ip_cidr_contains.
El de Databricks ip_cidr_contains supera a los almacenes de datos tradicionales en precio y velocidad en todas las escalas de tablas de sondeo (es decir, «aguja») y de bloques (es decir, «pajar»). Evaluamos el rendimiento de ip_cidr_contains en cinco escenarios representativos:
Escenario | Tamaño de la tabla de sondeo | Tamaño de la tabla de bloques CIDR |
El registro de acceso diario de un equipo combinado con una lista de bloqueo seleccionada | 10 millones de IP | 1K bloques |
La actividad diaria de un gran cliente combinada con inteligencia de amenazas de nivel medio | 1000 millones de IP | 100K bloques |
Correlación de los registros de firewall y VPN de un trimestre con el conjunto de rangos conocidos de proveedores de la nube | 10 000 millones de IP | 1M bloques |
Una gran empresa que compara todos los eventos de autenticación con una tabla de riesgo de identidad consolidada | 10 000 millones de IP | 5M bloques |
Una semana de tráfico combinada con inteligencia de amenazas a mayor escala | 10 000 millones de IP | 10M bloques |
Los resultados muestran que el rendimiento de las funciones de IP de Databricks es mucho más sólido que el de los competidores, incluso a escalas crecientes. Una vez que el número de sondeos supera los 10 000 millones de direcciones IP y el número de bloques supera el millón de CIDR, la velocidad de la consulta comienza a estabilizarse.

La diferencia de costos es igual de marcada. Incluso a medida que las cargas de trabajo escalan, Databricks sigue siendo de 2 veces a hasta 6.4 veces más económico.

Stanby vio rápidamente el valor de ejecutar sus casos de uso de monitoreo de red directamente en el lakehouse, en lugar de en sistemas externos:
"Las funciones de IP nativas de Databricks nos permiten trabajar con datos de IP y CIDR directamente en SQL. Ya no dependemos de un análisis de cadenas frágil o de lógica de bits manual. Poder analizar, validar y unir datos de IP como operaciones SQL de primer nivel ha hecho que este trabajo sea más sencillo y fácil de mantener para nuestro equipo. Se adapta de forma natural para ejecutar análisis de red y tráfico junto con el resto de nuestros datos en el lakehouse."—Stanby, líder de ingeniería de datos
En última instancia, estas funciones de IP de alto rendimiento permiten crear toda una clase de cargas de trabajo de red directamente en el lakehouse.
Con funciones de IP nativas y rápidas, cargas de trabajo completas se trasladan al lakehouse, algo que antes no era posible:
Con estas funciones admitidas de forma nativa en el lakehouse, estas cargas de trabajo de red comparten una única copia gobernada de los datos con el resto de la empresa, sin necesidad de un sistema especializado independiente que licenciar, proteger y mantener sincronizado.
Las funciones de IP nativas ya están disponibles con disponibilidad general en Databricks Runtime LTS o posterior.
Consulte la documentación de referencia de las funciones de IP para obtener la lista completa de funciones y sus firmas. El flujo de datos de red siempre ha sido uno de sus conjuntos de datos más grandes; ahora finalmente puede residir donde se encuentra el resto de sus análisis.
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.