Potrebbe la scintilla di Apache essere un'opzione?

0

Oggi utilizziamo il server SQL con più viste indicizzate. Ogni volta che aggiorniamo le tabelle di origine per la visualizzazione, il ritardo è troppo lungo.

Non ho esperienza con Spark, quindi la domanda è: Possiamo inserire i dati dalle tabelle di origine, creare la "visualizzazione dati" nella scintilla e quindi selezionare solo i dati di cui abbiamo bisogno? ma continua a mantenere la "visualizzazione dati" pronta per essere letta in seguito (non salvata su disco, ma finché è attivo lo spark server)?

Esempio di dati SQL molto semplificato di cui abbiamo bisogno (non in realtà codice):

SELECT tbl1.id as id1,tbl2.id as id,tbl3.id as id3 from tbl1
Cross join tbl2
Cross join tbl3

Quindi aggiungiamo i dati da tbl1, tbl2 e tbl3 a spark, eseguiamo la trasformazione dei dati e quindi possiamo selezionare i dati da spark come

SELECT * FROM SPARK where id1 = 74 and id2 = 85 and id3 > 45 and id3 < 90

(la domanda riguarda la scintilla, non l'ottimizzazione delle query SQL e degli indici SQL)

    
posta Mr Zach 08.08.2018 - 13:16
fonte

1 risposta

0

TL; DR: sì, puoi farlo, ma non consiglierei questo percorso

Spark attende una richiesta di output, quindi determina cosa leggere dagli input e come trasformarlo. Ciò significa che leggerà dalle tabelle di origine quando si esegue una query. I risultati intermedi possono essere memorizzati nella RAM o su disco per scintilla. Quindi, sì, può funzionare nel modo in cui descrivi. Tuttavia, non è stato progettato per essere usato in questo modo, quindi potresti trovare difficoltà. Inoltre, l'uso della scintilla stessa è complicato, specialmente quando si tratta di un lavoro di lunga durata, e probabilmente impiegherete molto più impegno per far funzionare in modo affidabile la scintilla per il vostro caso d'uso piuttosto che esplorare percorsi alternativi.

Suggerisco di provare a trovare una soluzione nel database (ad esempio, tabelle di memoria) o utilizzando una soluzione server di memorizzazione nella cache dedicata (ad es. redis).

    
risposta data 08.08.2018 - 13:31
fonte

Leggi altre domande sui tag