Deploy OneLake Infrastructure
Provision Microsoft Fabric Capacity, Workspace, Lakehouse, and Azure AD application for OneLake access using Terraform or Azure Portal.
This integration copies Parquet files from the Haltian IoT Data API S3 bucket into Microsoft Azure and connects them to Power BI for analytics and dashboards. The infrastructure is fully automated with Terraform.
Haltian IoT sensors collect workplace data — occupancy, environment, movement — and export it as Parquet files via the Data API. This integration brings that data into Microsoft Power BI so your team can build dashboards, reports, and analytics without any custom development.
An automated pipeline copies sensor data from Haltian’s cloud into your Azure environment on a configurable schedule (default: every 15 minutes). Power BI connects directly to the data for real-time dashboards.
| Step | What |
|---|---|
| 1 | Haltian enables Data API access and provides S3 credentials |
| 2 | Deploy Azure infrastructure (automated with Terraform) |
| 3 | Deploy the copy function (automated with Terraform) |
| 4 | Connect Power BI and build dashboards |
A timer-triggered Azure Function App copies new Parquet files from S3 on a configurable schedule. You choose one of two Azure destinations.
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#F6FAFA', 'primaryTextColor': '#143633', 'primaryBorderColor': '#143633', 'lineColor': '#143633', 'secondaryColor': '#C7FDE6', 'tertiaryColor': '#73F9C1', 'clusterBkg': '#ffffff', 'clusterBorder': '#143633', 'edgeLabelBackground': '#ffffff'}}}%%
flowchart TB
subgraph South["Haltian IoT"]
S3["fa:fa-database S3 Bucket<br/>Parquet Files"]
end
subgraph Middle["Customer Azure"]
FUNC["fa:fa-cogs Azure Function App<br/>Python · Timer Trigger"]
subgraph Dest["Destination (choose one)"]
ONELAKE["fa:fa-layer-group Microsoft Fabric<br/>OneLake Lakehouse"]
STORAGE["fa:fa-hdd Azure Storage Account<br/>Blob Storage"]
end
end
subgraph North["Analytics"]
PBI["fa:fa-chart-bar Power BI<br/>Dashboards & Reports"]
end
S3 -->|"List & Get Objects"| FUNC
FUNC -->|"DFS API"| ONELAKE
FUNC -->|"Blob Service"| STORAGE
ONELAKE --> PBI
STORAGE --> PBI| Option | Best For |
|---|---|
| Microsoft Fabric OneLake | Enterprise analytics with built-in Spark, SQL endpoint |
| Azure Storage Account | Simple file landing, custom pipelines |
See Microsoft Fabric pricing and Azure Storage pricing for current costs.
All Terraform modules and the Azure Function source code are available as downloadable files. Each deployment guide below includes a download table with direct links to every file:
| Module | Files | Download From |
|---|---|---|
infra/onelake | 8 .tf files | Deploy OneLake |
infra/storageaccount | 5 .tf files | Deploy Storage Account |
azure-function/terraform | 5 .tf files | Deploy Function App |
azure-function (Python) | 10 files | Deploy Function App |
az) — installed and authenticated (az login)Additional prerequisites depend on your chosen destination — see the deployment guides below.
Follow these guides in order to deploy the complete integration:
| Step | Guide | Description |
|---|---|---|
| 1 | Deploy OneLake Infrastructure | Fabric Capacity, Workspace, Lakehouse, AAD app |
| 1 | — or — Deploy Storage Account | Azure Storage with blob containers |
| 2 | Deploy Function App | Timer-triggered S3→Azure copy function |
| 3 | Connect Power BI | Load data into Power BI Desktop and create reports |
Haltian provides two options for S3 bucket access:
| Method | Setup | Best For |
|---|---|---|
| Access Key + Secret | Haltian provides credentials directly | Quick setup |
| Bring-your-own IAM Role | You provide an ARN; Haltian configures bucket policy | Enterprise security policies |
If using your own IAM role, you need to modify the Azure Function’s Python code to use AWS IAM role authentication, and provide the role ARN to Haltian for bucket policy configuration.
Once deployed, the Azure Function runs on a configurable schedule (default: every 15 minutes):
Provision Microsoft Fabric Capacity, Workspace, Lakehouse, and Azure AD application for OneLake access using Terraform or Azure Portal.
Provision an Azure Storage Account as a data landing zone for Haltian IoT Parquet files using Terraform or Azure Portal.
Deploy the Azure Function App that copies Parquet files from the Haltian IoT S3 bucket to OneLake or Azure Storage Account.
Load Haltian IoT Parquet data into Power BI Desktop from OneLake or Azure Blob Storage and create visualizations.
Complete Terraform variable reference for all Power BI integration modules — OneLake, Storage Account, and Function App.
Common issues and solutions for the Power BI integration — Azure Function, OneLake, Storage Account, and Power BI connectivity.