Skip to content

01 Set‐up

Benny Austin edited this page Aug 23, 2025 · 79 revisions

Steps to Set-up the Fabric Accelerator

  1. Fork the Repository: github.com/bennyaustin/fabric-accelerator

  2. Provision Fabric Capacity: Run the GitHub Action Workflow iac-fabric-dataplatform.yml to provision Fabric Capacity and related cloud resources. Follow the instructions in Infrastructure as Code (IaC) Bicep to configure and execute the workflow. Once provisioning is done, from the Fabric admin portal navigate to the Capacity Settings and take note of the Capacity ID 1, you will need this later.

  3. Create a Workspace: From the Fabric portal, create a new workspace. Assign the Fabric capacity created in previous step to your workspace 2. Take note of the Workspace ID 3, you will need this later.

  4. Create controlDB: While in Fabric portal create a SQL database4, name it controlDB. Take note of the connection string5, you will need this in a subsequent step.

  5. Create a Service Principal: Create 6 or reuse an existing Service Principal. Take note of the Application (client) ID and the secret, as they will be used to authenticate the Fabric SQL database provisioned in previous step.

  6. Create controlDB connection: Next, create a Fabric connection to controlDB by following these steps

  • Grant db_owner permission to the Service Principal
CREATE USER [<service_principal>] FROM EXTERNAL PROVIDER
GO
EXEC sp_addrolemember 'db_owner', [<service_principal>]
GO
  • Grant the Service Principal contributor permission to the Fabric workspace

  • From the Fabric portal, create connection to controlDB7. Use the server and database name from the connection string noted earlier. Authenticate using Service Principal method with credentials from previous step. Take note of the Connection ID, you will need this later.

  1. Wide World Importers: This accelerator uses Wide World Importer database as a sample data source.
  • If you don't already have it, install Wide World Importers8 as Azure SQL database. An S0 DTU on Standard tier with 50GB would be sufficient.
  • Grant the Service Principal created earlier db_owner permission to Wide World Importers using the same SQL script in step 5
  • From the Fabric portal, create connection to Wide World Importers. Authenticate using Service Principal method. Take note of the Connection ID, you will need this later.
  1. Refactor Connection IDs: Create a branch from main. Open the repo folder in VS Code and connect to the newly created branch. Search and replace all these GUIDs with the values you took note earlier.
Description Find Replace All
Fabric Capacity ID e4eb626a-4082-4143-983d-6fc9284b74cd your Capacity ID from step 2
Fabric Workspace ID 00000000-0000-0000-0000-000000000000 your Workspace ID from step 3
Fabric Workspace ID 8d8d00a7-0e8a-4e3b-8c0e-8dcafac7adec your Workspace ID from step 3
controlDB Name controlDB-78d6902e-70ea-4fb0-b51e-af3f2aaee3b7 your control DB database name from step 4
controlDB Connection ID 78e8d795-a55c-412e-9b76-47ba404b4d51 your control DB Connection ID from step 6
Wide World Importers Connection ID a0a57e51-5032-4e46-b0f0-493c9d2f51c9 your WWI Connection ID from step 7
Fabric Tenant Id 4e921ed2-9b1c-457c-a917-16ef468eb90a From Fabric portal, click the Help & Support icon (?) and select About Fabric. Take note of the Fabric Tenant Id from the ctid part of Tenant URL: https://app.fabric.microsoft.com/home?ctid=FabricTenantId

After completing the find and replace, delete and move the folder es_fabricEvents.Eventstream to the recycle bin. Do not permanently delete it, as it is needed for the next step. This is a temporary workaround while Git sync issues are being addressed by the Fabric platform. Once done, commit and push the updates to branch.

  1. Connect Git Repository: Connect your workspace to your Git repository 9. Set your preferred branch to the one in previous step that has the refactored IDs. Set the Git folder as workspace, then connect and sync.

  2. Configure es_fabricEvents.Eventstream itemId: From recycle bin, restore es_fabricEvents.Eventstream folder. Open evenstream.json file in VS Code. You will need to replace itemId of the following entries in JSON file.

