QSDA2024問題集最新版を今すぐ試そう![2024年11月] 試験準備には欠かせません!
有能な受験者がシミュレーション済みのQSDA2024試験PDF問題を試そう
Qlik QSDA2024 認定試験の出題範囲:
| トピック | 出題範囲 |
|---|---|
| トピック 1 |
|
| トピック 2 |
|
| トピック 3 |
|
| トピック 4 |
|
| トピック 5 |
|
質問 # 31 
Refer to the exhibit.
A data architect needs to load data from Customers.qvd and sort the Country field in ascending order. Which method should be used?
- A. Insert an Order By clause after the FROM clause in the CustTemp table
- B. Insert a Group By clause into the LOAD statement for the CustTemp table after the FROM clause
- C. Perform a Resident LOAD of the CustTemp table and insert an Order By clause in this table
- D. Move the Country field to the first position in the field list in the LOAD statement
正解:C
解説:
When loading data from a QVD file into a Qlik Sense application, if you need to sort the data by a specific field (in this case, the Country field), the Order By clause can be used. However, the Order By clause cannot be directly applied during the initial load from the QVD. Instead, the data should first be loaded into a temporary table and then sorted in a subsequent resident load.
* Initial Load from QVD:The data is first loaded into a temporary table (CustTemp) without any sorting.
* Resident Load with Order By:After the initial load, you perform a Resident Load from the CustTemp table and apply the Order By clause to sort the data by the Country field in ascending order.
LOAD
Address,
City,
CompanyName,
ContactName,
Country,
_CustomerID,
DivisionID,
DivisionName,
Fax,
Phone,
PostalCode,
StateProvince
RESIDENT CustTemp
ORDER BY Country;
This method ensures that the data is sorted correctly without violating Qlik Sense's loading rules.
質問 # 32
Refer to the exhibit.
A data architect needs to build a dashboard that displays the aggregated sates for each sales representative. All aggregations on the data must be performed in the script.
Which script should the data architect use to meet these requirements?
- A.

- B.

- C.

- D.

正解:B
解説:
The goal is to display the aggregated sales for each sales representative, with all aggregations being performed in the script. Option C is the correct choice because it performs the aggregation correctly using a Group by clause, ensuring that the sum of sales for each employee is calculated within the script.
* Data Load:
* The Data table is loaded first from the Sales table. This includes the OrderID, OrderDate, CustomerID, EmployeeID, and Sales.
* Next, the Emp table is loaded containing EmployeeID and EmployeeName.
* Joining Data:
* A Left Join is performed between the Data table and the Emp table on EmployeeID, enriching the data with EmployeeName.
* Aggregation:
* The Summary table is created by loading the EmployeeName and calculating the total sales using the sum([Sales]) function.
* The Resident keyword indicates that the data is pulled from the existing tables in memory, specifically the Data table.
* The Group by clause ensures that the aggregation is performed correctly for each EmployeeName, summarizing the total sales for each employee.
Key Qlik Sense Data Architect References:
* Resident Load: This is a method to reuse data that is already loaded into the app's memory. By using a Resident load, you can create new tables or perform calculations like aggregation on the existing data.
* Group by Clause: The Group by clause is essential when performing aggregations in the script. It groups the data by specified fields and performs the desired aggregation function (e.g., sum, count).
* Left Join: Used to combine data from two tables. In this case, Left Join is used to enrich the sales data with employee names, ensuring that the sales data is associated correctly with the respective employee.
Conclusion:Option C is the most appropriate script for this task because it correctly performs the necessary joins and aggregations in the script. This ensures that the dashboard will display the correct aggregated sales per employee, meeting the data architect's requirements.
質問 # 33
Exhibit.
Refer to the exhibit.
A data architect is loading the tables and a synthetic key is generated.
How should the data architect resolve the synthetic key?
- A. Create a composite key using OrderlD and LineNo, and remove OrderlD and LineNo from Shipments
- B. Remove the LineNo field from both tables and use the AutoNumber function on the OrderlD field
- C. Create a composite key using OrderlD and UneNo
- D. Remove the LineNo field from Shipments and use the AutoNumber function on the OrderlD field
正解:C
解説:
In this scenario, the data architect is loading two tables, Orders and Shipments, into Qlik Sense, and a synthetic key is being generated due to the presence of shared fields (OrderID and LineNo) between these tables.
Understanding the Issue:
* Synthetic Keys: Qlik Sense automatically creates synthetic keys when two or more tables share multiple fields with the same names. While synthetic keys aren't necessarily problematic, they can sometimes lead to incorrect or unexpected data associations and should be resolved when possible to maintain clarity and control over the data model.
* The tables Orders and Shipments share the fields OrderID and LineNo. In this context, these fields together uniquely identify each record, so they are both necessary for accurate data linkage.
Correct Resolution Approach:
Option C: Create a composite key using OrderID and LineNois the best approach.
Here's why:
* Composite Key Creation:
* By creating a composite key that combines OrderID and LineNo (e.g., OrderID & '-' & LineNo), you ensure that each line in the orders and shipments tables is uniquely identified. This composite key will accurately link the related records from the Orders and Shipments tables.
* Avoiding Synthetic Keys:
* By manually creating this composite key, you eliminate the need for Qlik Sense to generate a synthetic key, thereby simplifying the data model and ensuring that data associations are clear and controlled.
* Retaining Both Fields:
* This approach allows you to keep both OrderID and LineNo as separate fields in your tables if needed for other analyses or reporting purposes, while using the composite key for linking the tables.
References:
* Qlik Sense Data Modeling Best Practices: When dealing with multiple fields that are used together to uniquely identify records, it is recommended to create composite keys rather than relying on Qlik Sense's synthetic keys for clarity and better control.
質問 # 34
Exhibit.
Refer to the exhibits.
The Orders table contains a list of orders and associated details. A data architect needs to replace the SupplierlD with the SupplierName using the second table as the source.
The output must be a single table.
Which script should the data architect use?
- A.

