Skip to main content

Product Innovation

Learn about what's new across all of the products in our growing Qlik product portfolio.

Announcements
Welcome to Qlik Community! Check out our new navigation! FIND OUT MORE
QlikSenseUpdates
Employee
Employee

We are pleased to announce the release of Qlik Sense June 2017!

With releases five times per year, it could be difficult to stay up to date on what’s new. The document attached to this post will help you keep up to date.  You will find a look back at some of the key features released over the past 12 months as well as a detailed outline of the the most current release.

But first.... check out this overview video:

Some of the most exciting enhancements in this release include:

  • New Visualizations – New visualizations including the Box Plot, Distribution Plot, and Histogram,
  • Advanced Analytics Integration – The ability to call out to third party engines (such as R & Python) during analysis.
  • Visual Data Prep Enhancements – A wide array of improvements to the visual data preparation capability of Qlik Sense including Visual Data Profiling, Data Binning, Visual Table Concatentation, Data Quality Transformations, Filtering, and inclusion of scripted data sets in visual data preparation.
  • On Demand App Generation – User-generated on-demand analysis apps drawn from Big Data.

WHAT YOU SHOULD DO NEXT:

  • Customers can visit the Qlik Customer Download Site HERE
  • If you are new to Qlik, you can download the Qlik Sense June 2017 desktop version HERE.
  • Stay informed and learn more by joining us on an upcoming webinar or local event.
43 Comments
pascal_theurot
Partner - Creator II
Partner - Creator II

Extensions seem to take more time to display in 2017.06 patch 1 versus 3.2 version.

0 Likes
669 Views
Ian_Crosland
Employee
Employee

Is an option to access the data source directly vs having to stage into QVD files? You can have multiple detail apps to drill into from one summary selection app which each of which could execute the where clause against source vs a QVD file.  In your example the engineer could select the problem part and investigate the production line looking into machine up-time metrics and from here drill down into the factory/location/machine detail app, if this does not show any issues they could then drill into another app for example the supplier schedule to look into the detail delivery data which supplies the component parts for the bill of materials etc.

Also we demoed a new research project at Qonnections which would more easily satisfy your ad-hoc requirements "the Big Data Index" which creates an associative index at source (the demo had this built in HDFS with 40 billion rows processing on 8 nodes).  The result of this is to allow billions of rows to be accessed via the front end of Qlik with the same performance as an in memory.

0 Likes
669 Views
sebasdpereira
Partner - Contributor III
Partner - Contributor III

Thanks Robert!

0 Likes
669 Views
sebasdpereira
Partner - Contributor III
Partner - Contributor III

About time dimmension. I forget to check this!!!

0 Likes
669 Views
sirpod90
Contributor III
Contributor III

Hallo Ian,

thanks for your feedback.

  • Where can I find detailed information to "the Big Data Index"?
  • Is there any more documentation for the R-Plugin as at github?
    • And are there anymore function planed with R-plugin as ScriptEval and co.?
    • Do you planned to add plots from R to Qlik?
      • In my view that is must have to be able to have advanced analytics in Qlik!
  • And where can I find the advanced properties panel for on demand app generation?
    • It is explained in the user guide, but I can not find anywhere.

2017-07-07 08_34_22-User Guide – OnDemandApplicationGeneration Extension.pdf.png

Thanks and regards

0 Likes
669 Views
Ian_Crosland
Employee
Employee

- The Big Data Index is still a research within Qlik R&D and not expected to market for at least 12 months so more information will be available next year

- Details on the R plugin/link to github can be found here SSE protocol repository ‒ Qlik Sense

- The screenshot you posted is from the on demand extension, this has been replaced with built in functionality in the June release, the following link shows you how to enable the functionality in the QMC: On-demand apps ‒ Qlik Sense

and this link goes through the properties: Building an on-demand app ‒ Qlik Sense

0 Likes
669 Views
tln
Employee
Employee

For all of you that are trying to find the Advanced Analytics plugins (SSE and R-plugins) for the June 2017 release, see links below.

The general SSE (or AA) documentation of the protocol that also includes example plugins in Python and C++ as well as example qvf apps resides here:

https://github.com/qlik-oss/server-side-extension

For the 1.0.0 release that matches Qlik Sense June 2017 release:

https://github.com/qlik-oss/server-side-extension/tree/v1.0.0

The R-plugin with documentation, source code and example qvf apps can be found here:

https://github.com/qlik-oss/sse-r-plugin

For the 1.0.0 release that matches Qlik Sense June 2017 release:

https://github.com/qlik-oss/sse-r-plugin/tree/v1.0.0

Compiled binaries ready to be used:

https://github.com/qlik-oss/sse-r-plugin/releases/download/v1.0.0/sse-r-plugin-1.0.0-qlik-oss.zip

733 Views
karthik_capg
Contributor
Contributor

It's very easy to create ODAG,

Common sub routine

SUB ExtendQVDWhere(Name, ValVarName)

  LET T = Name & '_COLNAME';

  LET ColName = $(T);

  LET Values = $(ValVarName);

  IF (len(Values) > 0) THEN

        IF len(WHERE_PART) > 0 THEN

        LET WHERE_PART = '$(WHERE_PART) AND mixmatch([$(ColName)],$(Values) )';

    ELSE

        LET WHERE_PART = ' WHERE mixmatch([$(ColName)],$(Values))';

    ENDIF

  ENDIF

