Referens till systemtabell för frågehistorik

Den här artikeln innehåller information om systemtabellen för frågehistorik, inklusive en disposition av tabellens schema.

Tabellsökväg: Den här systemtabellen finns på system.query.history.

Skivtillgänglighet

Register är vanligtvis tillgängliga inom en timme. Dataleverans för nya arbetsytor kan ta längre tid än så.

När frågehistoriktabellen använder kundhanterade nycklar gäller inte denna tillgänglighet. Se Läsa krypterade fält.

Använda frågehistoriktabellen

Frågehistoriktabellen innehåller poster för frågor som körs med SQL-lager, serverless beräkning för notebooks och jobb, samt Lakeflow-pipelines som använder serverless eller klassisk beräkning. Tabellen innehåller poster från alla arbetsytor i ditt konto som ligger i samma region som arbetsytan du använder för att komma åt tabellen.

Som standard har endast administratörer åtkomst till systemtabellen. Om du vill dela tabellens data med en användare eller grupp rekommenderar Databricks att du skapar en dynamisk vy för varje användare eller grupp. Se Skapa en dynamisk vy.

Systemtabellschema för frågehistorik

Tabellen för frågehistorik använder följande schema:

Kolumnnamn Datatyp Description Example
account_id string ID för kontot. 11e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string ID för arbetsytan där frågan kördes. 1234567890123456
statement_id string Det ID som unikt identifierar körningen av instruktionen. Du kan använda det här ID:t för att hitta körningen av kommandot i användargränssnittet för frågehistorik. 7a99b43c-b46c-432b
-b0a7-814217701909
session_id string Spark session-ID. 01234567-cr06-a2mp
-t0nd-a14ecfb5a9c2
execution_status string Uttalandets avslutningstillstånd. Möjliga värden är:
  • FINISHED: exekveringen lyckades
  • FAILED: utförandet misslyckades på grund av orsaken till felet som beskrivs i det medföljande felmeddelandet
  • CANCELED: körningen avbröts
