Back to Blog
2 min read

Ignite 2025 Day 2: Microsoft Fabric Innovations and Real-Time Intelligence

Day 2 of Ignite 2025 focused on Microsoft Fabric with exciting announcements around real-time intelligence, enhanced Copilot capabilities, and new data integration features.

Real-Time Intelligence GA

Real-Time Intelligence moved to general availability with significant enhancements:

// New real-time dashboard capabilities
.create-or-alter function CustomerActivityStream()
{
    CustomerEvents
    | where Timestamp > ago(5m)
    | summarize
        ActiveUsers = dcount(UserId),
        TotalActions = count(),
        ErrorRate = countif(Status == "Error") * 100.0 / count()
    by bin(Timestamp, 1m), Region
    | extend AlertLevel = case(
        ErrorRate > 5, "Critical",
        ErrorRate > 2, "Warning",
        "Normal"
    )
}

// Automated anomaly detection with ML
.create materialized-view AnomalyDetection on table SalesTransactions
{
    SalesTransactions
    | summarize Amount = sum(Amount) by bin(Timestamp, 1h), Category
    | extend (AnomalyScore, AnomalyFlag) = series_decompose_anomalies(Amount, 1.5)
    | where AnomalyFlag == 1
}

// Real-time alerting integration
.create function AlertOnAnomaly()
{
    AnomalyDetection
    | where AnomalyFlag == 1 and AnomalyScore > 3
    | extend AlertPayload = bag_pack(
        "category", Category,
        "amount", Amount,
        "score", AnomalyScore,
        "timestamp", Timestamp
    )
    | invoke send_to_eventhub("alerts-hub", AlertPayload)
}

Copilot for Fabric Enhancements

Copilot now supports more sophisticated data engineering tasks:

# Copilot-generated pipeline with human review
# Prompt: "Create a pipeline to ingest customer data from Salesforce,
#          clean it, and load into the customer_360 lakehouse table"

# Generated by Copilot for Fabric:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when, trim, lower, regexp_replace

def ingest_salesforce_customers():
    """
    Pipeline to ingest and clean customer data from Salesforce.
    Generated by Copilot, reviewed by data engineering team.
    """

    # Read from Salesforce connector
    raw_df = spark.read \
        .format("salesforce") \
        .option("sfObject", "Contact") \
        .option("sfQuery", "SELECT Id, Name, Email, Phone, AccountId FROM Contact") \
        .load()

    # Apply data quality rules
    cleaned_df = raw_df \
        .withColumn("email", lower(trim(col("Email")))) \
        .withColumn("phone", regexp_replace(col("Phone"), "[^0-9]", "")) \
        .withColumn("name", trim(col("Name"))) \
        .filter(col("email").isNotNull()) \
        .dropDuplicates(["email"])

    # Add metadata
    enriched_df = cleaned_df \
        .withColumn("source_system", lit("salesforce")) \
        .withColumn("ingestion_timestamp", current_timestamp()) \
        .withColumn("data_quality_score",
            when(col("phone").isNotNull(), 1.0).otherwise(0.8))

    # Write to lakehouse
    enriched_df.write \
        .format("delta") \
        .mode("merge") \
        .option("mergeSchema", "true") \
        .saveAsTable("customer_360.customers")

    return enriched_df.count()

Cross-Cloud Data Shortcuts

New shortcut capabilities enable seamless multi-cloud data access:

  • AWS S3 with IAM role federation
  • Google Cloud Storage with service account integration
  • Azure Data Lake cross-tenant access

These Fabric updates demonstrate Microsoft’s commitment to building a truly unified data platform that handles real-time and batch workloads while simplifying development through AI assistance.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.