- B.

- C.

- D.

正解:C
解説:
In this scenario, the data architect needs to replace the SupplierID in the Orders table with the corresponding SupplierName from the Suppliers table, and the desired output should be a single table that includes all the order details along with the SupplierName instead of the SupplierID.
Analyzing the Options:
* Option A:
* Uses a MAPPING LOAD followed by an APPLYMAP to replace SupplierID with SupplierName in the Orders table. However, the table is dropped afterward, which means it won't produce the required output.
* The MAPPING LOAD approach is generally used to map values but is not necessary in this context as we are combining data from two tables directly.
* Option B:
* This option attempts to LEFT JOIN the Products table with the Suppliers table, but it does not directly address replacing SupplierID with SupplierName in the Orders table.
* Additionally, it does not remove the SupplierID after the join, which is essential for the correct output.
* Option C:
* This option uses a LEFT JOIN with the DISTINCT keyword on the SupplierID field to avoid duplicates. The SupplierName is correctly joined to the Orders table, replacing the SupplierID.
* This approach is the most appropriate because it results in a single table containing all order details with the SupplierName instead of the SupplierID.
* Option D:
* Similar to Option A, but it also introduces an unnecessary renaming step with MAPPING LOAD.
It's redundant and does not improve the solution over Option C.
Correct Script Choice:
Option Cis the correct script because:
* It ensures that SupplierName replaces SupplierID in the Orders table using a LEFT JOIN.
* The DISTINCT keyword is applied to the SupplierID field to prevent duplicate rows during the join.
* The result is a single table containing the required information with SupplierName in place of SupplierID.
References:
* Qlik Sense Join Operations: Using the correct JOIN type and ensuring proper deduplication (with DISTINCT if necessary) is key to merging tables in Qlik Sense.
質問 # 35 
Refer to the exhibits.
On executing a load script of an app, the country field needs to be normalized. The developer uses a mapping table to address the issue. The script runs successfully but the resulting table is not correct.
What should the data architect do?
- A. Use a LEFT JOIN Instead of the APPLYMAP
- B. Review the values of the source mapping table
- C. Create two different mapping tables
- D. Use LOAD DISTINCT on the mapping table
正解:B
解説:
In this scenario, the issue arises from using the applymap() function to normalize the country field values, but the result is incorrect. The reason is most likely related to the values in the source mapping table not matching the values in the Fact_Table properly.
The applymap() function in Qlik Sense is designed to map one field to another using a mapping table. If the source values in the mapping table are inconsistent or incorrect, the applymap() will not function as expected, leading to incorrect results.
Steps to resolve:
* Review the mapping table (MAP_COUNTRY): The country field in the CountryTable contains values such as "U.S.", "US", and "United States" for the same country. To correctly normalize the country names, you need to ensure that all variations of a country's name are consistently mapped to a single value (e.g., "USA").
* Apply Mapping: Review and clean up the mapping table so that all possible variants of a country are correctly mapped to the desired normalized value.
Key References:
* Mapping Tables in Qlik Sense: Mapping tables allow you to substitute field values with mapped values. Any mismatches or variations in source values should be thoroughly reviewed.
* Applymap() Function: This function takes a mapping table and applies it to substitute a field value with its mapped equivalent. If the mapped values are not correct or incomplete, the output will not be as expected.
質問 # 36
Exhibit.
Refer to the exhibit.
A major healthcare organization requests a new app with the following requirements:
* Users can filter AdmissionDate and DischargeDate by all fields in the Master Calendar table
* Use an existing QVD file, which includes dates 20 years into the future
* Users should not be able to filter on dates that have no associated encounters Which approach should the data architect take to meet these requirements?
- A. 1. Load the Master Calendar and Encounters tables
2. Perform a Join Load on the Encounters table to the Resident master calendar and alias the date fields appropriately for the Admission Date
3. Perform a Join Load on the Encounters table to the Resident master calendar and alias the date fields appropriately for the Discharge Date - B. 1. Load the Encounters table
2. Perform a Left Join Load on the Encounters table to the master calendar and alias the date fields appropriately for the Admission Date
3. Perform a Left Join Load on the Encounters table to the master calendar and alias the date fields appropriately for the Discharge Date - C. 1. Load the master calendar as AdmissionCalendar and alias the fields to reflect they are for Admission
2. Load the master calendar as DischargeCalendar and alias the fields to reflect they are for Discharge
3. Load the Encounters table - D. 1. Load the master calendar
2. Create two mapping tables called AdmissionCalendar and DischargeCalendar from the Resident master calendar thatfeas all fields appropriately named
3. Load the Encounters table and use ApplyMap for the AdmissionDate and DischargeDate appropriately
正解:C
解説:
In the scenario presented, a major healthcare organization needs an app that allows users to filter AdmissionDate and DischargeDate by all fields in the Master Calendar table, while also ensuring that users cannot filter on dates that have no associated encounters.
To meet these requirements, the most appropriate approach is to:
* Load the Master Calendar twice,once as AdmissionCalendar and once as DischargeCalendar. Each instance should have its fields appropriately aliased to reflect whether they pertain to Admission or Discharge dates.
* Load the Encounters tableas usual, but now you have two separate calendar tables that can be linked to the appropriate date fields (AdmissionDate and DischargeDate) in the Encounters table.
This approach ensures:
* Users can filter both AdmissionDate and DischargeDateindependently using the fields in their respective calendar tables.
* Only relevant datesassociated with actual encounters will be available for filtering, as the calendars are linked specifically to the AdmissionDate and DischargeDate fields.
* Efficiency and clarityin the data model, as the fields from the Master Calendar are distinctly assigned to either Admission or Discharge, avoiding any confusion or incorrect filtering.
This method avoids unnecessary complexity and directly meets the healthcare organization's requirements in a straightforward and scalable manner.
質問 # 37
Sales managers need to see an overview of historical performance and highlight the current year's metrics.
The app has the following requirements:
* Display the current year's total sales
* Total sales displayed must respond to the user's selections
Which variables should a data architect create to meet these requirements?
- A.

