Query of Views¶
From the “Query” tab, you can query the view.
The page is divided into two sections:
- Query Definition: helps you to build the query.
- Query Results: shows the results after executing the built query.
To display all the data of the view, select some output columns and click . You can also add
conditions to filter the data obtained from the view.
Query Definition¶
It is the graphical way of building a query. It is divided in two parts:

Query Definition
The left side (red) contains the fields to work with:
Fields: contains the list of all the fields of the view (they can be sorted alphabetically and/or filtered). You can multi-select some fields and drag-and-drop them to the right side. In addition to the fields of the view, a special field called
NUMBER_OF_RECORDS
is available as a shortcut for adding acount(*)
field to the output.Query Definition - Fields
Relationship Fields: contains the list of fields that are used in the condition mapping of an association with cardinality 1. In this case, you can select which fields of the associated view you want to add to the result.
For example, if you are querying the view “employee” and you want to see the data of the view “department” and there is an association between “employee” and “department” with cardinality 1 in the end point of the “department” view, you can select the fields of the “department” view you want to add to the result. You can also order the results by these fields.
Query Definition - Relationship Fields
The right side (green) is the working area, where you add the fields from the left side and edit them to configure the final query.
Outputs: shows the list of fields that will conform the output schema of the query and in which order they appear. You change the order by drag-and-drop a field to the position you want. After adding a field to this section, you can edit in (contextual menu), to change its name or to create an expression.
Click Add > New Field to add a new derived field to the output. In the expression assigned to this field you cannot use expanded fields.
Click Add > New Aggr. field to add an aggregation field. In this case, a GROUP BY expression is automatically added to the query.
Note
Because the syntaxis for the expanded fields is
<role_name>/<field>
, the/
cannot be used as an operator. The functionDIV
has to be used instead.Query Definition - Output
Filters: complex conditions to filter the data of the view. If the view contains mandatory fields, the wizard will automatically create a filter for each one (they cannot be removed). The user would only have to complete their expressions.
You can use
date
,time
andtimestamp
literals in your queries. If the selected field is of date type, an example value with the appropriate format (taking into account the subtype of the field) is shown.Query date
Order by: order the results by one or more fields. You can drag-and-drop fields from the list of “Fields” or from the “Outputs”. Once a field is added to this section, you can change its order mode (ascendant/descendant) by clicking on the arrow.
Query Definition - Order By
Note
You can use expanded fields (of associations with cardinality 1) in the following places of the query:
- Outputs
- Filters
- Order By
- GROUP BY clause (automatically generated)
The expanded fields are used in the same way as
the fields of the view being queried and will be
shown with the syntax <role_name>/<field>
.
In these wizards, the expression editor provides the autocomplete functionality and highlights the different elements that make up the expression with different colors (function names, fields, literals, operators, etc.). Besides, the fragments not identified as any of the possible element types, will be highlighted in red.
At the right side of the Query Definition bar, there is a link
() to save the query executed to obtain these results. It is associated
to the current user and server and will be shown in the saved queries
section (see section Saved Queries). This is useful if the executed
query is complex and you are going to execute it often or if you want to
deploy it to the Virtual DataPort server.
You can obtain the VQL that will be generated for the current query by clicking
.
Finally, you can export the results to a file by clicking . You
can select the following:
- The output format: CSV, HTML, Excel or Tableau (see A Note about Exporting to Tableau for more information about Tableau).
- The number of exported results:
- All results.
- Only visible results. I.e. the part of the results you are currently seeing.
- Only the first n results.

Export options
Note
If the view contains compound fields or expanded associations “to Many” (see section Expanding Associations for more information), those fields are going to be exported as a JSON string.
Note
When exporting to Excel the maximum number of results that will be exported is 1.048.576
Query Results¶
Regarding the results, there are two special cases:
- Compound fields: click the icon to see the value of its subfields on a pop-up.
- Binary fields are shown as “[BINARY DATA]” and cannot be downloaded.
If the queried view has associations with another views and you included the links in the Relationship Links section of the Query Definition, you can browse
them by clicking . A new pop-up will be opened with the data at
the other side of the associations. It is also possible to expand
associations (see section Expanding Associations for more
information).

Query results for Department view
In each cell of the table, if the content is too long, it will not increase the height of the row, but a tool-tip will be used to show the rest of the content and the height will be kept uniform for all the rows.
The first column of each row contains an icon () that shows in
a dialog (Transposed table for first row) the data from that row in a
vertical format (it can be helpful when a table has too many columns,
because it is difficult to see the results of a complete row).

Transposed table for first row
Expanding Associations¶
Expanding an association between two entities means that related tuples/entities are included inline in the results. For instance, suppose a scenario with entities Order and Customer, as shown in Expanding an association (“to One”). Each tuple in Order is associated with a tuple in Customer (thanks to PK-FK relationship). This way, when querying an order you can eagerly retrieve the data from the customer that ordered it. The same way, when querying a customer, you can retrieve all his/her orders.

Expanding an association (“to One”)
Following with this example, you can have two scenarios:
- Associations “to One”: like in the former example, where an order belongs to a customer (and only to that customer). This way, as conceptually shown in Expanding an association (“to One”), you can select the fields from the associated view (Customer) you want to eagerly retrieve when retrieving the data from the order. To do that, you have to select the fields you want to expand (see Selecting fields from an association to be expanded) and they will appear in the result (see Association expanded).

Selecting fields from an association to be expanded

Association expanded
- Associations “to Many”: a tuple in a view is related to one or more
tuples in other view. It is the case of a customer that may have done
several orders. This way, you can traverse the association and see
all orders done by a particular customer. To do that, you have to
select the fields you want to expand (see Selecting fields to expand
the orders of a customer) and an icon to expand the association
will be added to the table (see Link to expand the orders for a
customer). You can click on the icon
and a new pop-up will be displayed with the orders for the desired customer.

Selecting fields to expand the orders of a customer

Link to expand the orders for a customer

Pop-up with the expanded association
A Note About Exporting to Tableau¶
Tableau needs some native libraries in order to work. These libraries are not included with the Denodo Platform, so they must be manually downloaded and installed.
In order to export data to Tableau you have to download the Data Extract API, which is available on the Tableau website. Go to https://www.tableau.com/data-extract-api and choose the appropriate version for your platform. The programming language must be Java.
The native libraries and the tdeserver file must be on one of the folders included in the native library path used by the executable of the web container where the Data Catalog is deployed:
- On Windows systems, after uncompressing the downloaded file you have
to copy the files included in the folder “bin” to a folder included
in the native library path. For example, you can copy them to
C:/WINDOWS/SYSTEM32
or to any folder included in the environment variablePATH
. - On Linux systems, after uncompressing the downloaded file you have to copy the files included in the folders “bin” and “lib/dataextract” to a folder included in the native library path. For example, you can copy them to a standard library folder of your SO (e.g. /lib or /usr/lib) or use the environment variable LD_LIBRARY_PATH to specify another folder.