FINISHED
compute struct En struct som representerar den typ av beräkningsresurs som används för att köra -instruktionen och ID:t för resursen i förekommande fall. Värdet type är ett av:
  • WAREHOUSE: körs på ett SQL-lager.
  • SERVERLESS_COMPUTE: köras på serverlös beräkning, såsom notebooks, jobb eller serverlösa Lakeflow-pipelines.
  • CLASSIC_COMPUTE: körs på klassisk beräkning, såsom klassiska Lakeflow-pipelines.
    Fältet warehouse_id fylls endast när type är WAREHOUSE. Fältet cluster_id är aldrig befolkat.
{
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: ec58ee3772e8d305
}
executed_by_user_id string ID:t för användaren som körde -instruktionen. 2967555311742259
executed_by string E-postadressen eller användarnamnet för användaren som körde -instruktionen. example@databricks.com
statement_text string Text för SQL-instruktionen. Som standard återkommer <REDACTED> detta fält om du inte är kontoadministratör eller medlem i databricks_pii_access kontonivågruppen. Se Access maskerad uttalandetext. Om du har konfigurerat kundhanterade nycklar, se Läsa krypterade fält. På grund av lagringsbegränsningar komprimeras längre instruktionstextvärden. Även med komprimering kan du nå en teckengräns. SELECT 1
statement_type string Instruktionstypen. Till exempel: ALTER, COPYoch INSERT. SELECT
error_message string Meddelande som beskriver feltillståndet. Om du har konfigurerat kundhanterade nycklar, se Läsa krypterade fält. [INSUFFICIENT_PERMISSIONS]
Insufficient privileges:
User does not have
permission SELECT on table
'default.nyctaxi_trips'.
client_application string Klientprogram som körde instruktionen. Till exempel: Databricks SQL Editor, Tableau och Power BI. Det här fältet härleds från information som tillhandahålls av klientprogram. Även om värden förväntas förbli statiska över tid kan detta inte garanteras. Databricks SQL Editor
client_driver string Anslutningen som används för att ansluta till Databricks för att köra uttalandet. Till exempel: Databricks SQL Driver for Go, Databricks ODBC Driver, Databricks JDBC Driver. Databricks JDBC Driver
cache_origin_statement_id string För frågeresultat som hämtats från cachen innehåller det här fältet instruktions-ID för frågan som ursprungligen infogade resultatet i cacheminnet. Om frågeresultatet inte hämtas från cacheminnet innehåller det här fältet frågans eget instruktions-ID. 01f034de-5e17-162d
-a176-1f319b12707b
total_duration_ms bigint Total körningstid för -instruktionen i millisekunder (exklusive resultathämtningstid). 1
waiting_for_compute_duration_ms bigint Tid som går åt till att vänta på att beräkningsresurser ska etableras, uttryckt i millisekunder. 1
waiting_at_capacity_duration_ms bigint Tid i kö för tillgänglig beräkningskapacitet i millisekunder. 1
execution_duration_ms bigint Tid som ägnas åt att köra -instruktionen i millisekunder. 1
compilation_duration_ms bigint Tid som används för att läsa in metadata och optimera uttrycket i millisekunder. 1
total_task_duration_ms bigint Summan av alla varaktigheter för aktiviteter i millisekunder. Denna tid representerar den sammanlagda tiden det tog att köra sökfrågan över alla kärnor i alla noder. Det kan vara betydligt längre än varaktigheten för väggklockan om flera uppgifter körs parallellt. Den kan vara kortare än väggklockans varaktighet om aktiviteter väntar på tillgängliga noder. 1
result_fetch_duration_ms bigint Tiden i millisekunder som används för att hämta instruktionsresultaten efter att körningen har slutförts. 1
start_time timestamp Tiden då Databricks tog emot begäran. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. 2022-12-05T00:00:00.000+0000
end_time timestamp Den tid då instruktionens körning avslutades, exklusive resultathämtningstid. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. 2022-12-05T00:00:00.000+00:00
update_time timestamp Tiden då uttalandet senast tog emot en förloppsuppdatering. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. 2022-12-05T00:00:00.000+00:00
read_partitions bigint Antalet partitioner som lästs efter beskärning. 1
pruned_files bigint Antalet beskärde filer. 1
read_files bigint Antalet filer som lästs efter beskärning. 1
read_rows bigint Totalt antal rader som lästs av -instruktionen. 1
produced_rows bigint Det totala antalet rader som returneras av instruktionen. 1
read_bytes bigint Total storlek på data som lästs av påståendet i byte. 1
pruned_files_bytes bigint Antalet byte filer som beskärs efter tabellpartitionering och filbeskärning. 1
read_files_bytes bigint Antalet byte filer som läses efter tabellpartitionering och filbeskärning. 1
read_io_cache_percent int Procentandelen byte av beständiga data som lästs från I/O-cachen. 50
from_result_cache boolean TRUE anger att instruktionsresultatet hämtades från cacheminnet. TRUE
spilled_local_bytes bigint Storleken på data, i bytes, som skrivs tillfälligt till disk när instruktionen körs. 1
written_bytes bigint Storleken i byte av beständiga data som skrivits till molnobjektlagring. 1
written_rows bigint Antalet rader med beständiga data som skrivits till molnobjektlagring. 1
written_files bigint Antal filer med beständiga data som skrivits till molnobjektlagring. 1
shuffle_read_bytes bigint Den totala mängden data i byte som skickas via nätverket. 1
query_source struct En struktur som innehåller nyckel/värde-par som representerar Databricks-entiteter som var inblandade i körningen av det här kommandot, till exempel jobb, anteckningsböcker eller dashboards. Det här fältet registrerar endast Databricks-entiteter. {
alert_id: 81191d77-184f-4c4e-9998-b6a4b5f4cef1,
sql_query_id: null,
dashboard_id: null,
notebook_id: null,
job_info: {
job_id: 12781233243479,
job_run_id: null,
job_task_run_id: 110373910199121
},
legacy_dashboard_id: null,
genie_space_id: null
}
query_parameters struct En struct som innehåller namngivna och positionsparametrar som används i parametriserade frågor. Namngivna parametrar representeras som nyckel/värde-par som mappar parameternamn till värden. Positionsparametrar representeras som en lista där indexet anger parameterpositionen. Endast en typ (namngiven eller positionell) kan finnas i taget. {
named_parameters: {
"param-1": 1,
"param-2": "hello"
},
pos_parameters: null,
is_truncated: false
}
executed_as string Namnet på den användare eller tjänsthuvudprincip vars behörighet användes för att köra instruktionen. example@databricks.com
executed_as_user_id string ID av användaren eller tjänsthuvudpersonen vars behörighet användes för att köra uttrycket. 2967555311742259
query_tags map<string, string> Anpassade nyckelvärdestaggar som tillämpas på frågan för gruppering, filtrering och kostnadsattribution. Taggar kan anges med hjälp av sessionskonfigurationsparametrar eller SQL-instruktionen SET QUERY_TAGS . Nyckeltaggar har ett null värde. Den här kolumnen fylls bara i för frågor som körs på SQL-lager. Se Frågetaggar. {
"team": "engineering",
"cost_center": "701",
"env": "prod"
}

