Dela via


Aktivera fleet analytics i Azure Cosmos DB (förhandsversion)

Viktigt!

Den här funktionen är för närvarande i förhandsversion och tillhandahålls utan ett serviceavtal. För närvarande rekommenderas inte förhandsversioner för användning i produktion. Vissa funktioner i den här förhandsversionen stöds inte eller kan ha kapacitetsbegränsningar. Mer information finns i kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

I den här guiden aktiverar du Azure Cosmos DB fleet analytics för din Microsoft Fabric-arbetsyta.

I den här guiden aktiverar du Azure Cosmos DB-flottanalys för ditt Azure Data Lake Storage-konto.

Förutsättningar

  • En befintlig Azure Cosmos DB-flotta

    • Om du inte har en befintlig flotta skapar du en ny flotta.

    • Fleet Analytics stöder endast Azure Cosmos DB för NoSQL-konton som har konfigurerats med flottan.

  • En befintlig Microsoft Fabric-arbetsyta

    • Arbetsytan måste använda OneLake som standardlagringsplats.

    • Arbetsytan ska stödjas av en licensierad eller utvärderings-Fabric-kapacitet.

  • Ett befintligt Azure Storage-konto som är kompatibelt med Azure Data Lake Storage (Gen2)

    • Den hierarkiska namnområdesfunktionen måste vara aktiverad när kontot skapas.

Aktivera analys av flottan

