USER MANUALS

Assisted Query

With the Assisted Query feature, users can simply describe what they need in plain language, and Denodo transforms it into powerful VQL. No technical skills required. It’s like having a data expert at your fingertips, right inside the Data Marketplace. The feature is available from any view details page.

Note

This feature is only available with the subscription bundle Enterprise Plus. To find out the bundle you have, open the About dialog of Design Studio. See more about this in the section Denodo Platform - Subscription Bundles.

Important

Before using Assisted Query, ensure the following configurations are completed:

Generating a Query

In this section, the process of generating a query is going to be introduced.

The Natural language query input form to explain what the query has to do

The Natural language query input form to explain what the query has to do.

Assisted Query lets you explain your needs in natural language via the Natural language query input. Ask questions or make a request about the view and it will generate the most accurate response possible. Try to be as precise as you can with your input since this refines the final result.

Note

The Natural language query input accepts text to a maximum of 1000 characters.

Assisted Query will send metadata and optionally data (see the Improving Query Accuracy with Sample Data section) of the view to generate the query and the explanation, including:

  1. The name of the view.

  2. The name of the view’s database.

  3. For each field, the following information:

    1. The name of the field.

    2. The logical name of the field if it is configured.

    3. The type of the field.

    4. The source type of the field.

    5. The description of the field.

    6. Information regarding if the field is a primary key.

    7. Information regarding if the field is nullable.

    8. The name and the description of the tags that are assigned to the field.

    9. If the sample data is enabled, data of the view is also included.

  4. The description of the view.

  5. The name and the description of the tags that are assigned to the view.

  6. For each direct association, the same information as for the view.

Once the Natural language query input is set, the Ask button will have to be clicked to generate the query.

The generated query and its explanation

The status of Assisted Query after a successful generation process.

The Automatically generated query and the Query explanation fields will be then visible. Once this action is done, the option to open the generated query in the VQL Shell will be available via the Open in VQL Shell button.

Note

The Open in VQL Shell action will append the generated query to whatever VQL you had previously introduced in the VQL Shell. This is done to prevent the loss of information.

Assisted Query provides both the Automatically generated query and a Query explanation for two main reasons:

  1. Transparency and Control: The generated query shows the exact VQL code that will be run. This gives you complete control and allows you to confirm that the query is what you intended.

  2. Accuracy and Trust: The explanation clarifies the AI’s reasoning, which helps prevent a common issue where the model “hallucinates” or generates plausible but incorrect information. By seeing the explanation, you can verify that the result is accurate and that you can trust the system.

This simple approach ensures you get the data you need while fully understanding how you got it.

Improving Query Accuracy

Here are some considerations to take into account to improve the accuracy of the generated query and explanation:

Sample Data

To generate the most accurate VQL, Assisted Query can benefit from analyzing a small sample of the view’s actual data, not just its metadata. For instance, imagine you have a view named employees with a state field and you ask Assisted Query to “show all employees from California”. If the field’s description doesn’t specify the format, the AI has to infer whether the correct VQL filter is WHERE state = 'California' or WHERE state = 'CA'.

By analyzing a sample of the data, the AI can immediately see that the field contains two-letter abbreviations and will correctly generate the WHERE state = 'CA' clause. This same principle solves ambiguity in many other common cases:

  • Date formats. e.g., 2025-09-02 vs 09/02/2025.

  • Categorical Codes. e.g., if an order_status is represented by the text ‘Shipped’ or a numerical code like 3.

In short, enabling sample data eliminates ambiguity, leading to more reliable and precise VQL queries from the very first attempt. To activate it, enable the use sample data option of the Assisted Query configuration.

Warning

Assisted Query collects and sends metadata from Denodo views to the LLM for processing. If sample data is enabled, real data from the views is also included. Make sure your organization is informed and has approved this data sharing.

In cases where a view contains a large amount of information, some of it may be excluded automatically to stay within the token limit supported by the model. This exclusion may affect the accuracy or completeness of the generated query and explanation. In rare cases, it may even cause the generation process to fail. When this happens, a notification will be displayed to inform the user.

Descriptions

The descriptions for your views, fields, and tags are the business context you provide to the AI. While Assisted Query is powerful, it doesn’t inherently understand your company’s specific terminology. Clear, human-readable descriptions are therefore critical for accuracy, especially when names are not self-explanatory (e.g., c_bal, ord_dt, or is_act). For instance, a field named status is ambiguous, but a description like “Customer account status: A for Active, I for Inactive, S for Suspended” provides the precise detail the AI needs to answer questions correctly. By investing a moment to write clear descriptions, you directly improve the AI’s ability to understand your data, which translates into more intelligent and accurate VQL generation.

Executing the Generated Query

Depending on the Assisted Query execution mode, the generated query can be run either manually or automatically.

The results of the generated query visible in the **Query result** table.

The results of the generated query visible in the Query result table.

Execution with Manual Execution Mode

When the manual execution mode is configured, the Execute button will have to be clicked. Once the query execution has finished, the results will be shown in the Query result table.