Åtkomst till maskerad satstext

SQL-uttalanden kan innehålla känslig information såsom kundnamn, e-postadresser eller annan personligt identifierbar information (PII). Fältet statement_text returnerar <REDACTED> som standard. Kontoadministratörer och medlemmar i databricks_pii_access gruppen kan läsa hela frågetexten.

För att skapa gruppen och hantera dess medlemskap och behörigheter, se Skapa och hantera databricks_pii_access gruppen.

Felsök överlappande kolumnmasker

Om du redan har applicerat en kolumnmask på statement_text, till exempel med en attributbaserad åtkomstkontrollpolicy (ABAC), kan frågor mot system.query.history misslyckas med COLUMN_MASKS_FEATURE_NOT_SUPPORTED.MULTIPLE_MASKS. Endast en kolumnmask kan tillämpas på en kolumn för en given användare.

För att lösa konflikten måste du vara metastore-administratör eller ha en MANAGE på bordet. Använd Conflicting filters and masks för att identifiera överlappande policyer, och begränsa eller ta sedan bort din mask på statement_text.

Läsa krypterade fält

När arbetsytor använder kundhanterade nycklar för hanterade tjänster krypteras fälten statement_text och error_message i systemtabellen som standard. Det beror på att systemtabeller lagrar data från och kan nås av alla arbetsytor i regionen. Kontoadministratörer måste lägga till en nyckelkonfiguration i system själva katalogen för att dekryptera och visa krypterade systemtabellfält. Du måste ha MANAGE behörighet i system katalogen för att utföra den här åtgärden.

När frågehistoriktabellen använder kundhanterade nycklar gäller inte den typiska posttillgängligheten i Record-tillgänglighet .

Varning

Om du lägger till en nyckelkonfiguration i system katalogen tar du bort alla Unity-kataloger som du tidigare har tillämpat på system.query schemat och system.query.history tabellen och återställer dem till standardbidragen. Eftersom bidragen är metaarkivnivå påverkar detta alla arbetsytor som är kopplade till metaarkivet, inklusive arbetsytor där du inte körde kommandot. När du har aktiverat kundhanterade nycklar ska du använda eventuella anpassade bidrag på system.query och system.query.history.

Du kan antingen skapa en ny nyckel eller återanvända en befintlig. Kör följande kommando med hjälp av det fullständiga nyckel-ID:t:

curl -v -X PATCH https://my-workspace-url/api/2.1/unity-catalog/catalogs/system -H 'Authorization: Bearer <pat token>' --data '{
"managed_encryption_settings": {
        "azure_key_vault_key_id": "https://my-key-vault.vault.azure.net/keys/my-key-name/my-key-version",
        "azure_encryption_settings": {
          "azure_tenant_id": "my-tenant-id"
        }
      }
}'

