A healthcare analytics firm is building a Qlik Sense application to track patient journeys. The data model must support analysis of events that occur between two specific dates, such as hospital admission and discharge. The Events table contains a PatientID and an EventTimestamp. The Stays table contains PatientID, AdmissionDate, and DischargeDate. The business requires associating all events for a patient that occurred during their stay. Which script function is most appropriate to create this association efficiently?
Answer and explanation
Correct answer: B
IntervalMatch is specifically designed to link a discrete point in time (like EventTimestamp) to a time interval (between AdmissionDate and DischargeDate). It is the most efficient and direct way to solve this common data modeling problem, often seen in manufacturing, logistics, and healthcare.
Question 2
A data architect is designing a security model for a multi-tenant SaaS application. The requirement is to restrict user access not only by CustomerID (row-level security) but also to hide sensitive fields like Customer_Contact_Email from lower-privileged users within the same customer account. Which Section Access feature should be used to achieve this column-level security?
Answer and explanation
Correct answer: C
The OMIT system field in the Section Access table allows for dynamic hiding of fields based on user access rights. By listing the field names to be omitted for specific users or groups, you can implement column-level security directly within the data reduction framework.
Question 3
During the initial requirements gathering for a new sales analytics application, the stakeholders provided a list of desired metrics. Which of the following items represents a 'metric' rather than a 'dimension' or 'attribute'?
Total revenue by product category
Customer's shipping address
Average deal size
Product SKU
Answer and explanation
Correct answer: C
A metric is a quantifiable measure used to track and assess a business process. 'Average deal size' is a calculated value (e.g., Sum(Sales) / Count(Deals)) representing a performance indicator. 'Shipping address' and 'Product SKU' are descriptive attributes (dimensions), and 'Total revenue by product category' describes a metric sliced by a dimension.
Question 4
A data architect is optimizing a data model with a large fact table (FactSales) and a large, wide dimension table (DimCustomer). The Data Model Viewer shows a high Subset Ratio for the CustomerID key between these two tables. Which issue does this indicate, and what is the most effective solution?
Answer and explanation
Correct answer: B
A high subset ratio (close to 100%) on a key indicates that many values in the dimension table do not have corresponding entries in the fact table. This bloats the app's memory with unused dimensional data. The most effective solution is to load only the dimension records that have associated facts, which can be achieved using a Right Keep or an Exists() check.
Question 5
True or False: Using SET NullInterpret = ''; at the start of the script will cause Qlik Sense to treat all NULL values read from a database as empty strings, which can help prevent unintended data associations on NULL keys.
Answer and explanation
Correct answer: A
This statement is true. By default, Qlik treats NULL values from different source fields as distinct, non-associating values. Setting NullInterpret to an empty string tells the script engine to convert any subsequent NULL values it encounters into empty strings. Since all empty strings are identical, this prevents Qlik from creating associations between records based on their NULL keys from different tables.
Question 6
A retail company needs to analyze sales performance against dynamic, user-defined date ranges, such as 'Last 60 Days' or 'Year to Date'. The data architect wants to avoid creating many hard-coded master calendar flags. Which Qlik Sense feature is best suited for building these dynamic date-range calculations?
Answer and explanation
Correct answer: B
Set Analysis is the ideal tool for this requirement. By using set modifiers with date functions (e.g., Today(), YearStart()) and variables, you can create expressions that dynamically calculate date ranges at runtime based on the current date or user selections, without needing to pre-calculate flags in the load script.
Question 7
Multiple answers
A data architect is building a script to load customer data. The source system provides the DateOfBirth. The business needs to group customers into age brackets (e.g., '18-25', '26-35', '36-45'). Which two functions are most commonly combined to achieve this classification in the load script? (Select TWO)
Answer and explanation
Correct answers: A, C
Question 8
A development team is using Git for version control of their Qlik Sense application scripts. To improve maintainability, they want to store the script for their master calendar in a separate file and reuse it across multiple applications. Which script statement allows them to include the content of an external script file into their main load script?
Answer and explanation
Correct answer: D
The $(Include=...) statement is a script control statement used to insert the content of another file directly into the script at the point where the statement is called. This is a best practice for modularizing code, improving reusability, and managing common script components like a master calendar or standard variables.
Question 9
Case Study
A global logistics company, 'ShipFast Inc.', wants to build a Qlik Sense application to monitor shipment statuses. The company's data ecosystem consists of two primary tables. The first is a Shipments table containing ShipmentID, Origin, Destination, and PlannedDeliveryDate. The second is a Shipment_Events table which logs every status scan for a shipment, containing ShipmentID, EventTimestamp, StatusCode, and Location.
The key business requirement is to create a 'Current Status' dashboard. This dashboard must show, for each ShipmentID, ONLY the most recent event record from the Shipment_Events table. The Shipment_Events table is very large, containing billions of rows, so performance is critical. The script must be highly optimized to avoid full scans of this table during reloads.
After analyzing the requirements, the data architect decides on a script-based solution to isolate the latest event for each shipment. The goal is to create a final Current_Shipment_Status table that joins the Shipments table with only the latest event details.
Which scripting approach is the most performant and scalable for this scenario?
Answer and explanation
Correct answer: D
This approach is highly efficient for finding the 'last event' value. Using FirstSortedValue with a negated timestamp (-EventTimestamp) allows Qlik to find the value corresponding to the maximum timestamp for each ShipmentID in a single, optimized pass. This avoids complex self-joins or row-by-row iteration (Peek()) which are less performant on very large datasets.
Question 10
A data architect is connecting to a web-based data source using the Qlik REST Connector. The API returns data in pages, and the URL for the next page is provided in the response body of the current page. Which pagination type in the REST Connector configuration should be used to handle this scenario?
Answer and explanation
Correct answer: B
The 'Next page' pagination type is designed for APIs where the URL for the subsequent page of data is contained within the response of the current request. The connector can be configured to parse this URL from the response body or headers and use it for the next iteration.