Showing posts with label BI. Show all posts
Showing posts with label BI. Show all posts

August 13, 2014

Qlikview as PaaS, IaaS and SaaS Service



Qlikview as PaaS, IaaS and SaaS Service

QlikView is an in-memory software platform and so speed of access to RAM is a key factor in delivering good performance to users. Similarly, availability of CPU power to perform aggregations on the fly and produce content for users is also key. Virtualization technologies place some restrictions of speed of access to RAM compared to physical servers and can also limit the number of CPUs available to a single machine; this is reflected in the maximum size that cloud servers can be with regard to RAM and CPU. This can mean that not all QlikView deployments are suited to being virtualized and so it is important to size a deployment of QlikView when considering use of cloud.
With QlikView this would mean all users would view the same QlikView apps but perhaps the data they see within those applications would be different.




QLIKVIEW AND IAAS
IaaS is a common cloud model used by QlikView customers; indeed QlikTech’s own demo.qlikview.com and other services are run from the IaaS model offered by Amazon EC2. This model allows QlikView customers to deploy infrastructure suitable for their environment and have full control over what QlikView applications they host in the environment and how they configure it.

With QlikView in a PaaS model, a customer could implement QlikView onto a hosted PaaS vendor’s technology. For this type of implementation, QlikView requires a Windows platform to run on. One such PaaS option is Microsoft’s Windows Azure. It is possible to package the QlikView product along with customer - or partner-built apps and deploy onto the Azure platform and so enable customers to be free of the infrastructure (i.e. hardware, network and OS) management.

End user access to QlikView hosted on Cloud:
In this kind of deployment there is no customization required for QlikView, just a simple configuration; however it does require that the customer has in place an SSO system that can make use of reverse proxy.In this type of setup the only device that ever physically touches the cloud server is the reverse proxy. No users will ever directly touch the cloud server or even know that it is a cloud server. This mechanism could serve both internal and external users and is an excellent approach for conforming to what can be the standard way of integrating security within an organization.



SAML (Security Assertion Markup Language) and federated security such Active Directory Federation Services can be used security systems that can make use of secure tokens to sign users into a range of systems as shown below.


With Active Directory Federation Services (ADFS) it is possible for users to seamlessly log in to a non-domain cloud server without being prompted to log in as their internal Windows credentials are used during the process of logging in. This gives an excellent user experience and ADFS is often implemented within organizations alongside their regular Active Directory which means there is no requirement for an additional SSO product or set of users.



In some cases there is no security system to integrate with beyond perhaps a known list of user IDs and passwords. In these cases a straightforward login page can be created in a similar way to the method previously mentioned to ask for, and validate, a user ID and password before logging them into QlikView. The user directory could be anything like Active Directory, LDAP, SSO systems, Databases (SQL, Oracle etc), Web based systems such as Windows Live, Google accounts or Facebook login.

May 20, 2014

QlikView vs Tableau

Qlikview is a vastly more capable tool for a technical person, the scripting language is amazingly powerful. Qlikview is a brilliant tool with amazing ETL capabilities and flexibility.

Associative Experience, In-Memory, Compression of data, on the fly - calculations and huge customziation in terms of pixel perfect dashboards. create layering of your charts and images, actions, navigation controls and show/hide options and several more. Decoding of other person work is easier.

1) The ease with which self-service BI can be achieved via a small scale trail deployment

2) The SQL scripting which is easy to understand by end-users

3) The Pivot functionality, because it is so very familiar to the high-end Excel users and allows for an extremely fast adoption rate

4) It can be deployed with limited training to end-users

a. For the “developer” end-user with a bit of previous VBA skills it is a breeze to create new applications

b. For the pure end-user the interaction with the data is amazingly simple

c. The “cloning” capability allows users to develop different views of the same data until they have the right dashboard look and feel

5) The fact that it brings a DASHBOARD to the end-users in mere minutes with the minimum of installation time and development time

6) Nothing beats showing a sales team the results of 3 million invoice records on a normal i3 pc with 2 GB ram (took +/- 10 minutes to develop for zero to a full blown dashboard that showed revenue by location, by customer, by salesman, by product, by year over a 3 year time axis)



Tableau has found its sweet-spot as an agile discovery tool that analysts use to create and share insights. It is also the tool of choice for rapid prototyping of dashboards. Tableau - Purely self service BI and Visualization tool. Drag and drop feature. VizQL and Show Me Options. It teaches you visualization. Visualization is much better here. But decoding of other person work is difficult.

1.From the rapid development and data discovery point of view Tableau is surpassing. You need only a db connection and you are on the way.

2.Tableau is very flexible with its data import. Tableau's data blending capability is very intuitive. This capability is useful when you have data spread across several different sources that has not gone through ETL processes. This is a problem analysts deal with routinely. They are unable to wait for the data warehouse team to develop ETL processes to provide the physical models they need to build an analysis.

