Ogni firewall, load balancer, VPN, edge CDN, resolver DNS, cluster Kubernetes e server applicativo emette un flusso di record basati su un unico elemento: un indirizzo IP. Per una grande azienda, questi flussi generano collettivamente decine di miliardi di eventi al giorno e costituiscono la base di alcune delle analisi più preziose che un'organizzazione possa eseguire, tra cui il rilevamento delle minacce, l'investigazione sulle frodi e l'osservabilità della rete. Storicamente, il settore ha trattato questi casi d'uso di osservabilità della rete come casi d'uso specializzati che richiedevano uno stack dedicato, portando a silos, governance frammentata e lock-in.
Ora le cose cambiano. Oggi, le funzioni IP sono generalmente disponibili (GA). Con questo lancio, l'analisi degli indirizzi IP diventa un workload SQL ad alte prestazioni di prima classe sul lakehouse, consentendo ai team di sicurezza di analizzare, arricchire ed elaborare i dati IP a più alto volume insieme al resto delle loro analisi, sotto un unico modello di governance.
In passato, gli indirizzi IP erano ingannevolmente difficili da gestire in SQL. Un indirizzo IPv4 sembra una stringa ma si comporta come un intero a 32 bit; IPv6 è a 128 bit. Un blocco CIDR come 10.0.0.0/8 non è affatto un valore, bensì un intervallo di 16 milioni di indirizzi. Chiedersi "questo IP si trova all'interno di quella sottorete?" è un problema di contenimento dell'intervallo che si nasconde dietro una stringa di testo.
Senza un supporto nativo, i team erano costretti a ricorrere a pattern fragili, ognuno dei quali comprometteva correttezza, prestazioni o manutenibilità:
Soluzione temporanea comune | Cosa comporta |
Parsing tramite Regex per estrarre gli ottetti dalle stringhe | Lento, fragile, silenziosamente errato in caso di input non validi o IPv6 |
Calcoli bit a bit manuali per convertire gli indirizzi in interi | SQL illeggibile che solo l'autore comprende; si interrompe al confine tra v4 e v6 |
UDF personalizzate per il contenimento CIDR | Annulla la vettorializzazione e la visibilità dell'ottimizzatore di query; una scatola nera che il planner non può sottoporre a push down o broadcast |
Pre-espansione dei CIDR in intervalli nelle pipeline esterne | Una pipeline separata da gestire |
Esclusione totale di IPv6 | Intere classi di traffico moderno escluse silenziosamente dall'analisi |
Il risultato era una situazione svantaggiosa per tutti. Gli analisti che utilizzavano solo SQL erano esclusi dal filtraggio IP di base perché richiedeva codice procedurale. I data engineer sprecavano cicli di elaborazione per gestire librerie UDF e job di espansione CIDR. Soprattutto, i workload critici, come l'arricchimento di miliardi di eventi con tabelle di threat intelligence e geo-IP, richiedevano oltre un'ora, quando l'azienda aveva bisogno di risposte in pochi minuti. Su scala petabyte, questo divario fa la differenza tra rilevare un'intrusione in corso e leggerne i dettagli in un report post-mortem.
Databricks introduce un set completo di funzioni IP integrate che rendono i dati di rete cittadini di prima classe del lakehouse. Gestiscono IPv4 e IPv6 in modo uniforme, accettano sia rappresentazioni leggibili dall'uomo STRING sia rappresentazioni compatte BINARY, comprendono la notazione CIDR in modo nativo e sono implementate direttamente nel motore, consentendo all'ottimizzatore e a Photon di accelerarle.
L'esempio seguente arricchisce i log dei flussi di rete grezzi con informazioni sulle minacce (threat intelligence) e quindi identifica le reti di origine sospette che stanno scansionando un numero elevato di destinazioni e porte. Ciò che in precedenza richiedeva una logica di parsing personalizzata e librerie IP dedicate ora può essere espresso direttamente in SQL utilizzando operazioni IP e CIDR native.
Nessuna UDF. Nessuna regex. Nessuna ginnastica con i numeri interi. Si legge esattamente come la domanda che l'analista si sta effettivamente ponendo.
La release GA include il toolkit completo necessario per analizzare, normalizzare, ispezionare e unire i dati IP:
Contenimento e join
ip_cidr_contains(cidr, needle) - verifica se un indirizzo IP o un altro blocco CIDR rientra in un blocco CIDR. Questo è il singolo predicato alla base dei join dei blocchi CIDR e del filtraggio ad alto volume, nonché la funzione su cui si concentra l'intero sforzo di ottimizzazione.Parsing e canonizzazione
ip_host(ip) - normalizza un indirizzo IPv4 o IPv6 nella sua forma standard (ad esempio, riduce 2001:0db8:0000::1 a 2001:db8::1).ip_cidr(cidr) - produce la rappresentazione canonica di un blocco CIDR.Ispezione di un CIDR
ip_network(cidr) / ip_network_first(cidr) - restituisce il primo indirizzo (di rete) di un blocco CIDR.ip_network_last(cidr) - restituisce l'ultimo indirizzo di un blocco CIDR.ip_prefix_length(cidr) - restituisce la lunghezza del prefisso (il numero dopo la /).ip_version(ip_or_cidr) - restituisce 4 o 6 in modo che gli indirizzi a protocollo misto possano essere ramificati senza casi specialiConversione della rappresentazione - per le prestazioni
ip_as_binary(ip_or_cidr) - converte un indirizzo o un CIDR nella sua forma binaria compatta e canonica (4 byte per IPv4, 16 per IPv6). La memorizzazione e il join su BINARY evitano il parsing ripetuto e riducono lo spazio di archiviazione.ip_as_string(ip_or_cidr) - riconverte una rappresentazione binaria in testo leggibile dall'uomo per la reportistica.Varianti sicure per dati disordinati
try_ip_host(ip), try_ip_cidr(cidr), try_ip_as_binary(ip_or_cidr), try_ip_as_string(ip_or_cidr) - identiche alle loro controparti, ma restituiscono NULL invece di generare un errore in caso di input non valido. Essenziale durante l'inserimento di log grezzi in cui una frazione di record è sempre malformata, in modo che una singola riga errata non faccia mai fallire un job da un miliardo di righe.Queste funzioni native si integrano in modo naturale con il resto di SQL, sono disponibili per ogni utente SQL senza alcuna configurazione e l'ottimizzatore le comprende, il che rende possibili prestazioni elevate.
Rearc, che aiuta le aziende a sviluppare piattaforme GenAI, Data e Cloud, sta sfruttando le funzioni IP per creare casi d'uso di osservabilità della rete per clienti su larga scala.
Abbiamo creato un prodotto per un'importante società finanziaria che elabora regolarmente più di 30 TB di dati al giorno, dove le prestazioni e l'efficienza dei costi sono fondamentali. Grazie alle funzioni IP native del motore Databricks, siamo stati in grado di analizzare, convalidare e unire i dati IP direttamente in SQL, sostituendo una precedente implementazione ad hoc con una soluzione molto più elegante e gestibile. Poiché le funzioni sono integrate nel motore, abbiamo ottenuto questo risultato senza sacrificare le prestazioni richieste dai nostri carichi di lavoro a questa scala. Hanno reso l'analisi di rete sulla lakehouse più semplice e veloce da implementare per noi." —Dara Kharabi, Practice Lead, AI & Data presso Rearc
Una sfida comune nell'analisi degli IP consiste nel trovare un singolo indirizzo o una sotto-CIDR all'interno di un intervallo molto più ampio, il che è fondamentale per rilevare rapidamente le minacce, indagare sulle frodi e monitorare l'attività di rete su larga scala. Questo caso d'uso rappresenta un range join, con cui i motori hanno storicamente avuto difficoltà perché gli algoritmi di join standard si basano sull'uguaglianza. Il motore di Databricks supporta un range join ottimizzato per gli indirizzi IP tramite ip_cidr_contains.
La soluzione di Databricks ip_cidr_contains supera i data warehouse tradizionali in termini di prezzo e velocità per tutte le dimensioni di tabelle probe (ovvero "ago") e block (ovvero "pagliaio"). Abbiamo effettuato il benchmark di ip_cidr_contains su cinque scenari rappresentativi:
Scenario | Dimensioni della tabella probe | Dimensioni della tabella dei blocchi CIDR |
Il log degli accessi giornalieri di un team unito a una denylist curata | 10 milioni di IP | 1.000 blocchi |
L'attività quotidiana di un grande cliente unita a informazioni sulle minacce di medio livello | 1 miliardo di IP | 100.000 blocchi |
Correlazione dei log di firewall e VPN di un trimestre rispetto al set di intervalli noti dei cloud provider | 10 miliardi di IP | 1 milione di blocchi |
Una grande azienda che confronta tutti gli eventi di autenticazione con una tabella consolidata dei rischi di identità | 10 miliardi di IP | 5 milioni di blocchi |
Una settimana di traffico unito a informazioni sulle minacce su scala più ampia | 10 miliardi di IP | 10 milioni di blocchi |
I risultati mostrano che le prestazioni delle funzioni IP di Databricks sono nettamente superiori a quelle dei concorrenti, anche a scale crescenti. Una volta che il numero di probe supera i 10 miliardi di indirizzi IP e il numero di blocchi supera 1 milione di CIDR, la velocità delle query inizia a stabilizzarsi.

