Query Abstraction Layer
![]() | The CorenSearchBot has performed a web search with the contents of this page, and it appears to include material copied directly from:
It will soon be reviewed to determine if there are any copyright issues. The content should not be mirrored or otherwise reused until the issue has been resolved. If substantial content is duplicated, unless evidence is provided to the contrary (e.g. evidence of permission to use this content under terms consistent with the Wikimedia Terms of Use or public domain status; see Wikipedia:Donating copyrighted materials), editors will assume that this text is a copyright violation, and will soon delete the copy.
Before removing this notice, you should:
|
QAL(Query Abstraction Layer) is an open source development project that aims to create a collection of libraries for mixing, moving, merging, substituting and transforming data. And in some cases, like for MongoDB, schemas.
Sources and destinations include different database backends, file formats like .csv, XML and spreadsheets. Even untidy HTML web pages can be used as both a source and destination.
For SQL/RDBMS backends, it has a database abstraction layer that supports basic connectivity to Postgres, MySQL, DB2, Oracle and MS SQL server. It uses XML formats(the SQL schema is self-generated) for representation of queries, transformation and merging, making it all scriptable.
With regards to SQL, QAL uses a subset of SQL features and data types, which while not complete however should be sufficient for most usages. It is however easy to instead use backend specific SQL when the queries don't have to be backend-agnostic.
It is currently distributed as a Python Library (.egg) and a debian package file(.deb).
It is related to the Optimal BPM project. Historically, the Optimal BPM project used to be DAL/QAL.
Links
- Documentation and examples: http://www.optimalbpm.se/wiki/index.php/QAL
- API documentation: http://optimalbpm.se/api/qal/index.html