Skip to content

Commit 752b87d

Browse files
authored
Merge pull request #22 from microsoft/agh-data-agent
feat: Data agent deployment automation
2 parents 2f030b6 + 802bd08 commit 752b87d

34 files changed

Lines changed: 3790 additions & 85 deletions

docs/DeploymentGuide.md

Lines changed: 98 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,37 @@ The deployment uses a coordinated two-phase approach that is **idempotent** and
3333
```text
3434
3535
PHASE 1: Infrastructure (Bicep) PHASE 2: Fabric Setup (Python)
36-
├─ Fabric Capacity ├─ Workspace
37-
├─ Event Hub ├─ Eventhouse & KQL Database
38-
└─ Resource Group ├─ Eventstream & Connections
39-
├─ Real-Time Dashboard
40-
├─ Activator Rules
41-
└─ Sample Data
36+
|─ Fabric Capacity |─ Workspace
37+
|─ Event Hub |─ Eventhouse & KQL Database
38+
└─ Resource Group | └─ Sample Data
39+
|─ Eventstream connection
40+
|─ Real-Time Dashboard
41+
|─ Activator Rules
42+
|─ Data agent
43+
└─ Folder (Data agent configuration)
44+
├─ Environment
45+
└─ Notebook
4246
```
4347

4448
**Phase 1** provisions Azure infrastructure using Bicep templates with ARM idempotency:
4549

