Voglio creare un'interfaccia SQL su un archivio dati non relazionale. Archivio dati non relazionali, ma ha senso accedere ai dati in modo relazionale.Analisi SQL con Python
Sto cercando di utilizzare ANTLR per produrre un AST che rappresenta l'SQL come espressione di algebra relazionale. Quindi restituisci i dati valutando/camminando sull'albero.
Non ho mai implementato un parser in precedenza e vorrei quindi qualche consiglio su come implementare al meglio un parser e un analizzatore SQL.
- L'approccio sopra descritto suona giusto?
- Ci sono altri strumenti/librerie che dovrei esaminare? Come PLY o Pyparsing.
- Puntatori ad articoli, libri o codice sorgente che mi aiuteranno sono apprezzati.
Aggiornamento:
ho implementato un semplice parser SQL utilizzando pyparsing. Combinato con il codice Python che implementa le operazioni relazionali contro il mio archivio dati, questo era abbastanza semplice.
Come ho detto in uno dei commenti, il punto dell'esercizio era rendere i dati disponibili ai motori di segnalazione. Per fare questo, probabilmente dovrò implementare un driver ODBC. Questo probabilmente è un sacco di lavoro.
Perché imporre limitazioni SQL sugli oggetti? Cosa si può guadagnare? Cosa c'è di sbagliato in OQL? http://en.wikipedia.org/wiki/Object_Query_Language –
Da acquisire: un'interfaccia di query che può essere utilizzata da un numero enorme di strumenti di reporting. Ho intenzione di implementare un driver ODBC sul client. In modo che gli utenti aziendali possano utilizzare Crystal Reports, Excel ecc. Per recuperare i dati dall'archivio dati. OQL, anche se probabilmente un bel linguaggio di query (non l'ho mai usato), non è così diffuso come SQL. – codeape
+1: uno dei maggiori problemi con i database OO è proprio la mancanza di motori di segnalazione :( – van