END SUB;

SUB BuildValueList(VarName, TableName, ColName, QuoteChrNum)

  IF ($(QuoteChrNum) = 0) THEN

    LET LOADEXPR = 'Concat($(ColName),' & chr(39) & ',' & chr(39) & ') AS CombinedData';

  ELSE

    LET CHREXPR = ' chr(' & '$(QuoteChrNum)' & ') ';

    LET LOADEXPR = 'Concat( $(CHREXPR) & $(ColName) & $(CHREXPR)' & ',' & chr(39) & ',' & chr(39) & ') AS CombinedData';

  ENDIF

  _TempTable:

  LOAD $(LOADEXPR) Resident $(TableName);

  Let vNoOfRows = NoOfRows('_TempTable');

  IF $(vNoOfRows)> 0 THEN

    LET $(VarName) = Peek('CombinedData',0,'_TempTable');

  ENDIF

  drop table _TempTable;

  drop table '$(TableName)';

END SUB;

ODAG Section

SET Brand='';

OdagBinding:

LOAD * INLINE [

VAL

$(odso_BrandName){"quote": "", "delimiter": ""}

];

SET Brand_COLNAME='BrandName';

CALL BuildValueList('Brand', 'OdagBinding', 'VAL', 39); // 39 is for single quote wrapping values

SET WHERE_PART = '';

FOR EACH fldname IN 'Brand'

  LET vallist = $(fldname);

  IF (IsNull(vallist)) THEN

    LET vallist = '';

  ENDIF

  IF (len(vallist) > 0) THEN

    CALL ExtendQVDWhere('$(fldname)','vallist');

  ENDIF

NEXT fldname

main:

LOAD

    BrandName,

    product,

    cost

 

FROM [lib://Data/main.qvd]

(qvd)$(WHERE_PART);

0 Likes
733 Views
karthiks_dwbi
Creator III
Creator III

Easy way to create ODAG functionality in Qlik ,

Common sub routine

SUB ExtendQVDWhere(Name, ValVarName)

  LET T = Name & '_COLNAME';

  LET ColName = $(T);

  LET Values = $(ValVarName);

  IF (len(Values) > 0) THEN

        IF len(WHERE_PART) > 0 THEN

        LET WHERE_PART = '$(WHERE_PART) AND mixmatch([$(ColName)],$(Values) )';

    ELSE

        LET WHERE_PART = ' WHERE mixmatch([$(ColName)],$(Values))';

    ENDIF

  ENDIF

END SUB;

SUB BuildValueList(VarName, TableName, ColName, QuoteChrNum)

  IF ($(QuoteChrNum) = 0) THEN

    LET LOADEXPR = 'Concat($(ColName),' & chr(39) & ',' & chr(39) & ') AS CombinedData';

  ELSE

    LET CHREXPR = ' chr(' & '$(QuoteChrNum)' & ') ';

    LET LOADEXPR = 'Concat( $(CHREXPR) & $(ColName) & $(CHREXPR)' & ',' & chr(39) & ',' & chr(39) & ') AS CombinedData';

  ENDIF

  _TempTable:

  LOAD $(LOADEXPR) Resident $(TableName);

  Let vNoOfRows = NoOfRows('_TempTable');

  IF $(vNoOfRows)> 0 THEN

    LET $(VarName) = Peek('CombinedData',0,'_TempTable');

  ENDIF

  drop table _TempTable;

  drop table '$(TableName)';

END SUB;

ODAG Section

SET Brand='';

OdagBinding:

LOAD * INLINE [

VAL

$(odso_BrandName){"quote": "", "delimiter": ""}

];

SET Brand_COLNAME='BrandName';

CALL BuildValueList('Brand', 'OdagBinding', 'VAL', 39); // 39 is for single quote wrapping values

SET WHERE_PART = '';

FOR EACH fldname IN 'Brand'

  LET vallist = $(fldname);

  IF (IsNull(vallist)) THEN

    LET vallist = '';

  ENDIF

  IF (len(vallist) > 0) THEN

    CALL ExtendQVDWhere('$(fldname)','vallist');

  ENDIF

NEXT fldname

main:

LOAD

    BrandName,

    product,

    cost

 

FROM [lib://Data/main.qvd]

(qvd)$(WHERE_PART);

0 Likes
733 Views
gsbeaton
Luminary Alumni
Luminary Alumni

Hi Tobias - I may be missing something or misunderstanding your setup here, but if you have the RAM available for *all* of your data, then of course you should load in all of your data.  Where ODAG is useful is when you are analysing 10s of billions of rows of data. Not many servers in the world have the ability to analyse that volume of data from memory, which is where ODAG comes into its own.

I note you mentioned the URL limit (ref to chaining, but also relevant for ODAG).  I wrote an article that addresses that issue earlier this year here: https://www.qliktastic.com/2017/02/03/qlikview-big-data-extension/

0 Likes
733 Views