Qliksense API Calls to Dataiku Engine via Python
Hi,
I'm curious if there is documentation around using qliksense to utilize the Dataiku engine. We will use Qlik SSE - server side extensions - to interact with Dataiku via the python API. Ultimately, this lets us do real time parameterized data trafficking. I am trying to document and figure this process out.Thanks!
Answers
-
tim-wright Partner, L2 Designer, Snowflake Advanced, Neuron 2020, Registered, Neuron 2021, Neuron 2022 Posts: 77 Partner
@TJO_Eagle
Very interesting question. I suspect I am more able to help you on this than most (my company uses Qlik Sense heavily) and I have also written a number of Server Side Extensions for Qlik (with Python).Can you elaborate on exactly what you are trying to accomplish (in DSS)? Are you trying to trigger Dataiku Jobs? Read from Dataiku datasets? Perform some more complex DSS actions? Are you planning on using the SSE for backend calls (Qlik Load Script) or from the front end? If you can elaborate on the workflow, I might be able to better help with specifics. That being said, here are some general comments:
The basic functionality of SSEs with Qlik allows data to be passed from Qlik to Python (where it Python runs some calculation) and returns data (as Qlik Duals) back to Qlik. The functions that you write in your SSE are registered with the Qlik engine, so from Qlik-side it looks like you are just calling an ordinary function.
If you want to interact with DSS from Qlik, you will need to build the logic into your SSE using the Python APIs for DSS. So From Qlik you will call a SSE function, data will be passed to python (SSE). Then in the Python SSE you will need to make the connection to Dataiku using the Python APIs. You will be responsible for the logic of what data gets passed from Qlik to Python, what data (if any) you pass from Python to DSS in your api calls, processing data returned from DSS into appropriate data format for Qlik and then passing that data back to Qlik from Python.
Regarding How:
Take a look here: https://doc.dataiku.com/dss/latest/python-api/outside-usage.html to read up on how to connect to DSS from outside of DSS. Use this in your SSE. If you are concerned with being able to audit who the interaction from Qlik is from, you may need to build that logic into your SSE as well (you can impersonate user actions through the APIs). Alternatively you could create a Qlik Service account within DSS and then all actions triggered by your SSE will be traceable to that account - but not necessarily back to the user who initiated that call (unless it exists in your SSE or Qlik logs).
If you need more specific guidance on controlling a particular aspect of DSS through the APIs let us know.