DirectQuery is a deployment option available in Tabular Models, which allows the developer to use the relational data instead of the in-memory data in the model. This feature is still immature and needs to be understood to determine how this can be used.
DirectQuery can only use SQL Server and SQL Server PDW databases as sources. No other relational or non-relational sources are supported including Oracle, SQL Server Analysis Services or files. In this case, using DirectQuery would be valuable if using a SQL Server data source and either real-time changes or large data volume are required in your solution.
The role-based security in the Tabular Model is not supported with DirectQuery. The security within the data source, however, is supported.
Calculated columns are not supported in a table based on a DirectQuery source. While calculated measures and KPIs are supported, the DAX formula support is limited. It is possible to use derived columns in the source to overcome some of the calculation issues. Even these workarounds may not have the desired results as there are also cases where the calculations differ between the standard Tabular Model and DirectQuery model. This is caused because the SQL Server engine and the xVelocity engine can handle these calculations slightly differently.
Only clients who work with DAX are able to interact with a model using DirectQuery. This eliminates many tools such as SQL Server Reporting Services and Excel Pivot Tables. They do work with Power View reports.
When choosing whether to use DirectQuery, you will need to evaluate the preceding limitations to determine if it is a good choice in your solution. In most cases, the limitations seem to outweigh the benefits.