Description Find itemId Replace itemId
Fabric Tenant Id 4e921ed2-9b1c-457c-a917-16ef468eb90a From Fabric portal, click the Help & Support icon (?) and select About Fabric. Take note of the Fabric Tenant Id from the ctid part of Tenant URL: https://app.fabric.microsoft.com/home?ctid=FabricTenantId
lh-bronze-storage c6c5024f-de55-45ca-a79a-decbe16235e3 Object Id of lh_bronze lakehouse. Open the lakehouse in your workspace, and the ID is after /lakehouses/ in the URL
lh-silver-storage cc80a0ab-603d-4df9-bdfc-c35a7e8ab095 Object Id of lh_silver lakehouse. Open the lakehouse in your workspace, and the ID is after /lakehouses/ in the URL
dw-gold 7e2bbf6b-43fb-498c-90e3-56199c8c3b5e Object Id of dw_gold data warehouse. Open the data warehouse in your workspace, and the ID is after /databases/ in the URL
Master-ELT-ASQL 02b37a75-fb44-4efb-9d88-b6171a4d0d7d Object Id of Master ETL ASQL data pipeline. Open the data pipeline in your workspace, and the ID is after /pipelines/ in the URL
Optimize-DeltaLake-Tables dcbe357b-2a94-4d28-a21f-8e2300e33f89 Object Id of Optimize DeltaLake Tables notebook. Open the notebook in your workspace, and the ID is after /synapsenotebooks/ in the URL
storageEvents b22b1edd-6292-97ea-4089-fe9314ea1177 Object Id of kdb_fabricEvents KQL database. Open the KQL database in your workspace, and the ID is after /databases/ in the URL
workspaceEvents b22b1edd-6292-97ea-4089-fe9314ea1177 Object Id of kdb_fabricEvents KQL database. Open the KQL database in your workspace, and the ID is after /databases/ in the URL
jobEvents b22b1edd-6292-97ea-4089-fe9314ea1177 Object Id of kdb_fabricEvents KQL database. Open the KQL database in your workspace, and the ID is after /databases/ in the URL

Once done, commit and push the updates to branch.

  1. Sync Updates: From your Fabric workspace, sync updates to get the latest version of the accelerator Fabric items. Once the sync is successful, merge this branch to main through a Pull Request. This will be you baseline code going forward.

  2. Update Lakehouse References: Once sync is successful, update the missing Lakehouse references in these notebooks to lh_silver as default.

    • L1Transform-Generic-Fabric
    • Optimize Delta Lake Tables
  3. Update EnvSettings Notebook: From your workspace, navigate to EnvSettings notebook and update these variables

Variable Description Default Value
bronzeWorkspaceId Fabric Workspace ID for the Bronze medallion layer your Workspace ID from step 3
bronzeLakehouseName Bronze Lakehouse name. Set to None if not applicable lh_bronze
bronzeDatawarehouseName Bronze data warehouse name. Set to None if not applicable None
silverWorkspaceId Fabric Workspace ID for the Silver medallion layer. Use the same ID if all medallion layers are in the same workspace your Workspace ID from step 3
silverLakehouseName Silver Lakehouse name. Set to None if not applicable lh_silver
silverDatawarehouseName Silver data warehouse name. Set to None if not applicable None
goldWorkspaceId Fabric Workspace ID for the Gold medallion layer. Use the same ID if all medallion layers are in the same workspace your Workspace ID from step 3
goldLakehouseName Gold Lakehouse name. Set to None if not applicable None
goldDatawarehouseName Gold data warehouse name. Set to None if not applicable dw_gold
  1. Deploy controlDB objects: Follow the instructions in Deploy controlDB to deploy ELT Framework database objects.

The baseline deployment of the Fabric Accelerator is now complete.

You can now explore the features and extend them as needed. To get a good feel of how all these hang together, it's highly recommended to take a quick look at the accelerator before taking the plunge.

Clone this wiki locally