Quiero crear una interfaz SQL en la parte superior de un almacén de datos no relacionales. Almacén de datos no relacionales, pero tiene sentido acceder a los datos de una manera relacional.Analizando SQL con Python
Estoy buscando usar ANTLR para producir un AST que represente el SQL como una expresión de álgebra relacional. Luego regrese datos evaluando/caminando el árbol.
Nunca he implementado un analizador antes, y por lo tanto, me gustaría obtener algunos consejos sobre cómo implementar mejor un analizador y un evaluador de SQL.
- ¿El enfoque descrito arriba suena correcto?
- ¿Hay otras herramientas/bibliotecas que debería examinar? Como PLY o Pyparsing.
- Apuntadores a los artículos, libros o código fuente que me ayudarán se aprecia.
Actualización:
he implementado un simple intérprete de SQL utilizando pyparsing. Combinado con el código de Python que implementa las operaciones relacionales contra mi almacén de datos, esto fue bastante simple.
Como dije en uno de los comentarios, el objetivo del ejercicio era poner los datos a disposición de los motores de informes. Para hacer esto, probablemente necesite implementar un controlador ODBC. Esto es probablemente mucho trabajo.
¿Por qué imponer limitaciones SQL en los objetos? ¿Qué se gana? ¿Qué pasa con OQL? http://en.wikipedia.org/wiki/Object_Query_Language –
Se debe obtener: una interfaz de consulta que puede usar una gran cantidad de herramientas de informes. Planeo implementar un controlador ODBC en el cliente. Para que los usuarios comerciales puedan usar Crystal Reports, Excel, etc., para obtener datos del almacén de datos. OQL, aunque probablemente sea un buen lenguaje de consulta (nunca lo he usado), no es tan extenso como SQL. – codeape
+1 ambos: uno de los mayores problemas con las bases de datos OO es exactamente la falta de motores de informes :( – van