3. The Tableau interface is Excel-like and has a low barrier to entry for analysts that are used to working in Excel.

4.Building a dashboard by mashing up visualizations in a Tableau worksheet is extremely simple. Users are able to build good presentation-quality dashboards in a very short time.

5.Tableau's annotations capabilities and its time and geographical intelligence are key differentiators.

6. Tableau has overcome limitations in data sharing with the introduction of a Data Server in Tableau 7.0. The Data server allows Data sources and extracts to be shared securely and opens up interesting new possibilities.

If your application can take advantage of the above characteristics, consider Tableau.

May 07, 2014

QlikView: Client Access Licenses

QlikView: Client Access Licenses
To connect to a QlikView Server (QVS), each client needs a Client Access License (CAL). The CALs are tied to the server serial number.

CAL Types:
1. Named User CAL
A Named User CAL is assigned to a unique and identified user who may access as
many QlikView documents as may reside on the server or server cluster to which
the Named User CAL is assigned. A Named User CAL may be transferred to
another user pursuant to the software licensing agreement, in which case there is
a 24-hour quarantine before the Named User CAL can be transferred to another
user. There is no time limit for how long a user assigned a Named User CAL can
access a QlikView document.

2. Document CAL
A Document CAL is assigned to a unique and identified user who may access only the one
QlikView document to which the Document CAL is assigned. Multiple
Document CALs can be assigned to a particular user. For example, if a user
connects to two QlikView documents, the user will have been assigned two
Document CALs. A Document CAL may be transferred to another user pursuant
to the software licensing agreement, in which case there is a 24-hour quarantine
before the Document CAL can be transferred to another user. There is no time
limit for how long a user assigned a Document CAL can access the QlikView
document to which the CAL is assigned.


3. Session CAL
A Session CAL allows any user, identified or anonymous/unidentified, on one
QlikView client to access as many QlikView documents as may reside on the
server or server cluster to which the Session CAL is assigned for a minimum
period of 15 minutes. For Session CALs, the QlikView client refers to each
unique instance of the QlikView client (for example, the AJAX client, QlikView
Desktop, or the Internet Explorer plugin) on the user’s machine. The minimum
session time for a Session CAL is 15 minutes, which means that sessions that
end in less than 15 minutes will still consume the session until the 15 minute
mark is passed; those which terminate after 15 minutes will consume their actual
session length.

4. Usage CAL
A Usage CAL allows any user, identified or anonymous/unidentified, to access
only one QlikView document, residing on the server or server cluster to which
the Usage CAL is assigned, from one client (for example, the AJAX client,
QlikView Desktop, or the Internet Explorer plugin) for a time period of 60
minutes per 28-day period. If a user exceeds the 60 minute time limitation, the
user will have consumed two Usage CALs without any warning being given to
the user. Every 28 days, the Usage CAL is refreshed and the user may once again
view a new QlikView document for 60 minutes, using the same Usage CAL.
Usage CALs are continuously recharged (at a pace corresponding to 1/28 of the
total number of Usage CALs assigned to the QlikView Server per day)

License Lease
A QlikView client that does not have a registered license is allowed to connect to QlikView Server and
“borrow” a license, so that the user can work offline for a period of 30 days. The QlikView client must
then make an authenticated log on (not anonymous) and obtain a Named User CAL. Each time QlikView
is started, QlikView tries to contact QlikView Server and renew the license lease. If the client cannot
reach the server after 30 days, the license lease expires.
A license lease can only be used with QlikView Desktop and the Internet Explorer plugin. This means a
license lease cannot be obtained when using an AJAX client.



In QlikView 10 open QEMC and follow this tree : tab System -> Licences -> then click on QlikView Server -> Client Access Licences -> Assigned Cals -> then type username and click on "Assign Cal" button and then Say Apply at the bottom. Now he/she can access the application from access point .



May 05, 2014

BI: In-Memory or Live Reporting?

BI: In-Memory or Live Reporting?

In-Memory Data is Better than Live reporting in following scenarios.
1.When your database is too slow for interactive analytics
2.When you need to take load off a transactional database
Even though data is fast but some calcalation specifically Analytics can slow down the speed and need to load off a transactional database.
3.When you need to be offline
Bringing data into memory, you can work offine on database.


A Live, Direct Data Connection is better in following scenarios.
1. Database itself is fast and you just need to render the data. Avoid data silos and ensure a single point of truth by pointing your
analyses at a single, optimized database.
2.When you need up-to-the minute data
If things are changing so fast that you need to see them in real-time.

April 30, 2014

Set Analysis in Qlikview


Why use set analysis?

In QlikView the selection you make can be considered as a set, the selection not made are another set. Using set analysis these sets can be customized to make a conceptual selection so that we display the desired values on the charts. Set analysis always involves an aggregation function.

