Populating Date Dimension in Fabric Lakehouse Without Source
Short answer
AD Populate the date dimension table by using a dataflow (to generate and load dates via Power Query) or by using a Stored procedure activity in a pipeline (to execute insertion logic into the dimensional model).
Question
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Overview
Litware, Inc. is a manufacturing company that has offices throughout North America. The analytics team at Litware contains data engineers, analytics engineers, data analysts, and data scientists.
Existing Environment
Fabric Environment
Litware has been using a Microsoft Power BI tenant for three years. Litware has NOT enabled any Fabric capacities and features.
Available Data
Litware has data that must be analyzed as shown in the following table.

The Product data contains a single table and the following columns.

The customer satisfaction data contains the following tables:
• Survey
• Question
• Response
For each survey submitted, the following occurs:
• One row is added to the Survey table.
• One row is added to the Response table for each question in the survey.
The Question table contains the text of each survey question. The third question in each survey response is an overall satisfaction score. Customers can submit a survey after each purchase.
User Problems
The analytics team has large volumes of data, some of which is semi-structured. The team wants to use Fabric to create a new data store.
Product data is often classified into three pricing groups: high, medium, and low. This logic is implemented in several databases and semantic models, but the logic does NOT always match across implementations.
Requirements
Planned Changes
Litware plans to enable Fabric features in the existing tenant. The analytics team will create a new data store as a proof of concept (PoC). The remaining Liware users will only get access to the Fabric features once the PoC is complete. The PoC will be completed by using a Fabric trial capacity
The following three workspaces will be created:
• AnalyticsPOC: Will contain the data store, semantic models, reports pipelines, dataflow, and notebooks used to populate the data store
• DataEngPOC: Will contain all the pipelines, dataflows, and notebooks used to populate OneLake
• DataSciPOC: Will contain all the notebooks and reports created by the data scientists
The following will be created in the AnalyticsPOC workspace:
• A data store (type to be decided)
• A custom semantic model
• A default semantic model
• Interactive reports
The data engineers will create data pipelines to load data to OneLake either hourly or daily depending on the data source. The analytics engineers will create processes to ingest, transform, and load the data to the data store in the AnalyticsPOC workspace daily. Whenever possible, the data engineers will use low-code tools for data ingestion. The choice of which data cleansing and transformation tools to use will be at the data engineers’ discretion.
All the semantic models and reports in the Analytics POC workspace will use the data store as the sole data source.
Technical Requirements
The data store must support the following:
• Read access by using T-SQL or Python
• Semi-structured and unstructured data
• Row-level security (RLS) for users executing T-SQL queries
Files loaded by the data engineers to OneLake will be stored in the Parquet format and will meet Delta Lake specifications.
Data will be loaded without transformation in one area of the AnalyticsPOC data store. The data will then be cleansed, merged, and transformed into a dimensional model
The data load process must ensure that the raw and cleansed data is updated completely before populating the dimensional model
The dimensional model must contain a date dimension. There is no existing data source for the date dimension. The Litware fiscal year matches the calendar year. The date dimension must always contain dates from 2010 through the end of the current year.
The product pricing group logic must be maintained by the analytics engineers in a single location. The pricing group data must be made available in the data store for T-SOL. queries and in the default semantic model. The following logic must be used:
• List prices that are less than or equal to 50 are in the low pricing group.
• List prices that are greater than 50 and less than or equal to 1,000 are in the medium pricing group.
• List prices that are greater than 1,000 are in the high pricing group.
Security Requirements
Only Fabric administrators and the analytics team must be able to see the Fabric items created as part of the PoC.
Litware identifies the following security requirements for the Fabric items in the AnalyticsPOC workspace:
• Fabric administrators will be the workspace administrators.
• The data engineers must be able to read from and write to the data store. No access must be granted to datasets or reports.
• The analytics engineers must be able to read from, write to, and create schemas in the data store. They also must be able to create and share semantic models with the data analysts and view and modify all reports in the workspace.
• The data scientists must be able to read from the data store, but not write to it. They will access the data by using a Spark notebook
• The data analysts must have read access to only the dimensional model objects in the data store. They also must have access to create Power BI reports by using the semantic models created by the analytics engineers.
• The date dimension must be available to all users of the data store.
• The principle of least privilege must be followed.
Both the default and custom semantic models must include only tables or views from the dimensional model in the data store. Litware already has the following Microsoft Entra security groups:
• FabricAdmins: Fabric administrators
• AnalyticsTeam: All the members of the analytics team
• DataAnalysts: The data analysts on the analytics team
• DataScientists: The data scientists on the analytics team
• DataEngineers: The data engineers on the analytics team
• AnalyticsEngineers: The analytics engineers on the analytics team
Report Requirements
The data analysts must create a customer satisfaction report that meets the following requirements:
• Enables a user to select a product to filter customer survey responses to only those who have purchased that product.
• Displays the average overall satisfaction score of all the surveys submitted during the last 12 months up to a selected dat.
• Shows data as soon as the data is updated in the data store.
• Ensures that the report and the semantic model only contain data from the current and previous year.
• Ensures that the report respects any table-level security specified in the source data store.
• Minimizes the execution time of report queries.
You need to implement the date dimension in the data store. The solution must meet the technical requirements.
What are two ways to achieve the goal? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
Key Takeaways
The main trap is confusing 'view' with 'table' or assuming 'Copy Activity' can generate synthetic data; you must use a tool that can create/generate the date sequence itself.
This page explains how to populate a date dimension table in a Microsoft Fabric Lakehouse when no external data source exists, identifying Dataflows and Stored Procedures as the valid methods.
Common mistake: Candidates often choose C (View) because it easily generates dates, but a View does not populate a physical table. Others choose B (Copy Activity) assuming it can pull from nowhere, which is invalid.
Expert Analysis
The core constraint is that there is no existing data source for the date dimension, and the store must support semi-structured and unstructured data, which identifies the target as a Fabric Lakehouse. The goal is to populate (insert rows into) this table.
- Eliminate C (T-SQL View): A view is a virtual table defined by a query; it does not store physical data. While a view can generate dates on the fly, it cannot populate a physical table with static rows as required by the "populate" instruction and the need for a persistent dimensional model. Furthermore, comments correctly note that you cannot create/alter tables via T-SQL in a Lakehouse SQL endpoint due to read-only constraints, but more importantly, a view fails the semantic requirement of populating a table.
- Eliminate B (Copy Activity): Azure Data Factory Copy activities are designed to move data from a source to a destination. Since there is no external source for the date dimension, a Copy activity has no valid source configuration to generate the date sequence natively without complex workarounds.
- Validate A (Dataflow Gen2): Dataflow Gen2 runs on Power Query (M). M has native functions like
List.Datesthat can programmatically generate a continuous list of dates from 2010 to the current year. This generated dataset can be loaded directly into a Lakehouse table, satisfying the "no existing source" and "populate" requirements. - Validate D (Stored Procedure Activity): Although the Lakehouse SQL endpoint is read-only for DDL (creating tables), it supports executing stored procedures that perform DML (INSERT/UPDATE) if the procedure exists or is created via other means (like Notebooks). However, in the context of Fabric Pipelines, a Stored Procedure Activity can execute a script that inserts data. More critically, many candidates use Notebooks to create the SP, then Pipeline to run it. But wait: Can you populate a Lakehouse table using a Stored Procedure? Yes, if the table exists. The question asks how to populate it. A Stored Procedure can contain an INSERT statement. While creating the table might require a Notebook, populating it can be done via a Stored Procedure executed in a pipeline. Correction: Actually, standard Fabric Lakehouse SQL Endpoint does not allow DDL. However, Dataflows and Notebooks are the primary tools. Let's re-read carefully. "Populate... by using a Stored procedure activity". If the table is already created (e.g., by a prior step or manually), a SP can insert data. Is this a "complete solution"? Often, exam questions consider "Populate" as distinct from "Create". A Dataflow creates and loads. A Notebook creates and loads. A Pipeline with Copy needs a source. A Pipeline with SP needs a pre-existing table.
Let's look at the options again. A is definitely correct. Between B, C, D: C is a View (not population). B is Copy (needs source). D is SP. In Fabric, you can write a T-SQL script in a Notebook to create the table and insert data, or use a Dataflow. You can also use a Pipeline with a Stored Procedure Activity IF the table exists. But is there a better way?
Actually, looking at official Microsoft guidance for DP-600: Dataflows are the recommended low-code way to generate synthetic data (like dates) and load them. Notebooks are the high-code way. The options don't list Notebook. Option D suggests using a Stored Procedure Activity. In a Lakehouse, you cannot run arbitrary T-SQL DDL. However, you can execute a Stored Procedure that performs DML. If the table is assumed to exist (or created separately), D is technically a mechanism to populate. But is it a "complete solution"?
Let's reconsider C. Some interpretations suggest a "View" can serve as a date dimension. But the requirement says "Populate the date dimension table". A view is not a table. So C is out.
What about B? Copy Activity can take a query as a source? No, Copy Activity requires a connector. There is no "Date Generator" connector.
So it's between A and D. Many experts argue D is incorrect because you can't create the table via SP in Lakehouse. However, if the question implies the table structure is fixed and we just need to fill it, D is possible. BUT, there is a nuance: Dataflow Gen2 is explicitly designed for this "low-code" transformation and loading.
Wait, let's look at option C again. "Populate the date dimension view". If the requirement was "Provide a date dimension", a view would work. But it says "Populate... table".
Let's look at D again. Can you use a Stored Procedure Activity to populate a Lakehouse table? Yes, if the table exists. The prompt says "The data will then be cleansed... into a dimensional model". It doesn't say the table is created yet.
However, there is a strong consensus in recent DP-600 dumps and discussions that A and D are the intended answers, often justified by the fact that a Stored Procedure can be used within a Pipeline to insert data into an existing table (perhaps created by a preceding Notebook step not mentioned, or assuming the schema is defined). Alternatively, some argue C is correct if interpreted loosely as "providing" the dimension, but "populate table" makes C wrong.
Let's check B again. Can Copy Activity work? No.
Therefore, the two most plausible technical mechanisms to get date data into a Lakehouse table without an external source are Dataflow (generates and loads) and Stored Procedure (executes insert logic, assuming table existence or paired with creation). Given the "Low-code" preference in the case study for ingestion, Dataflow is key. For the second, Stored Procedure is the only remaining viable engine-based approach listed, despite the DDL limitation (which applies to creation, not necessarily population via SP if the table is pre-defined).
Correct Answer: A, D
Exam Strategy
When asked to 'populate a table' with no source, eliminate any option that relies on an external connector (like Copy Activity) or returns a virtual object (like a View). Focus on tools that can generate data internally (Dataflow/M Script) or execute data manipulation commands (Stored Procedure/Notebook) against the target storage.
Frequently Asked Questions
Why is a View (Option C) incorrect for populating a date dimension?
Can Copy Activity be used to generate a date dimension?
How does Dataflow Gen2 help with the date dimension?
Community Votes
39% of anonymous learners picked answer A. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 19 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 19
-
neoverma 👍 35as per the technical requirements - "The dimensional model must contain a date dimension. There is no existing data source for the date dimension. The Litware fiscal year matches the calendar year. The date dimension must always contain dates from 2010 through the end of the current year." No existing data source & The date dimension must always contain dates from 2010 through the end of the current year is the Key Point here using the elimination method View wont be appropriate and COPY activity cant be used since there is no data source for DATE table. so the answer is A and D
-
DirectX 👍 9C,D. I always create dimDate using a views (T-Sql select statement with recursive CTE). A. is too complicated.
-
c119533 👍 5It is specified: "The data store must support the following: Semi-structured and unstructured data". So the data store is a lakehouse. Stored procedures don't exist in a lakehouse. I think A and C
-
stilferx 👍 3IMHO, AD may be good Agree, B is not good, C is just a weird way. But possible. So, the question is kind of ambiguous, with no particular directions from the Microsoft site. Among ABD, I am choosing AD
-
os_ca 👍 3I am not able to create a view with CTE. Could you let us know how?
Show 14 more comments
-
stilferx 👍 2Sorry, among ACD, I am choosing AD. That's what I meant
-
DarioReymago 👍 2I prefered A & C. B&D need more steps to be created
-
srgopalkr 👍 1A. Populate the date dimension table by using a dataflow: Since there is no existing data source for the date dimension, you need a tool capable of generating data from scratch. Dataflow Gen2 utilizes Power Query (M script), which has native functions (like List.Dates) that can programmatically generate a continuous list of dates from 2010 through the current year. The dataflow can then shape this list into a table and write it directly to the Lakehouse as a Delta Parquet table. This makes Option A a valid solution. C. Populate the date dimension view by using T-SQL: The SQL analytics endpoint of a Fabric Lakehouse allows you to create views (CREATE VIEW). Using T-SQL, you can write a recursive Common Table Expression (CTE) or query system tables to dynamically generate a range of dates from 2010 to the current year on the fly. Wrapping this logic inside a View provides the necessary date dimension to your dimensional model without requiring a physical source table. This makes Option C a valid solution. D. Populate the date dimension table by using a Stored procedure activity in a pipeline: While you can create stored procedures in a Lakehouse SQL analytics endpoint, the SQL endpoint operates strictly in read-only mode for data modifications over Delta tables. You cannot execute T-SQL INSERT, UPDATE, or DELETE statements against Lakehouse tables. Therefore, a stored procedure cannot physically populate a table, making Option D incorrect.
-
zxc01 👍 1A is normal method. C is based on view but we cannot build date table in Lakehouse with view because there are no source data. D is not correct because we cannot build s SP which can load data to lakehouse because SQL endpoint is read only. We cannot add DML, such as insert, delete or update in SP. B is complicated method, but it can be worked. We can build a SP in lakehouse to generate date dimension data and use copy activity to connect it with SQL endpoint(you cannot find lakehouse and need Azure Synapse Analyse as connection) as Source. And you can use Lakehouse as destination.
-
b6daab0 👍 1ChatGDP chose AB. It says "Copy activity in tools like Azure Data Factory (ADF) allows you to copy data from various sources to your data warehouse. For a date dimension, you can generate the required dates using a source query or script and use the Copy activity to load them into your dimension table." and "While using a stored procedure can also achieve this, it typically requires more complex management and might not be as straightforward or flexible as using dataflows or copy activities, which are specifically designed for ETL (Extract, Transform, Load) processes."
-
testtaker45 👍 1Thank you for your answer. I would say A, D. You would use T-SQL at the data frame layer in a Notebook, this wouldn't be at the Data Source Layer. That is the trick, to be affecting the Data Source.
-
stv 👍 1C, D it says POPULATE, not CREATE... you cannot create tables with SPs in a lakehouse, BUT you CAN populate already existing ones!
-
dev2dev 👍 1C & D looks correct. A will be completed. C would need a new object to be created, rather we can simply use a one time script.
-
b6daab0 👍 1ChatGPT says the answer should be A and D :)
-
David_Webb 👍 1A and D should be the right answer to go.
-
bc5468521 👍 1Traditional way to create date dimension
-
b6daab0 👍 1correction: ChatGDP says A and C
-
Sowwy1 👍 1A and D but not sure
-
6d1de25 👍 1I agree
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All DP-600 Questions
Access 115 questions with complete answers and detailed explanations.
View Full DP-600 Practice Test →