Konfigurera först de resurser som krävs för fleet analytics.

  1. Logga in på Azure-portalen (https://portal.azure.com).

  2. Gå till den befintliga Azure Cosmos DB-flottan.

  3. På sidan för flottan väljer du Fleet Analytics i avsnittet Övervakning på resursmenyn.

  4. Välj sedan Lägg till mål.

  5. I dialogrutan Fleet Analytics väljer du Skicka till Fabric-arbetsyta. Välj sedan din befintliga Fabric-arbetsyta, välj ett befintligt OneLake-lakehouse och spara destinationen.

    Skärmbild av dialogrutan fleet analytics för en Fabric-arbetsyta i Azure-portalen.

  6. Gå till din Fabric-arbetsyta i Microsoft Fabric-portalen.

  7. I avsnittet Hantera på din arbetsyta lägger du till tjänstehuvudprincipen för fleet analytics till rollen Deltagare genom att söka efter den delade Cosmos DB Fleet Analytics tjänstehuvudprincipen.

    Skärmbild av konfigurationen för rollbaserad åtkomstkontroll av arbetsytan i Fabric-portalen.

    Viktigt!

    Om du inte slutför det här steget kommer data inte att skrivas till din Fabric-målarbetsyta.

  8. Spara dina ändringar.

  1. Logga in på Azure-portalen (https://portal.azure.com).

  2. Gå till den befintliga Azure Cosmos DB-flottan.

  3. På sidan för flottan väljer du Fleet Analytics i avsnittet Övervakning på resursmenyn.

  4. Välj sedan Lägg till mål.

  5. I dialogrutan Fleet Analytics väljer du Skicka till lagringskonto. Välj sedan ditt befintliga Azure Storage-konto, välj en befintlig container och spara sedan målet.

    Skärmbild av dialogrutan fleet analytics för ett Azure Storage-konto i Azure-portalen.

  6. Gå till ditt Azure Storage-konto. Gå sedan till sidan Åtkomstkontroll (IAM).

  7. Välj menyalternativet Lägg till rolltilldelning .

  8. På sidan Lägg till rolltilldelning väljer du rollen Storage Blob-deltagare för att bevilja behörighet att bidra med blobar till det befintliga kontot.

  9. Använd nu alternativet + Välj medlemmar . I dialogrutan söker du efter och väljer tjänstens huvudnamn för den delade Cosmos DB Fleet Analytics-tjänsten .

    Skärmbild av konfigurationen av rollbaserad åtkomstkontroll i Azure-portalen.

    Viktigt!

    Om du inte slutför det här steget kommer data inte att skrivas till ditt Azure Storage-målkonto.

  10. Granska och tilldela din roll.

Fråga efter och visualisera data

I en star-schemadesign kräver hämtning av detaljerad information vanligtvis att faktatabeller kopplas till deras relaterade dimensionstabeller enligt bästa praxis. Det här avsnittet går igenom stegen för att fråga och visualisera data med hjälp av Microsoft Fabric.

  1. Öppna arbetsytan Infrastruktur.

  2. Gå till din befintliga OneLake-resurs.

    Skärmbild av en befintlig OneLake-resurs på en Microsoft Fabric-arbetsyta.

  3. I SQL-slutpunktsutforskaren väljer du valfri tabell och kör en SELECT TOP 100 fråga för att snabbt observera data. Den här frågan finns på snabbmenyn.

    Skärmbild av snabbmenyn med frågealternativet SELECT TOP 100 i SQL-slutpunktsutforskaren på arbetsytan.

    Tips/Råd

    Du kan också köra följande fråga för att visa information på kontonivå:

    SELECT TOP (100) [Timestamp],
        [ResourceId],
        [FleetId],
        [DefaultConsistencyLevel],
        [IsSynapseLinkEnabled],
        [IsFreeTierEnabled],
        [IsBurstEnabled],
        [BackupMode],
        [BackupStrategy],
        [BackupRedundancy],
        [BackupIntervalInMinutes],
        [BackupRetentionIntervalInHours],
        [TotalRUPerSecLimit],
        [APISettings],
        [AccountKeySettings],
        [LastDateAnyAccountKeyRotated]
    FROM [FactAccountHourly]
    
  4. Observera resultatet av frågan. Observera att du bara har en referens till fältet ResourceId . Med bara resultatet av den här frågan kan du inte fastställa den exakta databasen eller containern för enskilda rader.

  5. Kör den här exempelfrågan som ansluter till både tabellerna DimResource och FactRequestHourly för att hitta de 100 mest aktiva kontona efter transaktioner.

    SELECT TOP 100
        DR.[SubscriptionId],
        DR.[AccountName],
        DR.[ResourceGroup],
        SUM(FRH.[TotalRequestCount]) AS sum_total_requests
    FROM 
        [FactRequestHourly] FRH
    JOIN 
        [DimResource] DR
        ON FRH.[ResourceId] = DR.[ResourceId]
    WHERE 
        FRH.[Timestamp] >= DATEADD(DAY, -7, GETDATE()) -- Filter for the last 7 days
        AND ResourceName IN ('Document', 'StoredProcedure') -- Filter for Dataplane Operations
    GROUP BY 
        DR.[AccountName],
        DR.[SubscriptionId],
        DR.[ResourceGroup]
    ORDER BY
    sum_total_requests DESC; -- Order by total requests in descending order
    
  6. Kör den här frågan för att hitta de 100 största kontona efter lagring.

    SELECT TOP 100
        DR.[SubscriptionId],
        DR.[AccountName],
        MAX(FRH.[MaxDataStorageInKB] / (1024.0 * 1024.0)) AS DataUsageInGB,
        MAX(FRH.[MaxIndexStorageInKB] / (1024.0 * 1024.0)) AS IndexUsageInGB,
        MAX(
            FRH.[MaxDataStorageInKB] / (1024.0 * 1024.0) + 
            FRH.[MaxIndexStorageInKB] / (1024.0 * 1024.0)
        ) AS StorageInGB
    FROM 
        [FactResourceUsageHourly] FRH
    JOIN 
        [DimResource] DR
        ON FRH.[ResourceId] = DR.[ResourceId]
    WHERE 
        FRH.[Timestamp] >= DATEADD(DAY, -1, GETDATE()) -- Filter for the last 1 day
    GROUP BY 
        DR.[AccountName],
        DR.[SubscriptionId]
    ORDER BY
        StorageInGB DESC; -- Order by total storage usage
    
  7. Skapa nu en vy över data genom att öppna snabbmenyn och välja Spara som-vy. Ge vyn ett unikt namn och välj sedan Ok.

    Skärmbild av snabbmenyalternativet

    Skärmbild av dialogrutan för att ange namnet på den nya vyn på arbetsytan.

    Tips/Råd

    Du kan också skapa en vy direkt med den här frågan:

    CREATE VIEW [MostActiveCustomers]
    AS
    SELECT 
        a.ResourceId AS UsageResourceId,
        a.Timestamp,
        a.MeterId,
        a.FleetId,
        a.ConsumedUnits,
        b.ResourceId AS ResourceDetailId
    FROM
        FactMeterUsageHourly a
    INNER JOIN
        DimResource b ON a.ResourceId = b.ResourceId
    
  8. Navigera till den nyligen skapade vyn i mappen Vyer för slutpunkten.

    Skärmbild av mappen Vyer i hierarkin för en SQL-slutpunkt på arbetsytan.

  9. Gå till den vy som du nyligen skapade (eller en fråga) och välj sedan Explorer för dessa data (förhandsversion) och välj sedan Visualisera resultat.

    Skärmbild av menyalternativet för att visualisera en befintlig fråga på arbetsytan.

  10. På Power BI-landningssidan skapar du relevanta visuella objekt för ditt scenario. Du kan till exempel visa procentandelen av din Azure Cosmos DB-arbetsbelastning med funktionen autoskalning aktiverad.

    Skärmbild av dialogrutan Power BI-visualisering för en SQL-fråga eller -vy på arbetsytan.

Det här avsnittet går igenom stegen för att skapa och köra frågor mot en tabell eller DataFrame som lästs in från data som lagras i Azure Storage (ADLS) eller Azure Databricks. I det här avsnittet används en notebook-fil som är ansluten till Apache Spark med Python- och SQL-celler.

  1. Definiera först konfigurationen av Azure Storage-kontot som är inriktad på

    # Define storage configuration
    container_name = "<azure-storage-container-name>"
    account_name = "<azure-storage-account-name>"
    base_url = f"abfss://{container_name}@{account_name}.dfs.core.windows.net"
    source_path = f"{base_url}/FactResourceUsageHourly"
    
  2. Skapa data som en tabell. Ladda om och uppdatera data från en extern källa (Azure Storage – ADLS) genom att släppa och återskapa fleet_data tabellen.

    table_name = "fleet_data"
    
    # Drop the table if it exists
    spark.sql(f"DROP TABLE IF EXISTS {table_name}")
    
    # Create the table
    spark.sql(f"""
        CREATE TABLE {table_name}
        USING delta
        LOCATION '{source_path}'
    """)
    
  3. Fråga efter och återge resultatet från fleet_data tabellen.

    # Query and display the table
    df = spark.sql(f"SELECT * FROM {table_name}")
    display(df)
    
  4. Definiera den fullständiga listan över extra tabeller som ska skapas för bearbetning av analysdata för flottan.

    # Table names and folder paths (assumed to match)
    tables = [
        "DimResource",
        "DimMeter",
        "FactResourceUsageHourly",
        "FactAccountHourly",
        "FactRequestHourly",
        "FactMeterUsageHourly"
    ]
    
    # Drop and recreate each table
    for table in tables:
        spark.sql(f"DROP TABLE IF EXISTS {table}")
        spark.sql(f"""
            CREATE TABLE {table}
            USING delta
            LOCATION '{base_url}/{table}'
        """)
    
  5. Kör en fråga med någon av dessa tabeller. Den här frågan hittar till exempel dina 100 mest aktiva konton efter transaktioner.

    SELECT 
        DR.SubscriptionId,
        DR.AccountName,
        DR.ResourceGroup,
        SUM(FRH.TotalRequestCount) AS sum_total_requests
    FROM 
        FactRequestHourly FRH
    JOIN 
        DimResource DR
        ON FRH.ResourceId = DR.ResourceId
    WHERE 
        FRH.Timestamp >= DATE_SUB(CURRENT_DATE(), 7) -- Filter for the last 7 days
        AND FRH.ResourceName IN ('Document', 'StoredProcedure') -- Filter for Dataplane Operations
    GROUP BY 
        DR.AccountName,
        DR.SubscriptionId,
        DR.ResourceGroup
    ORDER BY
        sum_total_requests DESC
    LIMIT 100; -- Limit to top 100 results
    
  6. Kör den här frågan för att hitta de 100 största kontona efter lagring.

    SELECT 
        DR.SubscriptionId,
        DR.AccountName,
        MAX(FRH.MaxDataStorageInKB / (1024.0 * 1024.0)) AS DataUsageInGB,
        MAX(FRH.MaxIndexStorageInKB / (1024.0 * 1024.0)) AS IndexUsageInGB,
        MAX(
            FRH.MaxDataStorageInKB / (1024.0 * 1024.0) + 
            FRH.MaxIndexStorageInKB / (1024.0 * 1024.0)
        ) AS StorageInGB
    FROM 
        FactResourceUsageHourly FRH
    JOIN 
        DimResource DR
        ON FRH.ResourceId = DR.ResourceId
    WHERE 
        FRH.Timestamp >= DATE_SUB(CURRENT_DATE(), 1) -- Filter for the last 1 day
    GROUP BY 
        DR.AccountName,
        DR.SubscriptionId
    ORDER BY
        StorageInGB DESC
    LIMIT 100; -- Limit to top 100 results