Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa funzionalità è attualmente in anteprima e viene fornita senza un contratto di servizio. Al momento, le anteprime non sono consigliate per i carichi di lavoro di produzione. Alcune funzionalità di questa anteprima non sono supportate o potrebbero avere vincoli di funzionalità. Per altre informazioni, vedere Condizioni per l'utilizzo supplementari di anteprime di Microsoft Azure.
In questa guida si abilita l'analisi della flotta di Azure Cosmos DB per l'area di lavoro di Microsoft Fabric.
In questa guida si abilita l'analisi della flotta di Azure Cosmos DB per l'account Azure Data Lake Storage.
Prerequisiti
Una flotta di Azure Cosmos DB esistente
Se non si dispone di una flotta esistente, creare una nuova flotta.
L'analisi della flotta supporta solo gli account Azure Cosmos DB per NoSQL configurati con la flotta.
Un'area di lavoro di Microsoft Fabric esistente
L'area di lavoro deve usare OneLake come percorso di archiviazione predefinito.
L'area di lavoro deve essere supportata da una capacità Fabric dotata di licenza o di valutazione.
Annotazioni
È consigliabile creare un'area di lavoro dedicata a Fabric per Fleet Analytics perché il principale del servizio associato alla funzionalità richiede l'accesso come Collaboratore all'intera area di lavoro.
Un account di archiviazione di Azure esistente compatibile con Azure Data Lake Storage (Gen2)
- La funzionalità dello spazio dei nomi gerarchico deve essere abilitata al momento della creazione dell'account.
Abilitare l'analisi della flotta
Prima di tutto, configurare le risorse necessarie per l'analisi della flotta.
Accedere al portale di Azure (https://portal.azure.com).
Passare alla flotta esistente di Azure Cosmos DB.
Nella pagina per la flotta selezionare Analisi della flotta nella sezione Monitoraggio del menu delle risorse.
Selezionare quindi Aggiungi destinazione.
Nella finestra di dialogo Analisi flotta, selezionare Invia all'area di lavoro Fabric. Quindi, seleziona la tua area di lavoro Fabric esistente, seleziona un lakehouse OneLake già esistente e infine salva la destinazione.
Passare al workspace di Fabric nel portale di Microsoft Fabric.
Nella sezione Gestione dell'area di lavoro, aggiungere il principale del servizio per l'analisi della flotta come ruolo di Collaboratore cercando il principale di servizio condiviso Cosmos DB Fleet Analytics.
Importante
Se non si completa questo passaggio, i dati non vengono scritti nell'area di lavoro Fabric di destinazione.
Salvare le modifiche.
Accedere al portale di Azure (https://portal.azure.com).
Passare alla flotta esistente di Azure Cosmos DB.
Nella pagina per la flotta selezionare Analisi della flotta nella sezione Monitoraggio del menu delle risorse.
Selezionare quindi Aggiungi destinazione.
Nella finestra di dialogo Analisi flotta selezionare Invia all'account di archiviazione. Selezionare quindi l'account di archiviazione di Azure esistente, selezionare un contenitore esistente e quindi salvare la destinazione.
Navigare all'account di archiviazione di Azure. Passare quindi alla pagina Controllo di accesso (IAM).
Selezionare l'opzione di menu Aggiungi assegnazione di ruolo .
Nella pagina Aggiungi assegnazione di ruolo, selezionare il ruolo Collaboratore di Archiviazione Blob per concedere le autorizzazioni a contribuire dei BLOB all'account esistente.
Usare ora l'opzione + Seleziona membri . Nella finestra di dialogo, cercare e selezionare il principale del servizio condiviso Cosmos DB Fleet Analytics.
Importante
Se non si completa questo passaggio, i dati non vengono scritti nell'account di archiviazione di Azure di destinazione.
Riesamina e assegna il tuo ruolo.
Interrogare e visualizzare i dati
In una progettazione dello schema star, il recupero di informazioni dettagliate richiede in genere l'unione di tabelle dei fatti con le relative tabelle delle dimensioni, seguendo le procedure consigliate standard. Questa sezione illustra i passaggi per eseguire query e visualizzare i dati usando Microsoft Fabric.
Aprire l'area di lavoro di Fabric.
Naviga verso la tua risorsa OneLake esistente.
Nell'Esplora endpoint SQL, selezionare qualsiasi tabella ed eseguire una
SELECT TOP 100query per osservare rapidamente i dati. Questa query è disponibile nel menu contestuale.
Suggerimento
In alternativa, eseguire la query seguente per visualizzare i dettagli a livello di account:
SELECT TOP (100) [Timestamp], [ResourceId], [FleetId], [DefaultConsistencyLevel], [IsSynapseLinkEnabled], [IsFreeTierEnabled], [IsBurstEnabled], [BackupMode], [BackupStrategy], [BackupRedundancy], [BackupIntervalInMinutes], [BackupRetentionIntervalInHours], [TotalRUPerSecLimit], [APISettings], [AccountKeySettings], [LastDateAnyAccountKeyRotated] FROM [FactAccountHourly]Osservare i risultati della query. Si noti che è presente solo un riferimento al
ResourceIdcampo. Usando solo i risultati di questa query, non è possibile determinare il database o il contenitore esatto per singole righe.Esegui questa query di esempio unendo le tabelle
DimResourceeFactRequestHourlyper trovare i tuoi 100 account più attivi per numero di transazioni.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 orderEseguire questa query per trovare i primi 100 account più grandi per risorsa di archiviazione.
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 usageCreare ora una visualizzazione sui dati aprendo il menu di scelta rapida e selezionando Salva come visualizzazione. Assegnare alla visualizzazione un nome univoco e quindi selezionare OK.
Suggerimento
In alternativa, creare una vista direttamente usando questa query:
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.ResourceIdPassare alla visualizzazione appena creata all'interno della cartella Views dell'endpoint.
Passare alla visualizzazione creata di recente (o una query) e quindi selezionare Esplora dati (anteprima) e quindi selezionare Visualizza risultati.
Nella pagina di destinazione di Power BI creare oggetti visivi pertinenti per lo scenario. Ad esempio, è possibile visualizzare la percentuale del carico di lavoro di Azure Cosmos DB con la funzionalità di scalabilità automatica abilitata.
Questa sezione illustra i passaggi per creare ed eseguire query su una tabella o un dataframe caricato dai dati archiviati in Archiviazione di Azure (ADLS) o Azure Databricks. Questa sezione usa un notebook connesso ad Apache Spark con Python e le celle SQL.
Innanzitutto, definire la configurazione dell'account di archiviazione di Azure destinata a
# 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"Creare i dati come tabella. Ricaricare e aggiornare i dati da un'origine esterna (Archiviazione di Azure - ADLS) eliminando e ricreando la
fleet_datatabella.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}' """)Interrogare e rendere i risultati della tabella
fleet_data.# Query and display the table df = spark.sql(f"SELECT * FROM {table_name}") display(df)Definire l'elenco completo di tabelle aggiuntive da creare per l'elaborazione dei dati di analisi della flotta.
# 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}' """)Eseguire una query usando una di queste tabelle. Ad esempio, questa query trova i primi 100 account più attivi per transazioni.
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 resultsEseguire questa query per trovare i primi 100 account più grandi per risorsa di archiviazione.
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