Execution with Automatic Execution Mode

When the automatic execution mode is configured, no action is required. When the Ask button is clicked, the generated query will be executed and the results will be shown automatically in the Query result table.

Other Options

  • To cancel the query generation process at any time, use the Cancel button.

  • To remove all generated results and reset the interface, use the Clear all button.

Examples

Below are categorized examples that demonstrate how you can interact with the feature. These illustrate how Assisted Query interprets different types of requests and adapts to your data context, including metadata, and sample values.

Note

These examples represent a reduced set of the capabilities of Assisted Query. The feature is designed to handle a wide variety of query types and adapt to your specific data context

Use these examples as inspiration to formulate your own queries and explore your data more intuitively.

Semantic Understanding

  • Show me all accounts flagged as suspicious

    If your view uses tags like SUSP or FLAGGED, Assisted Query can infer the meaning and apply the correct filter.

Aggregations

  • What is the average number of loans that each loan officer is in charge of?

    Assisted Query understands when to apply aggregation functions like AVG() and how to group data appropriately.

Filtering

  • Show me all accounts with a balance below €500

    Applies numeric filters.

  • List all transactions made by VIP customers

    Uses tags or enum values to filter based on customer type.

  • List all customers whose address is not registered

    The logical names are taken into account, so if the address logical name is used for the field custm_loc_name, Assisted Query will know the field to use.

Input clarity

  • Standard deviation of loan amounts for loans approved in the second half of 2022? Second half refers to July to December inclusive

    Clarifying terms like “second half” helps the AI interpret your intent correctly. If your organization uses specific definitions, it’s important to include them in your query.

Sample data

  • Give me the IDs of all accounts dedicated to regular transactions

    Enabling sample data improves query accuracy. Real data helps the AI identify specific enum values (e.g., “REG” for regular) used in your dataset.

Relationships

  • How many loans has loan officer Matthew handled?

    Assisted Query can automatically join views using first-level relationships, so you don’t need to specify joins manually.

Assisted Query Role

To use the Assisted Query feature the user has to have the data_catalog_assisted_query role. See the Default Roles section for more information.

Data Marketplace Assisted Query

Data Marketplace Assisted Query role.

Log Assisted Query HTTP information

Data Marketplace allows users to see details of the HTTP requests made using the Assisted Query feature.

Amazon Bedrock is set as the LLM provider

If Amazon Bedrock is set as the LLM provider, follow these steps:

  1. Stop the Data Marketplace.

  2. Edit the file <DENODO_HOME>/conf/data-catalog/log4j2.xml to set these loggers:

    <!-- Amazon Bedrock HTTP requests logging-->
    <Logger name="software.amazon.awssdk.request" level="DEBUG" additivity="false">
    <AppenderRef ref="ASSISTED-QUERY"/>
    </Logger>
    <Logger name="org.apache.http" level="DEBUG" additivity="false">
    <AppenderRef ref="ASSISTED-QUERY"/>
    </Logger>
    <Logger name="org.apache.http.wire" level="DEBUG" additivity="false">
    <AppenderRef ref="ASSISTED-QUERY"/>
    </Logger>
    
  3. Start the Data Marketplace.

  4. Use the Assisted Query feature.

  5. See the feature debug messages in the file <DENODO_HOME>/logs/vdp-data-catalog/data-catalog-assisted-query.log.

Other LLM providers

If the LLM provider is not Amazon Bedrock, follow these steps:

Add these JVM options to the web container (see section Denodo Platform Configuration):

-Djdk.internal.httpclient.debug=true -Djdk.internal.httpclient.websocket.debug=true -Djdk.httpclient.HttpClient.log=trace

Virtual DataPort Server and the Web Administration Tools Are on the Same Installation

  1. Stop the Virtual DataPort server and the Web Administration Tools.

  2. Edit the file <DENODO_HOME>/conf/vdp/log4j2.xml to set the logger:

    <Logger name="com.denodo.tomcat" level="TRACE" />
    
  3. Start the Virtual DataPort server.

  4. Wait until the Tomcat log stops writing in <DENODO_HOME>/logs/vdp/vdp.log.

  5. Start the Data Marketplace.

  6. Use the Assisted Query feature.

  7. See the feature debug messages in the file <DENODO_HOME>/logs/vdp/vdp.log.

Virtual DataPort Server and the Web Administration Tools Are not on the Same Installation

  1. Stop the Web Administration Tools.

  2. Edit the file <DENODO_HOME>/conf/data-catalog/log4j2.xml to set the logger:

    <Logger name="com.denodo.tomcat" level="TRACE" />
    
  3. Start the internal Tomcat by means of a command line interface:

    <DENODO_HOME>/resources/apache-tomcat/bin/catalina.{bat|sh} start
    
  4. Start the Data Marketplace by means of the Denodo Platform Control Center.

  5. Use the Assisted Query feature.

  6. See the feature debug messages in the command line.

Note

When the Virtual DataPort Server and the Web Administration Tools are on the same installation you could also use this option, but the first one is simpler.

Add feedback