Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

AQL

Hi,

can someone explain me how AQL really works ?

I mean everytime I hear about Qlikview everyone speaks about the associative technology but what it is really and how it really works ?

How it differ from relational one ?

I think this is the key to try to understand a product like QlikView.

Thanks a lot!

Bye

1 Solution

Accepted Solutions
hic
Former Employee
Former Employee

AQL was an abbreviation used many years ago, but with little relevance to the technical design of QlikView. Documents about AQL are either very old or written by non QlikTech people. So, I think the discussion would improve if we stopped using this abbreviation.

The important points about QlikView are

  1. QlikView internally uses a relational model. And this is determined by the script. (So here you - developer - need to think a lot about the relational schema.)
  2. QlikView doesn't care about whether a key is primary or secondary - it just links the fields that have same names, assuming that they are keys. (So here you - developer - need to define the keys by naming them correctly.)
  3. A selection in a field propagates to other fields also in other tables, thus determining whether a record or a field value is possible or not.
  4. Possible records are aggregated in all QlikView expressions. Non-possible records are not included in the calculation.

And that's basically it. Read more here:

http://community.qlik.com/blogs/qlikviewdesignblog/2012/11/20/symbol-tables-and-bit-stuffed-pointers

http://community.qlik.com/blogs/qlikviewdesignblog/2013/01/15/states-and-state-vectors

http://community.qlik.com/blogs/qlikviewdesignblog/2013/07/15/logical-inference-and-aggregations

HIC

View solution in original post

9 Replies
sathishkumar_go
Partner - Specialist
Partner - Specialist

Hi

AQL (aSSOCIATive qUERY lOGIC) This is for automatically associating values. AQL being marketed by QlikTech. If so, basically, this means that AQL reads the relational databases relationships (Primary Key, Foreign Key, etc.) so that you do not have to predetermine or define dimensions or hierarchies. In theory, this means that you do not have to rebuild OLAP cubes because the relationships are already known.

Regards

Sathish

Not applicable
Author

Hi,

thanks a lot.

Can you please give a me a simple example that exaplain the difference between associative and relational ?

It seems to me that when in QlikView I rename a field, to be like the name of another one in an another table, I'm doing something very similar to a Foreign Key.

I'm sure that I wrong but I haven't understood yet.

Thanks!

Good bye

Not applicable
Author

Hi evil ,

I was read from internet below explaination about AQL.

QlikView - What is AQL?

Traditional OLAP technology was good enough at the time it was developed, but it has some major disadvantages. OLAP-based Hypercubes limit users to a small number of dimensions. Measures have to be defined when the application is developed and redefinition of a measure is time-consuming. The user interface is complicated for non-IT people to understand. Bottom line is that OLAP-based Hypercubes and Data Warehouses are expensive and time-consuming solutions to install.

QlikTech's patented AQL (Associative Query Logic) technology works in a different way, by building and maintaining a non-relational, associative and highly space efficient database that resides in RAM. The advantage of the AQL architecture is that the source data is retained and immediately available offline for analysis, all the way down to the source transactions. The result is powerful analytical capabilities provided through a highly intuitive user interface that encourages exploration and creativity.



Not applicable
Author

Hi,

thanks for your answer.
The difficult to really understand is that when you try to explain what "association" is to someone, the "association" appear to be exactly like a "relation".

I mean in Qv script we create association between tables with the key field name.
Fields that have same name are in association, and when at runtime they match the same value the selection engine "select them" in the result set.
This seem to be identical to a "join" in SQL.

I think Qv is really powerful but I think it's necessary to understand how really associative differs from relational database to get it power.

Other questions :

  • it's really unnecessary to build a dwh ?
    I think it can be really hard to make any kind of analysis on a lot of eterogeneus sources without a good schema design.
  • Maybe it can work good on a traditional OLTP database ?

Thanks a lot.

Bye

Anonymous
Not applicable
Author

Q: It's really unnecessary to build a dwh?
A: It is really unnecessary. QlikView can read data from mutiple data sources into one applcation, and build any schema you may need. Using pre-built DWH limits what you can do in QV, not mentioning extra unnecessary effort.

Q: Maybe it can work good on a traditional OLTP database ?
A: QV is "in-memory" tool. Traditional OLTP is not.

Not applicable
Author

"The difficult to really understand is that when you try to explain what "association" is to someone, the "association" appear to be exactly like a "relation"."

A relation between two tables is defined through a PK-FK relationship: By defining a primary key in one table, and a foreign key in another table which refers to the primary key, the database designer informs the database and anyone using the set of tables that a value will occur at most once on the PK side and 0,1 or many times on the FK side.

An association between two tables does not give any indication of which side of the association contains the set of unique values. This is why In most cases it is not possible to use functions for calculating the frequency of key fields in charts - QV cannot know whether the key field is unique.

In other words, the associative principle of QV, though it has many advantages, also has some disadvantages.

Not applicable
Author

@Satish G.

"If so, basically, this means that AQL reads the relational databases relationships (Primary Key, Foreign Key, etc.) so that you do not have to predetermine or define dimensions or hierarchies."

Does it mean AQL's maximum potential depends on how good your relational schema is?
That means, AQL doesn't help a bag of junk data source?

Not applicable
Author

Rahul Fulari

"QlikTech's patented AQL (Associative Query Logic) technology works in a different way, by building and maintaining a non-relational, associative and highly space efficient database that resides in RAM."

This is contradictory to my argument to @Sathish G. Your comment means, non-relational junk gets automatically mapped by AQL as long as the junk expresses some associations (as described by joins or matching names and so on)?

Does this mean AQL is indirectly telling us to forget about creating a relational schema (1:M)?

OR

AQL by default does its job of *categorizing* your sources regardless of those being relationally rich or not...?


e.g. What if a .xls source file has `Customer ID` and SQL Server db has `CID` without any indication of relations (PK)

So what are we expecting from AQL in above scenario for creating the cloud?

Are both 'Customer ID' and 'CID' get *mapped* as associations?
Is AQL assigning a relation to them as well?

Sounds highly *artificially intelligent* me...

hic
Former Employee
Former Employee

AQL was an abbreviation used many years ago, but with little relevance to the technical design of QlikView. Documents about AQL are either very old or written by non QlikTech people. So, I think the discussion would improve if we stopped using this abbreviation.

The important points about QlikView are

  1. QlikView internally uses a relational model. And this is determined by the script. (So here you - developer - need to think a lot about the relational schema.)
  2. QlikView doesn't care about whether a key is primary or secondary - it just links the fields that have same names, assuming that they are keys. (So here you - developer - need to define the keys by naming them correctly.)
  3. A selection in a field propagates to other fields also in other tables, thus determining whether a record or a field value is possible or not.
  4. Possible records are aggregated in all QlikView expressions. Non-possible records are not included in the calculation.

And that's basically it. Read more here:

http://community.qlik.com/blogs/qlikviewdesignblog/2012/11/20/symbol-tables-and-bit-stuffed-pointers

http://community.qlik.com/blogs/qlikviewdesignblog/2013/01/15/states-and-state-vectors

http://community.qlik.com/blogs/qlikviewdesignblog/2013/07/15/logical-inference-and-aggregations

HIC