- B.

- C.

- D.

正解:C
解説:
To meet the requirements of displaying the current year's total sales in a way that responds to user selections, the correct approach involves using both SET and LET statements to define the necessary variables in the data load editor.
Explanation of Option C:
* SET vCurrentYear = Year(Today());
* The SET statement is used here to assign the current year to the variable vCurrentYear. The SET statement treats the variable as a text string without evaluation. This is appropriate for a variable that will be used as part of an expression, ensuring the correct year is dynamically set based on the current date.
* LET vCurrentYTDSales = '=SUM({$<Year={'$(vCurrentYear)'}>} [Sales Amount])';
* The LET statement is used here to assign an evaluated expression to the variable vCurrentYTDSales. This expression calculates the Year-to-Date (YTD) sales for the current year by filtering the Year field to match vCurrentYear. The LET statement ensures that the expression inside the variable is evaluated, meaning that when vCurrentYTDSales is called in a chart or KPI, it dynamically calculates the YTD sales based on the current year and any user selections.
Key Points:
* Dynamic Year Calculation: Year(Today()) dynamically calculates the current year every time the script runs.
* Responsive to Selections: The set analysis syntax {$<Year={'$(vCurrentYear)'}>} ensures that the sales totals respond to user selections while still focusing on the current year's data.
* Appropriate Use of SET and LET: The combination of SET for storing the year and LET for storing the evaluated sum expression ensures that the variables are used effectively in the application.
質問 # 38 
Refer to the exhibit
A large transport company (Company A) acquires a smaller rival (Company B).
Company A has been using Qlik Sense tor 6 years to track revenue per ship journey. Ship journeys with no revenue (such as journeys to shipyards for repair) always show revenue of $0.
Company A wants to combine its data set with the data set of the acquired Company B. Company B's ship journey data shows $0 revenue in one of the following ways:
* A NULL value
* A value with one or more blank spaces (ASCII char code 32)
The data architect wants to conform the Company B data to the Company A standard, specifically regarding the use of an explicit $0 for journeys without revenue. Which script line should the data architect use?
- A.

