Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks Runtime 18.0 och senare
Kommandot ANALYZE TABLE … COMPUTE STORAGE METRICS beräknar totala mått för lagringsstorlek för tabeller. Den visar detaljerad lagringsuppdelning för kostnadsanalys och optimering. Information om optimering av frågeprestanda finns iANALYZE TABLE ... BERÄKNINGSSTATISTIK.
Som standard söker kommandot igenom tabellens filer direkt. I stora tabeller lägger du till USING INVENTORY satsen som ska läsas från en fördefinierad lagerrapport för molnlagring i stället, vilket sänker både tid och kostnaden för lagringsmått för databehandling. Se Använda en inventeringsrapport.
Syntax
ANALYZE TABLE table_name COMPUTE STORAGE METRICS
[ USING INVENTORY LOCATION inventory_path
CONF conf_name ]
Parametrar
-
Identifierar tabellen som ska analyseras. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation eller sökväg. Om det inte går att hitta tabellen skapar Azure Databricks ett TABLE_OR_VIEW_NOT_FOUND felvillkor.
USING INVENTORYOptional. Läser lagringsmått från en fördefinierad lagerrapport för molnlagring i stället för att genomsöka tabellens filer. Se Använda en inventeringsrapport. Tar två underparametrar:
LOCATION inventory_pathEn STRING-literal med den fullständiga molnlagringssökvägen till inventeringsrapporten, inklusive eventuella prefix. Den här sökvägen måste matcha det mål som du konfigurerade när du konfigurerade inventeringsrapporten i käll bucketen eller containern, och den måste backas upp av en extern plats som du har åtkomst till. Se Använda en inventeringsrapport.
Till exempel
'abfss://your-destination-container@your-storage-account.dfs.core.windows.net/your-prefix/'.CONF conf_nameRequired. En STRING-literal som identifierar vilken inventeringsrapportkonfiguration på käll bucketen eller containern som ska användas.
Om du konfigurerar policyregeln för blobinventering med hjälp av Azure CLI använder du samma värde som du angav för
name. Om du konfigurerar med hjälp av Azure-konsolen använder du det värde som du angav som regelnamn i stället.
Description
Beräknar mått för total lagringsstorlek för en specifik tabell. Det här kommandot returnerar omfattande lagringsinformation, inklusive totalt antal byte, aktiva byte, vakuumbara byte och historiska byte, tillsammans med det antal filer som är associerade med varje kategori.
Använd det här kommandot för att identifiera stora eller oanvända tabeller, optimera lagringskostnader och förstå varför den totala lagringsstorleken skiljer sig från den aktiva tabellstorleken. Detta är användbart för plattformsadministratörer som behöver analysera lagringsmönster över flera tabeller eller spåra lagringsändringar över tid.
Utdatamått
Kommandot returnerar tre kolumner: metric_name, metric_valueoch metric_description. En rad returneras för vart och ett av följande mått:
metric_name |
Description |
|---|---|
total_bytes |
Den totala lagringsstorleken, i byte, för tabellen. Detta motsvarar transaktionsloggens storlek + aktiva byte + vakuumerbara byte + tidsresebyte. |
num_total_files |
Det totala antalet filer, inklusive deltaloggfiler, aktiva filer, filer som kan dammsugas och tidsresefiler. |
active_bytes |
Storleken på datafiler, i byte, som aktivt refereras av tabellen (samma som sizeInBytes). |
num_active_files |
Det totala antalet filer som aktivt refereras till av tabellen. |
vacuumable_bytes |
Storleken på data, i byte, som du kan ta bort genom att köra VACUUM eller aktivera förutsägande optimering. |
num_vacuumable_files |
Antalet filer som kan dammsugas. |
time_travel_bytes |
Storleken på historiska data, i byte, som används för återställningar och tidsresor . Kallas även tombstoned bytes eller failsafe bytes. |
num_time_travel_files |
Antalet filer som används för tidsresor. |
Detaljer
- Som standard använder kommandot en rekursiv listmetod för att beräkna lagringsinformation. Körningstiden är vanligtvis inom några minuter, men kan ta upp till flera timmar för mycket stora tabeller.
- Det här kommandot fungerar för både hanterade och externa tabeller i Unity Catalog.
- Kommandot beräknar lagringsmått vid körning. Resultaten lagras inte i Unity Catalog och återspeglas inte i
DESCRIBE EXTENDEDutdata, som endast visar den aktiva tabellstorleken. - Om du vill spåra lagringsändringar över tid kör du det här kommandot regelbundet och lagrar resultatet i en tabell. Kör det här kommandot i en loop över flera tabeller för att analysera lagringsmönster i din dataegendom. Se Beräkningslagringsmått för alla tabeller i en katalog.
Använda en inventeringsrapport
Gäller för:
Databricks Runtime 19 och senare
USING INVENTORY Använd satsen i stora tabeller för att sänka tiden och kostnaden för databehandling av lagringsmått genom att läsa en fördegenererad lagerrapport för molnlagring i stället för att skanna tabellens filer. Databricks rekommenderar den här satsen för tabeller som består av 100 000 eller fler filer, eller för tabeller som är kraftigt partitionerade över flera nycklar. För mindre tabeller eller tabeller utan en konfigurerad inventeringsrapport använder du kommandot utan den här satsen.
Satsen USING INVENTORY fungerar för hanterade och externa Unity Catalog-tabeller. Den körs endast på klassisk beräkning. Fler begränsningar finns i ANVÄNDA INVENTERINGsbegränsningar.
Important
Använd endast inventeringsrapporter i tabeller där måttföråldring är acceptabelt.
Mått som beräknas med den här satsen återspeglar tabellens tillstånd från och med den senaste inventeringsrapporten, inte dess aktuella tillstånd. Eftersom molnleverantörer genererar inventeringsrapporter enligt ett schema kan resultatet vara upp till 24 timmar inaktuellt. Resultatet kan skilja sig från de värden som kommandot returnerar utan den här satsen.
Om den senaste inventeringsrapporten är för inaktuell returnerar kommandot ett fel i stället för beräkningsmått. Se Inaktuella inventeringsrapportfel.
Information om de mått som kommandot returnerar finns i Utdatamått.
Förutsättningar
Satsen USING INVENTORY har följande förutsättningar:
-
Behörigheter att konfigurera för första gången: Metaarkivadministratörer har de Azure Databricks behörigheter som standard. Om du inte är administratör måste du ha följande behörigheter för att kunna konfigurera inventeringsrapporter och registrera deras mål som en extern plats:
- Molnleverantörsbehörigheter för att konfigurera inventeringsrapporter i käll bucketen eller containern.
- En av följande Azure Databricks behörigheter för att registrera inventeringsmålet som en extern plats:
- Behörigheten
CREATE EXTERNAL LOCATIONför både metaarkivet och lagringsautentiseringsuppgifterna som det refererar till. - Behörighet
MANAGEför den externa platsen.
- Behörigheten
-
En konfigurerad inventeringsrapport: Konfigurera en Azure Storage blobinventeringsrapport för varje källcontainer som innehåller de tabeller som du vill analysera. Använd följande inställningar:
- Objekttyp: Blob
- Blobtyper: Blockblobar och tilläggsblobar
- Undertyper: Aktivera inte Inkludera ögonblicksbilder eller Inkludera borttagna blobar
- Frekvens: Dagligen
- Exportformat: Apache Parquet
-
Blobinventeringsfält: Inkludera namn, Senast ändrad, Innehållslängd, Ögonblicksbild, Borttagen och HDI-mappstatus (CLI
schemaFields:Name,Last-Modified,Content-Length,Snapshot, ,Deleted).hdi_isfolderUtan dem kan kommandot inte beräkna korrekta utdata.
Tip
Databricks rekommenderar att du väljer alla tillgängliga metadatafält för framtida flexibilitet.
Databricks rekommenderar också att du konfigurerar en 14-dagars livscykelprincip på lagermåls bucketen för att automatiskt ta bort gamla rapporter. Detta förbättrar kommandoprestanda och minskar lagringskostnaderna. Se AWS-livscykelhantering, Azure livscykelhantering eller GCP-livscykelhantering.
En extern plats för inventeringsrapporten: Du måste ha läsbehörighet i Azure Databricks till inventeringsrapportens målsökväg.
- Om sökvägen inte finns på en befintlig extern plats registrerar du den som en extern plats först. Se Anslut till en extern plats för Azure Data Lake Storage Gen2 (ADLS Gen2).
Behörighet att köra kommandot: Du måste ha behörigheten
READ FILESpå den externa platsen i Azure Databricks som stöder inventeringsrapportmålet, utöver dina befintliga behörigheter i tabellen som du analyserar.
Note
Molnleverantörer tar upp till 48 timmar (AWS) eller 24 timmar (Azure, GCP) för att generera den första inventeringsrapporten efter den första konfigurationen.
Du hittar käll bucketen eller containern för en tabell genom att köra DESCRIBE TABLE EXTENDED och kontrollera fältet Location i utdata. För materialiserade vyer och strömmande tabeller måste du använda DESCRIBE EXTENDED för att hitta den faktiska lagringsplatsen. Du måste kontrollera att inventeringsrapporten har konfigurerats på käll bucketen eller containern.
Inaktuella inventeringsrapportfel
Kommandot söker efter den senaste fullständiga inventeringsrapporten som genererats under de senaste 14 dagarna. Om den inte hittar någon rapport i det fönstret beräknar kommandot inte mått och returnerar ett ANALYZE_TABLE_COMPUTE_STORAGE_METRICS_INVENTORY_CONTENTS_NOT_VALID fel med ett meddelande som liknar följande:
No inventory reports found in the last 14 days (window: 2026-07-08 to 2026-07-22).
1 report directory(s) exist but fall outside the lookback window.
Ensure a recent inventory report has been generated.
Lös det här felet genom att bekräfta att käll bucketen eller containern genererar inventeringsrapporter enligt det schema som du konfigurerade och kör sedan kommandot igen när en ny rapport har genererats. Se Förutsättningar.
Överväganden för tabelltyp
För materialiserade vyer och strömmande tabeller innehåller total_bytes storleken på tabellen och tillhörande metadata. Måttet active_bytes exkluderar tabellens vacuumable_bytes och time_travel_bytes.
För grunda kloner total_bytes innehåller endast klonens egna metadata och Delta-loggfiler, exklusive källtabellfiler.
active_bytes är noll eftersom klonen refererar till källtabellens datafiler.
Exempel
Beräkningslagringsmått
Kör följande kommando för att beräkna lagringsmått:
ANALYZE TABLE main.my_schema.my_table COMPUTE STORAGE METRICS;
Kommandot returnerar utdata, till exempel följande:
metric_name metric_value metric_description
----------------------- ------------ --------------------------------------------------
total_bytes 5368709120 Total bytes on disk
num_total_files 1250 Total files on disk
active_bytes 4294967296 Bytes in current snapshot
num_active_files 1000 Files in current snapshot
vacuumable_bytes 805306368 Bytes eligible for vacuum
num_vacuumable_files 150 Files eligible for vacuum
time_travel_bytes 268435456 Bytes reachable by time travel (excluding active)
num_time_travel_files 100 Files reachable by time travel (excluding active)
Utdata visar:
- Totalt lagringsutrymme: 5,37 GB över 1 250 filer
- Aktiva data: 4,29 GB i 1 000 filer (aktuell tabellversion)
-
Dammsugbara data: 805 MB i 150 filer (
VACUUMkan frigöra den här lagringsstorleken) - Tidsresedata: 268 MB i 100 filer (för historiska frågor)
Beräkningslagringsmått med hjälp av en inventeringsrapport
I följande exempel beräknas samma mått från en inventeringsrapport i stället för att genomsöka tabellens filer:
ANALYZE TABLE main.my_schema.my_table COMPUTE STORAGE METRICS
USING INVENTORY LOCATION 'abfss://your-destination-container@your-storage-account.dfs.core.windows.net/your-prefix/'
CONF 'databricks-inventory-list-config';
Eftersom inventeringsrapporter återspeglar tabellens tillstånd när rapporten genererades (upp till 24 timmar tidigare) kan utdata skilja sig från en direkt genomsökning. Ett exempel:
metric_name metric_value metric_description
----------------------- ------------ --------------------------------------------------
total_bytes 5100273664 Total bytes on disk
num_total_files 1232 Total files on disk
active_bytes 4076863488 Bytes in current snapshot
num_active_files 984 Files in current snapshot
vacuumable_bytes 771751936 Bytes eligible for vacuum
num_vacuumable_files 148 Files eligible for vacuum
time_travel_bytes 251658240 Bytes reachable by time travel (excluding active)
num_time_travel_files 100 Files reachable by time travel (excluding active)
Se Använda en inventeringsrapport.
Beräkningslagringsmått för alla tabeller i en katalog
Om du vill beräkna lagringsmått för varje tabell i en katalog använder du en loop med hjälp av inventeringsrapporter på samma mål. I följande exempel visas tabellerna med hjälp av ett informationsschema, som varje katalog automatiskt innehåller:
%python
tables = spark.sql("""
SELECT table_catalog, table_schema, table_name
FROM main.information_schema.tables
WHERE table_type IN (
'MANAGED', 'EXTERNAL',
'STREAMING_TABLE', 'MATERIALIZED_VIEW',
'MANAGED_SHALLOW_CLONE', 'EXTERNAL_SHALLOW_CLONE'
)
""").collect()
for t in tables:
full_name = f"{t.table_catalog}.{t.table_schema}.{t.table_name}"
result = spark.sql(f"""
ANALYZE TABLE {full_name} COMPUTE STORAGE METRICS
USING INVENTORY LOCATION 'abfss://your-destination-container@your-storage-account.dfs.core.windows.net/your-prefix/'
CONF 'databricks-inventory-list-config'
""")
result.show()
ANVÄNDA INVENTERINGsbegränsningar
Satsen USING INVENTORY har följande begränsningar:
- Den här satsen körs endast på klassisk beräkning. Det stöds inte på serverlösa beräknings- eller Databricks SQL-lager.
- Den här satsen stöder endast katalogtabeller, inklusive både hanterade och externa tabeller. Det stöder inte sökvägsbaserade Delta Lake-tabeller, vilket ger upphov till ett fel: ANALYZE_TABLE_COMPUTE_STORAGE_METRICS_NOT_SUPPORTED felvillkor.
- Om objektversionshantering är aktiverat i käll bucketen eller containern är resultatet inte garanterat korrekt.
- Om en tabells lagringsplats ändras konfigurerar du om inventeringsrapporten i den nya käll bucketen eller containern. Den ursprungliga platsen genererar inte längre rapporter för tabellen. Om du till exempel konverterar en extern tabell till en hanterad tabell ändras tabellens lagringsplats. Se Konvertera externa eller utländska Delta Lake-tabeller till hanterade Unity Catalog-tabeller.
Azure stöder inte inventeringskonfiguration mellan lagringskonton. Om dina tabeller omfattar flera lagringskonton behöver varje lagringskonto sin egen inventeringskonfiguration.
Notebook: Beräkningslagringsmått för flera tabeller
Följande notebook-fil körs ANALYZE TABLE ... COMPUTE STORAGE METRICS ... USING INVENTORY över en uppsättning Unity Catalog-tabeller och lagrar resultatet i en Delta Lake-tabell. Använd den för att analysera lagring i många tabeller samtidigt.