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ć
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.

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:
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.
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.

Questa architettura offre diversi vantaggi chiave:
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.
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.
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:
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
Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.