46-
- **Fabric Capacity** - Dedicated compute resources for Fabric workloads with auto-scaling capabilities
47-
- **Event Hub** - High-throughput streaming service for real-time data ingestion and event processing
48-
- **Resource Group** - Logical container organizing and managing all deployed Azure resources
50+
- **[Resource Group](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal#what-is-a-resource-group)** - Logical container organizing and managing all deployed Azure resources
51+
- **[Fabric Capacity](https://learn.microsoft.com/en-us/fabric/enterprise/licenses#capacity)** - Dedicated compute resources for Fabric workloads with auto-scaling capabilities
52+
- **[Event Hub](https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about)** - High-throughput streaming service for real-time data ingestion and event processing
4953

5054
**Phase 2** manages Fabric components using Python scripts with intelligent resource detection:
5155

52-
- **Workspace** - Collaborative environment hosting all Fabric artifacts and configurations
53-
- **Eventhouse & KQL Database** - Real-time analytics engine with high-performance query capabilities and pre-configured schema
54-
- **Eventstream & Connections** - Data pipeline orchestration connecting Event Hub to Eventhouse with transformation rules
55-
- **Real-Time Dashboard** - Interactive monitoring interface with live visualizations and drill-down analytics
56-
- **Activator Rules** - Automated anomaly detection system with configurable alert thresholds and notifications
57-
- **Sample Data** - Pre-loaded telemetry data for immediate testing and demonstration purposes
56+
- **[Workspace](https://learn.microsoft.com/fabric/fundamentals/workspaces)** - Collaborative environment hosting all Fabric artifacts and configurations
57+
- **[Eventhouse](https://learn.microsoft.com/fabric/real-time-intelligence/eventhouse) & [KQL Database](https://learn.microsoft.com/en-us/fabric/real-time-intelligence/create-database)** - Real-time analytics engine with high-performance query capabilities and pre-configured schema
58+
- **Sample Data** - Pre-loaded telemetry data for immediate testing and demonstration purposes
59+
- **[Eventhub connection](https://learn.microsoft.com/fabric/real-time-intelligence/event-streams/add-source-azure-event-hubs?pivots=basic-features)** - Connection to the deployed Event Hub resource in Azure
60+
- **[Eventstream](https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-streams/overview?tabs=enhancedcapabilities)** - Data pipeline orchestration connecting Event Hub to Eventhouse with transformation rules
61+
- **[Real-Time Dashboard](https://learn.microsoft.com/en-us/fabric/real-time-intelligence/dashboard-real-time-create?tabs=create-manual%2Ckql-database)** - Interactive monitoring interface with live visualizations and drill-down analytics
62+
- **[Activator](https://learn.microsoft.com/en-us/fabric/real-time-intelligence/data-activator/activator-introduction)** - Automated anomaly detection system with configurable alert thresholds and notifications
63+
- **[Data Agent](https://learn.microsoft.com/en-us/fabric/data-science/concept-data-agent)** - AI-powered conversational interface for natural language data queries with configured notebook
64+
- **Folder** - Organizational container for grouping items required for Data Agent set up
65+
- **[Environment](https://learn.microsoft.com/en-us/fabric/data-engineering/create-and-use-environment)** - Fabric Environment for managing libraries, dependencies, and compute configurations required to run the notebook that configures the Data Agent
66+
- **[Notebook](https://learn.microsoft.com/en-us/fabric/data-engineering/how-to-use-notebook)** - Fabric Notebook with the script that uses [Fabric data agent Python SDK (in preview)](https://learn.microsoft.com/en-us/fabric/data-science/fabric-data-agent-sdk) to configure the Data Agent
5867

5968
The entire process is orchestrated by Azure Developer CLI with comprehensive error handling and rollback capabilities.
6069

@@ -286,6 +295,10 @@ azd env set FABRIC_EVENT_HUB_CONNECTION_NAME "my_eventhub_connection"
286295
azd env set FABRIC_RTIDASHBOARD_NAME "My Custom Dashboard"
287296
azd env set FABRIC_EVENTSTREAM_NAME "my_custom_eventstream"
288297
azd env set FABRIC_ACTIVATOR_NAME "my_custom_activator"
298+
azd env set FABRIC_DATA_AGENT_NAME "my_custom_dataagent"
299+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_FOLDER_NAME "my_custom_folder"
300+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_ENVIRONMENT_NAME "my_custom_environment"
301+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_NOTEBOOK_NAME "my_custom_notebook"
289302
```
290303

291304
**Alert Configuration:**
@@ -316,6 +329,10 @@ azd env set AZURE_DEPLOY_FABRIC_CAPACITY false
316329
| `FABRIC_EVENTSTREAM_NAME` | Eventstream name | `rti_eventstream_<env-name><suffix>` |
317330
| `FABRIC_ACTIVATOR_NAME` | Activator name | `rti_activator_<env-name><suffix>` |
318331
| `FABRIC_ACTIVATOR_ALERTS_EMAIL` | Alert email address | `alerts@contoso.com` |
332+
| `FABRIC_DATA_AGENT_NAME` | Data Agent name | `rti_dataagent_<env-name><suffix>` |
333+
| `FABRIC_DATA_AGENT_CONFIGURATION_FOLDER_NAME` | Folder name for organizing data agent configuration components | `rti_dataagentconfig_<env-name><suffix>` |
334+
| `FABRIC_DATA_AGENT_CONFIGURATION_ENVIRONMENT_NAME` | Environment name with the python libraries required to configure data agent | `rti_environment_<env-name><suffix>` |
335+
| `FABRIC_DATA_AGENT_CONFIGURATION_NOTEBOOK_NAME` | Notebook to set up the Data Agent configuration | `rti_notebook_<env-name><suffix>` |
319336

320337
#### System-Managed Variables
321338

@@ -395,6 +412,10 @@ azd env set FABRIC_EVENT_HUB_CONNECTION_NAME "my_eventhub_connection"
395412
azd env set FABRIC_RTIDASHBOARD_NAME "My Custom Dashboard"
396413
azd env set FABRIC_EVENTSTREAM_NAME "my_custom_eventstream"
397414
azd env set FABRIC_ACTIVATOR_NAME "my_custom_activator"
415+
azd env set FABRIC_DATA_AGENT_NAME "my_custom_dataagent"
416+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_FOLDER_NAME "my_custom_folder"
417+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_ENVIRONMENT_NAME "my_custom_environment"
418+
azd env set FABRIC_DATA_AGENT_CONFIGURATION_NOTEBOOK_NAME "my_custom_notebook"
398419
```
399420

400421
> **Note:** These are optional. If not set, defaults will use your environment name and a generated suffix.
@@ -420,6 +441,10 @@ During deployment, you'll be prompted for:
420441
3. Component setup (Eventhouse, dashboard, Activator)
421442
4. Sample data loading
422443
5. Connection configuration
444+
6. Folder setup
445+
7. Data Agent configuration through Runbook (Preview)
446+
447+
> **Preview Feature Notice:** Steps involving Fabric Data Agent configuration are [Preview features](https://learn.microsoft.com/en-us/fabric/data-science/fabric-data-agent-sdk). If these steps fail, the core functionality will still work, and you can complete the setup manually using our guides.
423448
424449
### 4.6 Verify Deployment Success
425450

@@ -431,25 +456,31 @@ After `azd up` completes successfully:
431456

432457
⚠️ **Deployment Issues?** Check [Known Issues and Troubleshooting](#known-issues-and-troubleshooting) for common solutions.
433458

459+
> **Preview Feature Notice:** If the Data Agent setup fails during deployment (step 14), the core Real-Time Intelligence functionality will still work. You can complete the Data Agent setup manually using the [Fabric Data Agent Guide](./FabricDataAgentGuide.md).
460+
434461
**What You Get:**
435462

436463
- Complete real-time analytics platform with Event Hub, Fabric Eventhouse, KQL database
437464
- Sample data pre-loaded for testing and demonstration
438465
- Real-time dashboards for operational monitoring
439466
- Automated alerting with Activator for anomaly detection
440467
- Eventstream for data pipeline orchestration
468+
- AI-powered Data Agent for conversational queries
469+
- Fabric runbook and environment for Data Agent configuration
441470

442471
---
443472

444473
## Step 5: Post-Deployment Configuration
445474

446-
### 5.1 Set Up Fabric Data Agent
475+
### 5.1 Verify Fabric Data Agent Setup
447476

448-
Enable the AI-powered Fabric Data Agent to answer natural language questions about your data.
477+
The AI-powered Fabric Data Agent is automatically configured during deployment to answer natural language questions about your data.
449478

450-
- **Setup and Configuration:** See [Fabric Data Agent Guide](./FabricDataAgentGuide.md)
479+
- **Verification and Usage:** See [Fabric Data Agent Guide](./FabricDataAgentGuide.md)
451480
- **Demonstration Flow:** See [Demonstrator's Guide - Step 1](./DemonstratorGuide.md#step-1-demonstrate-the-fabric-data-agent)
452481

482+
> **Note:** Data Agent automation is a Preview feature. If the automated setup fails during deployment, you can complete the setup manually using the guide above.
483+
453484
### 5.2 Start Event Simulation
454485

455486
Test your new environment with real-time streaming data.
@@ -527,10 +558,14 @@ After successful deployment, you have:
527558

528559
- Eventhouse (real-time analytics engine)
529560
- KQL Database (high-performance queries)
561+
- Sample data (pre-loaded for testing)
530562
- Real-time Dashboards (operational monitoring)
531563
- Eventstream (data pipeline orchestration)
532564
- Activator (anomaly detection and alerting)
533-
- Sample data (pre-loaded for testing)
565+
- Data Agent (AI-powered conversational queries)
566+
- Folder (organizational container for Data Agent configuration components)
567+
- Notebook (Data Agent configuration (Preview))
568+
- Environment (library and compute management)
534569

535570
![Fabric Workspace with all components](./images/deployment/deployment_overview_fabric_workspace.png)
536571

@@ -575,6 +610,49 @@ Data pipeline orchestration:
575610

576611
![Eventstream data flow configuration](./images/deployment/deployment_overview_fabric_eventstream.png)
577612

613+
#### Data Agent
614+
615+
AI-powered conversational data interface:
616+
617+
- **Name:** `rti_dataagent_<env-name><suffix>`
618+
- **Type:** Fabric Data Agent for natural language queries
619+
- **Connected Database:** KQL Database for real-time analytics
620+
621+
![Data Agent overview](./images/deployment/deployment_overview_fabric_dataagent.png)
622+
623+
#### Folder with Data Agent configuration scripts
624+
625+
Folder with script to set up Data Agent configuration
626+
627+
- **Folder:** `rti_dataagentconfig_<env-name><suffix>` for organizational structure
628+
- **Purpose:** Container to host assets to configure the Data Agent
629+
630+
![Data Agent configuration folder](./images/deployment/deployment_overview_fabric_dataagent_configuration_folder.png)
631+
632+
#### Data agent configuration Environment
633+
634+
Library and compute environment management:
635+
636+
- **Name:** `rti_environment_<env-name><suffix>`
637+
- **Type:** Fabric Environment for managing Python libraries and dependencies
638+
- **Configuration:** Pre-configured with required libraries from environment.yml
639+
- **Purpose:** Provides compute environment and libraries set up for Data Agent configuration runbook
640+
641+
![Data Agent configuration folder](./images/deployment/deployment_overview_fabric_dataagent_configuration_environment.png)
642+
643+
#### Data agent configuration Notebook (Preview)
644+
645+
Library and compute environment management:
646+
647+
- **Name:** `rti_notebook_<env-name><suffix>`
648+
- **Type:** Fabric Environment for managing Python libraries and dependencies
649+
- **Configuration:** Pre-configured with required code to set up Data Agent
650+
- **Purpose:** Provides automation to set up configuration of the Data Agent
651+
652+
> **Note:** Data Agent configuration script is a Preview feature and may have limitations. If automated setup fails, refer to the [Fabric Data Agent Guide](./FabricDataAgentGuide.md) for manual configuration.
653+
654+
![Data Agent configuration notebook](./images/deployment/deployment_overview_fabric_dataagent_configuration_notebook.png)
655+
578656
---
579657

580658
## Step 7: Clean Up (Optional)
@@ -593,7 +671,7 @@ azd down --force --purge
593671

594672
**What Gets Cleaned Up:**
595673

596-
- ✅ Fabric workspace and all components
674+
- ✅ Fabric workspace and all components (Eventhouse, Dashboard, Activator, Environment, Data Agent)
597675
- ✅ Azure Event Hub and infrastructure
598676
- ✅ Fabric capacity (if created by deployment)
599677
- ✅ Resource groups and configurations
978 KB
Loading
920 KB
Loading
610 KB
Loading
1.84 MB
Loading
57.1 KB
Loading

0 commit comments

Comments
 (0)