1. A method of processing a data source query, the method comprising: receiving the data source query at a hybrid multi data source running on a computer server; creating a list of data sources, each data source in the list of data sources having a data source type selected from a group consisting of a relational data base, a nosql database, a flat file, an XML file, a representational state transfer (REST) web service, and a Simple Object Access Protocol (SOAP) web service; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source type hints included in the data source query; removing data sources from the list of data sources based on the data source type of each of the data sources in the list of data sources and data source rules identifying preferred data source types based on features of the data source query; forming one or more query plans for processing the data source query, each query plan corresponding to a data source in the list of data sources after the removings; evaluating each of the query plans; selecting a first query plan from the query plans based on results of the evaluating; and performing the first query plan.