Räkna med upp till 24 timmar för att aktivera processen. När aktiveringen är klar system.query.history börjar de krypterade fälten visas för alla nya poster. Poster skapade före aktivering kan inte dekrypteras.

Anmärkning

Katalogen system är olika för varje metaarkiv, så den kundhanterade nyckeln måste konfigureras separat för varje metaarkiv. Metaarkiv i samma region kan dock konfigureras för att använda samma nyckel.

Visa frågeprofilen för en post

Om du vill navigera till en frågas frågeprofil baserat på en post i frågehistoriktabellen gör du följande:

  1. Identifiera intresseposten och kopiera sedan postens statement_id.
  2. Hänvisa till dokumentets workspace_id för att försäkra dig om att du är inloggad på samma arbetsyta som dokumentet.
  3. Klicka på ikonen Historik.Frågehistorik i arbetsytans sidofält.
  4. I fältet Uttalande-ID klistrar du in statement_id i posten.
  5. Klicka på namnet på en fråga. En översikt över frågemått visas.
  6. Klicka på Se frågeprofil.

Förståelse av skanningsmått

Tabellen för frågehistorik innehåller flera mätvärden som samlats in under skanningen. Du kan beräkna följande ytterligare mått från tabellens kolumner:

  • table_bytes: Den totala komprimerade storleken, i bytes, av filerna i de skannade tabellerna. Beräknat som pruned_files_bytes + read_files_bytes.
  • table_files: Det totala antalet filer i de skannade tabellerna. Beräknat som read_files + pruned_files.

Anmärkning

read_bytes är inte direkt jämförbar med table_bytes. table_bytes, read_files_bytes, och pruned_files_bytes är komprimerade, filstorlekar på disken. Till skillnad från dessa filstorlekar read_bytes mäter den data som faktiskt lästs efter kolumn- och radgruppsbeskärning. Den kombinerar komprimerad data som läses från molnlagring med okomprimerad data som serveras från diskcachen, och den kan öka ytterligare när läsningar görs igen. Som ett resultat kan överstiga read_bytestable_bytes.

Förstå query_source kolumn

Kolumnen query_source innehåller en uppsättning unika identifierare för de Azure Databricks-entiteter som ingår i utförandet av instruktionen.

query_source Om kolumnen innehåller flera ID:er innebär det att instruktionskörningen utlöstes av flera entiteter. Ett jobbresultat kan till exempel utlösa en avisering som anropar en SQL-fråga. I det här exemplet fylls alla tre ID:na i i query_source. Värdena i den här kolumnen sorteras inte efter körningsordning.

Möjliga frågekällor är:

Giltiga kombinationer av query_source

Följande exempel visar hur query_source kolumnen fylls i beroende på hur frågan körs:

  • Frågor som utförs under en jobbprocess innehåller en ifylld job_info struct.

    {
    alert_id: null,
    sql_query_id: null,
    dashboard_id: null,
    notebook_id: null,
    job_info: {
    job_id: 64361233243479,
    job_run_id: null,
    job_task_run_id: 110378410199121
    },
    legacy_dashboard_id: null,
    genie_space_id: null
    }

  • Förfrågningar från aviseringar inkluderar en sql_query_id och alert_id:

    {
    alert_id: e906c0c6-2bcc-473a-a5d7-f18b2aee6e34,
    sql_query_id: 7336ab80-1a3d-46d4-9c79-e27c45ce9a15,
    dashboard_id: null,
    notebook_id: null,
    job_info: null,
    legacy_dashboard_id: null,
    genie_space_id: null
    }

  • Förfrågningar från instrumentpaneler inkluderar en dashboard_id, men ingen job_info:

    {
    alert_id: null,
    sql_query_id: null,
    dashboard_id: 887406461287882,
    notebook_id: null,
    job_info: null,
    legacy_dashboard_id: null,
    genie_space_id: null
    }