Passa al contenuto principale
Prodotto

Accelera le query di ricerca con gli indici di ricerca full-text su Databricks

Gli indici di ricerca full-text possono accelerare le query di 100 volte o più su tabelle in formato aperto, senza modificare il layout delle tabelle

di Yu Xu, Yingyi Bu e Ivan Vezilić

  • Databricks introduce gli indici di ricerca full-text in Beta: crea un indice con un'istruzione SQL e le query di sottostringhe e parole chiave verranno accelerate, senza bisogno di hint di query o modifiche alle applicazioni.
  • I team che eseguono la ricerca full-text nei loro ambienti di produzione stanno registrando un'accelerazione di oltre 100 volte nelle query di ricerca di sottostringhe su tabelle su scala petabyte, sbloccando nuovi casi d'uso su Databricks.
  • Disponibile ora su Databricks Runtime 18.2 per le tabelle gestite da Unity Catalog, con manutenzione automatica degli indici tramite Predictive Optimization in arrivo nella versione 18.3.

Ogni team di dati affronta la stessa sfida man mano che le tabelle crescono fino a centinaia di gigabyte o terabyte e oltre: le query di ricerca testuale diventano incredibilmente lente, sia che si tratti di cercare un messaggio di errore tra terabyte o petabyte di log delle applicazioni, trovare un indirizzo IP sospetto nei dati di sicurezza o individuare contenuti specifici in un dataset di conformità. Queste query possono finire per scansionare molti più dati del necessario, rendendo le ricerche rapide e mirate una sfida su larga scala. Oggi siamo entusiasti di annunciare una soluzione a queste sfide: gli indici di ricerca full-text sono disponibili in Beta su Databricks Runtime 18.2.

I team sono spesso costretti a ricorrere a soluzioni alternative: mantenere tabelle duplicate, creare sistemi di ricerca esterni come Elasticsearch o Splunk, o progettare eccessivamente i layout delle tabelle per ottimizzarli per un pattern di query a scapito di altri.

image2.png

Cosa sono gli indici di ricerca full-text?

Un indice di ricerca full-text accelera le query di sottostringhe e parole chiave nelle colonne di testo. Una volta creato, il motore di query lo utilizza automaticamente, in modo che le ricerche che prima scansionavano un'intera tabella leggano solo una piccola frazione di essa. (Spieghiamo come funziona qui sotto).

Gli indici di ricerca full-text sono ideali per ricerche ad alta cardinalità e per cercare in molte colonne di testo contemporaneamente. Esempi comuni includono:

  • Analisi dei log e SIEM (Security Information and Event Management): ricerca di messaggi di errore, indirizzi IP o pattern sospetti in terabyte di log di sicurezza e delle applicazioni.
  • Indagini di Trust and Safety: ricerca di contenuti specifici in enormi dataset di moderazione dei contenuti.
  • Audit di conformità: individuazione di record contenenti termini specifici nei dati di reportistica normativa.

Inizia con una semplice istruzione SQL:

Le query vengono quindi accelerate automaticamente:

Il motore di query rileva l'indice di ricerca e lo utilizza per saltare la stragrande maggioranza dei file, spesso accelerando le query di ordini di grandezza.

Come funziona dietro le quinte

Gli indici di ricerca full-text sono memorizzati separatamente dalla tabella di base. Quando crei un indice, Databricks tokenizza il contenuto testuale e crea un indice interno: una struttura di ricerca compatta che mappa i token alle righe corrispondenti. Al momento della query, il motore consulta questo indice per identificare quali file potrebbero contenere righe corrispondenti, quindi legge solo quei file.

image3.png

Questa architettura offre diversi vantaggi chiave:

  • Nessun impatto sulle prestazioni di scrittura: gli indici sono gestiti in modo asincrono. La scrittura sulla tabella di base non viene mai rallentata dall'indicizzazione.
  • Ottimizzazione automatica delle query: il motore di query di Databricks valuta gli indici disponibili e seleziona il percorso di accesso migliore, senza richiedere hint di query.
  • Correttezza garantita: anche quando un indice non è aggiornato (rispetto alla tabella di base), la correttezza della query viene preservata. Databricks scansiona sia le parti indicizzate che quelle non indicizzate della tabella in base alle esigenze, in modo che i risultati siano sempre completi e accurati.
  • Funziona con Delta e Iceberg: gli indici di ricerca full-text supportano le tabelle Delta e Iceberg gestite da Unity Catalog sia su compute serverless che classico.

Qual è la relazione tra gli indici di ricerca full-text e il Liquid Clustering?

Il Liquid clustering e gli indici di ricerca full-text risolvono problemi diversi. Il Liquid clustering organizza i dati fisicamente in modo che le query che filtrano sulla chiave di clustering possano saltare in modo efficiente grandi blocchi di dati. Il clustering aiuta con i filtri di uguaglianza e di intervallo sui valori delle colonne, ma non può aiutare a individuare una sottostringa o una parola chiave all'interno di un campo.

Gli indici di ricerca full-text, al contrario, cercano all'interno del testo dei valori delle colonne, consentendo ricerche rapide di sottostringhe e parole chiave. Ciò significa che gli indici di ricerca full-text velocizzano le query anche sulle colonne su cui hai già effettuato il clustering, perché il clustering da solo non può trovare una corrispondenza all'interno del contenuto di un campo.

In breve, il Liquid clustering ottimizza il filtraggio in base ai valori delle colonne; gli indici di ricerca full-text ottimizzano la ricerca all'interno dei valori delle colonne. Si completano a vicenda e lavorano insieme sulla stessa tabella.

Risultati delle prestazioni dei clienti

Un team di Trust and Safety ha adottato gli indici di ricerca full-text per le indagini su una tabella su scala petabyte.

Una ricerca di sottostringhe che in prevenzione doveva scansionare l'intera tabella ora viene eseguita oltre 100 volte più velocemente, rendendo pratiche le indagini interattive per la prima volta.

Stiamo lavorando attivamente a layout di indice più efficienti e ad altre ottimizzazioni per offrire un'accelerazione ancora maggiore nelle prossime release.

Per iniziare

Gli indici di ricerca full-text sono disponibili in Beta su Databricks Runtime 18.2. Per iniziare, consulta la documentazione sugli indici di ricerca full-text.

Novità in arrivo

La prossima milestone per gli indici di ricerca full-text è la versione 18.3, in cui puoi aspettarti:

  • Integrazione completa con Unity Catalog con ereditarietà automatica dei permessi.
  • Manutenzione automatica tramite Predictive Optimization: nessun REFRESH INDEX manuale. I tuoi indici vengono mantenuti aggiornati automaticamente.

Siamo ansiosi di ricevere il tuo feedback durante il periodo di Beta. Prova subito gli indici di ricerca full-text sui tuoi carichi di lavoro e aiutaci a plasmare la release in Public Preview.

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Ricevi gli ultimi articoli nella tua casella di posta

Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.