Qlikview set analysis is a powerful way for you to create dynamic data sets mainly for comparison analysis.
 
The QlikView set analysis is based on the set theory.

A set analysis is calculated before the chart is computed and redrawn. As you may notice, it is NOT calculated per each row/column in the chart. So, you may not guess a scope of product depending on the rows that are products. You may not guess another set of periods depending of the columns if the Period dimension is in column : the YTD or moving totals you may encounter are often valid only if the period is not a dimension of the chart. The sets let you create a different selection than the active one being used into the chart or table. The created group let you compare the aggregations of this group and the one of the current selection.
These different aggregations let you compare for example the sales of the current month and those of the
previous year, create YTD or moving totals. You may also create market shares, a percentage of the
products, of the year ….

A set modifies the context only during the expression that uses it. Another expression without any
set will get the default context, standard selection or the group of the Alternate State.
A set is always written between curly braces {…}. A set can modify the selection of one or several
dimensions. It can be composed of a single set but can include also an inner set.
 A set analysis is calculated once per chart (or table). NOT once per row. If you
want a different result in your set analysis according to the row being calculated and displayed, it will NOT
work
A set may be composed of:
- An identifier
- An operator
- A modifier
These 3 fields are optional. Of course, to write a set, you will need to incorporate one or several of these
fields. 



1.  Set analysis begins and ends with { }

2. Modifier begins and ends with <  >
3. Operator:  =
4. Identifier is not shown but it is $ which is the default state in Qlikview.



For those of you who know SQL, set analysis is akin to a SELECT…. GROUP BY delivered in a concise expression. 
Identifier is like a SELECT keyword and Modifier is  like a WHERE clause or a filter in your SQL select statement. It works on the selected data set — based on your identifier — to add, remove or to modify existing selections.
 
 
Basic set analysis syntax consists of Identifiers, Operators and Modifiers.

Identifiers - Identifiers can be compared to a from statement in SQL. The identifier determines the set we will be operating on. Identifier begins and ends with the curly brackets. Following are the identifiers we can have in set analysis.

Identifier
Description
0
Represents an empty set
1
Represents the full set of all the records in the application
$
Represents the records of the current selection
$1
Represents the previous selection
$_1
Represents the next (forward) selection
Bookrmark01
Represents the bookmark ID or the bookmark name
Group – group name (Alternate State)

Sum({Book1} [Sales]) : sales of the selection of Book1
Sum({Group1} [Sales]) : sales of the Alternate State Group1 (the syntax is identical)
Sum({1} [Sales]) : sum of everything (All dimensions are completely reset to All)
Sum({$} [Sales]) : sum of the current selection (= sum([Sales])

Operators - Operators are used to operate on the identifier. Following are the operators we can have in set analysis.

Operator
Operator Name
Description
+
Union
Returns a set of records that belongs to union of sets.
-
Exclusion
Returns records that belong to the first but
not the other of the two set identifiers.
*
Intersection
Returns records that belong to both of the
set identifiers.
/
Symmetric Difference
Returns a set that belongs to either, but not
both of the set identifiers.

Example : sum({$ * Bookmark01} Sales) returns the sum of sales that is an intersection between the bookmark and current selection.

If you use the operators with the equal sign:
: add the set to the current selection
: remove the set from the current selection


Sum({1-$} [Sales]) : sum of the sales of the « database » except the current selection
Sum({GROUP1 * Book1} [Sales]) : sum if the sales for the intersection of Group1 and Book1 (the
members belonging to both)

Modifiers - Modifiers can be compared to the Where clause in SQL. These are additional or changed selections. The modifiers should always be in angle brackets.

Example - sum({$} Sales)

This will give the sum of sales for year 2010 and region US. Note that Year and Region are modifiers in the expression.

Using p() and e()

These functions returns the members that have (or have not) data. They are based on the associative
model.
Syntax: {) [, Other
dimensions of the Set]>}
Please note that:
- Both functions p() et e() have the same syntax : one p() returns the possible values, the other e()
returns the excluded values
- They will be inserted into a greater set
- These functions do let you search the Top N products or those whose sales are greater than X :
they just return the members (ie the products) that have data, or those that have not.

Using IF statement

It may happen that we need different set analysis according to the user selection. For example, if the user
chooses one single product, we want to compute/display all of them. If he chooses several, we want to
show/compute them as they are selected.
The IF statement cannot be used within the set analysis itself. But we can use a variable … that can
contain a IF statement.
Let’s create a variable vSet that will be a formula: =if(GetSelectedCount(Product)=1, 'Product=', '$')

And we just need to use this variable in the set itself: sum({<$(vSet)>} Sales)

Stop Memorizing SQL Part 3 : A Practical SQL Cheat Sheet for Beginners

 A Practical SQL Cheat Sheet for Beginners When learning SQL, students often struggle to remember the correct syntax during exams or practic...