12. The one or more non-transitory computer-readable media of claim 5 , wherein: the format of the syntax tree is different than the at least two different storage formats and further includes ordering information describing an order for at least a portion of the data in the report; and the at least one modified query is generated to include the ordering information.
5. One or more non-transitory computer-readable media storing instructions which, when executed, instruct at least one processor to perform actions comprising: receiving an indication of a report comprising a syntax tree that includes one or more data attributes identified by an attribute identifier and one or more conditions on the one or more data attributes, the syntax tree comprising a format that is abstracted from a particular one of at least two different storage formats of at least two datastores; normalizing the attribute identifiers to generate normalized attribute identifiers for the one or more data attributes to provide a consistent attribute identifier across the at least two datastores; receiving storage metadata describing at least one of the at least two datastores storing data for the normalized attribute identifiers, the metadata including a description of the one or more data attributes and data retrieval latency for the at least two datastores; generating at least one query to retrieve data from one or more datastores using the one or more data attributes from the at least two datastores identified by the normalized attribute identifiers and the description of the one or more data attributes from the received storage metadata; providing, to at least one data consumer associated with the report, at least one time estimate for generating the report based on retrieving the data for the one or more data attributes identified by the normalized attribute identifiers from individual ones of the at least two datastores, the at least one time estimate based at least partly on the data retrieval latency for the individual ones of the at least two datastores; receiving a selection of a datastore by the at least one data consumer, the selection provided by the at least one data consumer based on the at least one time estimate; modifying the at least one query to access the datastore of the at least two datastores based on the selection of the datastore by the at least one data consumer; executing the at least one modified query using the storage metadata and the one or more data attributes identified by the normalized attribute identifiers obtained from the syntax tree to retrieve data for the one or more data attribute identified by the normalized attribute identifiers from the at least two datastores; and generating the report including the data retrieved based on the executing of the at least one modified query.