Il divario di costo è altrettanto netto. Anche con la scalabilità dei carichi di lavoro, Databricks rimane da 2 volte a ben 6,4 volte più conveniente.

Stanby ha compreso rapidamente il valore di eseguire i propri casi d'uso di monitoraggio della rete direttamente sulla lakehouse, anziché su sistemi esterni:
"Le funzioni IP native di Databricks ci consentono di lavorare con i dati IP e CIDR direttamente in SQL. Non dobbiamo più affidarci a un parsing di stringhe fragile o a una logica bitwise manuale. La possibilità di analizzare, convalidare e unire i dati IP come operazioni SQL di prima classe ha reso questo lavoro più semplice e gestibile per il nostro team. È una soluzione ideale per eseguire analisi di rete e di traffico insieme al resto dei nostri dati sulla lakehouse."—Stanby, Data Engineering Leader
In definitiva, queste funzioni IP ad alte prestazioni consentono di creare un'intera classe di carichi di lavoro di rete direttamente sulla lakehouse.
Grazie a funzioni IP native e veloci, interi carichi di lavoro che prima non potevano risiedere sulla lakehouse ora possono essere trasferiti lì:
Con queste funzioni supportate in modo nativo sulla lakehouse, questi carichi di lavoro di rete condividono un'unica copia governata dei dati con il resto dell'azienda, senza la necessità di un sistema specializzato separato da concedere in licenza, proteggere e mantenere sincronizzato.
Le funzioni IP native sono ora disponibili a livello generale su Databricks Runtime LTS o versioni successive.
Consulta la documentazione di riferimento delle funzioni IP per l'elenco completo delle funzioni e delle firme. Il flusso continuo di dati di rete è sempre stato uno dei tuoi dataset più grandi: ora può finalmente risiedere dove si trovano tutte le tue altre analisi.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.