- B.

- C.

- D.

正解:D
解説:
In this scenario, the data architect needs to conform the revenue data from Company B to match the data standard of Company A, where $0 is explicitly used to represent journeys without revenue.
Explanation of the Correct Script:
* Option A:money(replace(Revenue, chr(32), 0)) AS [Revenue Conformed]
* replace(Revenue, chr(32), 0):This part of the expression replaces any spaces (ASCII character code 32) in the Revenue field with 0.
* money(...):This function formats the resulting value as currency. Since Company B may have either null values or spaces where 0 should be, this script ensures that any blanks are replaced with 0 and then formatted as currency.
Why Option A is Correct:
* Handling Spaces:The replace() function is effective in replacing spaces with 0, conforming to Company A's standard of using $0 for non-revenue journeys.
* Handling NULL Values:The money() function is used to ensure the final output is formatted as currency. However, it's important to note that NULL values are not directly handled by the replace() function, which is why it is applied before money() to deal with spaces.
質問 # 39
A data architect executes the following script:
What will be the result of Table.A?
- A.

- B.

- C.

- D.

正解:C
解説:
In the script provided, there are two tables being loaded inline: Table_A and Table_B. The script uses the Join function to combine Table_B with Table_A based on the common field Field_1. Here's how the join operation works:
* Table_Ainitially contains three records with Field_1 values of 01, 01, and 02.
* Table_Bcontains two records with Field_1 values of 01 and 03.
When Join(Table_A) is executed, Qlik Sense will perform an inner join by default, meaning it will join rows from Table_B to Table_A where Field_1 matches in both tables. The result is:
* For Field_1 = 01, there are two matches in Table_A and one match in Table_B. This results in two records in the joined table where Field_4 and Field_5 values from Table_B are repeated for each match in Table_A.
* For Field_1 = 02, there is no corresponding Field_1 = 02 in Table_B, so the Field_4 and Field_5 values for this record will be null.
* For Field_1 = 03, there is no corresponding Field_1 = 03 in Table_A, so the record from Table_B with Field_1 = 03 is not included in the final joined table.
Thus, the correct output will look like this:
* Field_1 = 01, Field_2 = AB, Field_3 = 10, Field_4 = 30%, Field_5 = 500
* Field_1 = 01, Field_2 = AC, Field_3 = 50, Field_4 = 30%, Field_5 = 500
* Field_1 = 02, Field_2 = AD, Field_3 = 75, Field_4 = null, Field_5 = null
質問 # 40
Users of a published app report incomplete visualizations. The data architect checks the app multiple times and cannot replicate the error. The error affects only one team.
Which is the most likely cause?
- A. An Omit field has been applied.
- B. Section access restricts too many records.
- C. The affected users were NOT added to the Section Access table.
- D. A security rule has been applied to the sheet object.
正解:B
解説:
In this scenario, users of a published app report incomplete visualizations, but the data architect is unable to replicate the error. This issue affects only one team, suggesting that the problem is related to how data is being restricted or filtered for that specific team.
* Section Access: This is a security feature in Qlik Sense that controls user access to specific data within an app. If Section Access is misconfigured, it can restrict access to more records than intended, leading to incomplete visualizations for certain users or teams.
* Restricting Too Many Records: If the Section Access is too restrictive, it might limit the data available to the affected users, causing the visualizations to display incomplete information. This could explain why the data architect, who likely has full access, cannot replicate the issue.
質問 # 41
Exhibit.
Refer to the exhibit.
The data architect needs to build a model that contains Sales and Budget data for each customer. Some customers have Sales without a Budget, and other customers have a Budget with no Sales.
During loading, the data architect resolves a synthetic key by creating the composite key.
For validation, the data architect creates a table that contains Customer, Month, Sales, and Budget columns.
What will the data architect see when selecting a month?
- A. Customer Names and Sales records for the selected month but with only non-null values in Budget column
- B. Customer Names and Budaets records for the selected month. Sales column can contain null or non-null values
- C. Customer Names and Sales records for the selected month, Budgets column can contain null or non-null values
- D. All Customer Names for both Sales and Budget records for the selected month
正解:C
解説:
In the scenario where the data model is built with a composite key (keyYearMonthCustNo) to resolve synthetic keys, the following outcomes occur:
* Sales and Budget Data Integration:
* The composite key ensures that each combination of Year, Month, and Customer is uniquely represented in the combined Sales and Budget data.
* During data selection (e.g., when a specific month is selected), Qlik Sense will show all the customer names that have either Sales or Budget data associated with that month.
* Resulting Data View:
* For the selected month, customers with sales records will display their Sales data. However, if the corresponding Budget data is missing, the Budget column will contain null values.
* Similarly, if a customer has a Budget but no Sales data for the selected month, the Sales column will show null values.
Validation Outcome:When the data architect selects a month, they will see the following:
* Customer Names and Sales recordsfor the selected month, where the Sales column will have values and the Budget column may contain null or non-null values depending on the data availability.
質問 # 42
Refer to the exhibit.
A system creates log files and csv files daily and places these files in a folder. The log files are named automatically by the source system and change regularly. All csv files must be loaded into Qlik Sense for analysis.
Which method should be used to meet the requirements?
- A.

- B.

- C.

- D.

正解:B
解説:
In the scenario described, the goal is to load all CSV files from a directory into Qlik Sense, while ignoring the log files that are also present in the same directory. The correct approach should allow for dynamic file loading without needing to manually specify each file name, especially since the log files change regularly.
Here's whyOption Bis the correct choice:
* Option A:This method involves manually specifying a list of files (Day1, Day2, Day3) and then iterating through them to load each one. While this method would work, it requires knowing the exact file names in advance, which is not practical given that new files are added regularly. Also, it doesn't handle dynamic file name changes or new files added to the folder automatically.
* Option B:This approach uses a wildcard (*) in the file path, which tells Qlik Sense to load all files matching the pattern (in this case, all CSV files in the directory). Since the csv file extension is explicitly specified, only the CSV files will be loaded, and the log files will be ignored. This method is efficient and handles the dynamic nature of the file names without needing manual updates to the script.
* Option C:This option is similar to Option B but targets text files (txt) instead of CSV files. Since the requirement is to load CSV files, this option would not meet the needs.
* Option D:This option uses a more complex approach with filelist() and a loop, which could work, but it's more complex than necessary. Option B achieves the same result more simply and directly.
Therefore,Option Bis the most efficient and straightforward solution, dynamically loading all CSV files from the specified directory while ignoring the log files, as required.
質問 # 43
Exhibit.
While performing a data load from the source shown, the data architect notices it is NOT appropriate for the required analysis.
The data architect runs the following script to resolve this issue:
How many tables will this script create?
- A. 0
- B. 1
- C. 2
- D. 3
正解:D
解説:
In this scenario, the data architect is using a GENERIC LOAD statement in the script to handle the data structure provided. A GENERIC LOAD is used in Qlik Sense when you have data in a key-value pair structure and you want to transform it into a more traditional table structure, where each attribute becomes a column.
Given the input data table with three columns (Object, Attribute, Value), and the attributes in the Attribute field being either color, diameter, length, or width, the GENERIC LOAD will create separate tables based on the combinations of Object and each Attribute.
Here's how the GENERIC LOAD works:
* For each unique object(circle, rectangle, square), the GENERIC LOAD creates separate tables based on the distinct values of the Attribute field.
* Each of these tableswill contain two fields: Object and the specific attribute (e.g., color, diameter, length, width).
Breakdown:
* Table for circle:
* Fields: Object, color, diameter
* Table for rectangle:
* Fields: Object, color, length, width
* Table for square:
* Fields: Object, color, length
Each distinct attribute (color, diameter, length, width) and object combination generates a separate table.
Final Count of Tables:
* The script will create6 separate tables: one for each unique combination of Object and Attribute.
References:
* Qlik Sense Documentation on Generic Load: Generic loads are used to pivot key-value pair data structures into multiple tables, where each key (in this case, the Attribute field values) forms a new column in its own table.
質問 # 44
A data architect needs to develop three separate apps (Sales, Finance, and Operations). The three apps share numerous identical calculation expressions.
The goals include:
* Reducing duplicate script
* Saving time on expression modifications
* Increasing reusable Qlik developer assets.
The data architect creates a common script and stores it on a file server that Qlik Sense can access. How should the data architect complete the requirements?
- A. Call batch file
- B. Execute server script
- C. Include script function
- D. Macro on server
正解:C
解説:
When developing multiple Qlik Sense applications (Sales, Finance, Operations) that share numerous identical calculation expressions, it is crucial to have a centralized, reusable script to avoid redundancy, save time on modifications, and increase the reusability of the assets.
The best approach in Qlik Sense to achieve these goals is to use theIncludescript function. This function allows the data architect to reference a script file that is stored on a file server. The Include function willinject the contents of the external script file into the Qlik Sense script at the point where the Include statement is called. This means that all three apps (Sales, Finance, Operations) can include this common script, and any updates made to the script will automatically apply to all apps that include it.
This method provides a highly maintainable solution because:
* No Duplicate Script:The shared logic is maintained in a single file, eliminating redundancy.
* Ease of Modifications:Any changes made to the script are propagated to all applications that include it.
* Reusable Assets:The script can be reused across different applications, enhancing efficiency and consistency.
質問 # 45
Exhibit.
Refer to the exhibit.
A business analyst informs the data architect that not all analysis types over time show the expected data.
Instead they show very little data, if any.
Which Qlik script function should be used to resolve the issue in the data model?
- A. Date(OrderDate) AS OrderDate in both the table "Orders" and "Master Calendar"
- B. TimeStamp#(OrderDate, 'M/D/YYYY hh.mm.ff') AS OrderDate in both the table "Orders" and "Master Calendar"
- C. DatefFloor(OrderDate)) AS OrderDate in both the table "Orders" and "Master Calendar"
- D. TimeStamp(OrderDate) AS OrderDate in both the table "Orders" and "Master Calendar"
正解:A
解説:
In the provided data model, there is an issue where certain types of analysis over time are not showing the expected data. This problem is often caused by a mismatch in the data formats of the OrderDate field between the Orders and MasterCalendar tables.
* Option A:DatefFloor(OrderDate)) would round down to the nearest date boundary, which might not address the root cause if the issue is related to different date and time formats.
* Option B:TimeStamp#(OrderDate, 'M/D/YYYY hh.mm.ff') ensures that the date is interpreted correctly as a timestamp, but this does not resolve potential mismatches in date format directly.
* Option C:TimeStamp(OrderDate) will keep both date and time, which may still cause mismatches if the MasterCalendar is dealing purely with dates.
* Option D:Date(OrderDate) formats the OrderDate to show only the date portion (removing the time part). This function will ensure that the date values are consistent across the Orders and MasterCalendar tables by converting the timestamps to just dates. This is the most straightforward and effective way to ensure consistency in date-based analysis.
In Qlik Sense, dates and timestamps are stored as dual values (both text and numeric), and mismatches can lead to incomplete or incorrect analyses. By using Date(OrderDate) in both the Orders and MasterCalendar tables, you ensure that the analysis will have consistent date values, resolving the issue described.
質問 # 46
......
検証済み材料を使うならまずQSDA2024テストエンジンを試そう:https://jp.fast2test.com/QSDA2024-premium-file.html