Referenční informace k systémové tabulce historie dotazů

Important

Tato systémová tabulka je ve verzi Public Preview.

Tento článek obsahuje informace o systémové tabulce historie dotazů včetně přehledu schématu tabulky.

cesta k tabulce: Tato systémová tabulka se nachází v system.query.history.

Použití tabulky historie dotazů

Tabulka historie dotazů obsahuje záznamy pro dotazy spuštěné pomocí SQL Warehouse nebo bezserverových výpočtů pro poznámkové bloky a úlohy . Tabulka obsahuje záznamy pro celý účet ze všech pracovních prostorů ve stejné oblasti, ze které přistupujete k tabulce.

Ve výchozím nastavení mají k systémové tabulce přístup jenom správci. Pokud chcete data tabulky sdílet s uživatelem nebo skupinou, doporučuje Databricks vytvořit dynamické zobrazení pro každého uživatele nebo skupinu. Viz Vytvoření dynamického zobrazení.

Schéma systémové tabulky historie dotazů

Tabulka historie dotazů používá následující schéma:

Název sloupce Datový typ Description Example
account_id řetězec ID účtu. 11e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id řetězec ID pracovního prostoru, ve kterém byl dotaz spuštěn. 1234567890123456
statement_id řetězec ID, které jednoznačně identifikuje provádění příkazu. Tento identifikátor můžete použít k vyhledání provedení příkazu v Query History UI. 7a99b43c-b46c-432b
-b0a7-814217701909
session_id řetězec ID relace Sparku. 01234567-cr06-a2mp
-t0nd-a14ecfb5a9c2
execution_status řetězec Stav ukončení výroku. Možné hodnoty:
  • FINISHED: Provádění bylo úspěšné.
  • FAILED: spuštění selhalo s důvodem selhání popsaného v doprovodné chybové zprávě.
  • CANCELED: spuštění bylo zrušeno.
FINISHED
compute struktura Struktura, která představuje typ výpočetního prostředku použitého ke spuštění příkazu a ID prostředku, pokud je to možné. Hodnota type bude buď WAREHOUSE nebo SERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: ec58ee3772e8d305
}
executed_by_user_id řetězec ID uživatele, který příkaz spustil. 2967555311742259
executed_by řetězec E-mailová adresa nebo uživatelské jméno uživatele, který příkaz spustil. example@databricks.com
statement_text řetězec Text příkazu SQL Pokud jste nakonfigurovali klíče spravované zákazníkem, statement_text je prázdné. Kvůli omezením úložiště se komprimují delší textové hodnoty příkazů. I při kompresi můžete dosáhnout limitu znaků. SELECT 1
statement_type řetězec Typ výroku. Například: ALTER, COPYa INSERT. SELECT
error_message řetězec Zpráva popisující chybový stav Pokud jste nakonfigurovali klíče spravované zákazníkem, error_message je prázdné. [INSUFFICIENT_PERMISSIONS]
Insufficient privileges:
User does not have
permission SELECT on table
'default.nyctaxi_trips'.
client_application řetězec Klientská aplikace, která příkaz spustila. Příklad: Editor SQL Databricks, Tableau a Power BI. Toto pole je odvozeno z informací poskytovaných klientskými aplikacemi. I když se očekává, že hodnoty budou v průběhu času statické, nelze zaručit. Databricks SQL Editor
client_driver řetězec Konektor použitý pro připojení k Databricks pro spuštění příkazu. Příklad: Databricks SQL ovladač pro Go, Databricks ODBC ovladač, Databricks JDBC ovladač. Databricks JDBC Driver
cache_origin_statement_id řetězec Pro výsledky dotazu načtené z mezipaměti obsahuje toto pole ID příkazu dotazu, který původně vložil výsledek do mezipaměti. Pokud se výsledek dotazu nenačte z mezipaměti, obsahuje toto pole vlastní ID příkazu dotazu. 01f034de-5e17-162d
-a176-1f319b12707b
total_duration_ms bigint Celková doba provádění příkazu v milisekundách (s výjimkou doby načítání výsledku). 1
waiting_for_compute_duration_ms bigint Doba strávená čekáním na zřízení výpočetních prostředků v milisekundách 1
waiting_at_capacity_duration_ms bigint Čas strávený čekáním ve frontě na dostupnou výpočetní kapacitu v milisekundách 1
execution_duration_ms bigint Čas strávený prováděním příkazu v milisekundách 1
compilation_duration_ms bigint Čas strávený načítáním metadat a optimalizací příkazu v milisekundách 1
total_task_duration_ms bigint Součet všech dob trvání úkolů v milisekundách Tentokrát představuje kombinovaný čas, který trvalo spuštění dotazu napříč všemi jádry všech uzlů. Pokud se paralelně provádí více úkolů, může to být výrazně delší než doba trvání hodin. Pokud úkoly čekají na dostupné uzly, může být kratší než doba trvání na nástěnné hodiny. 1
result_fetch_duration_ms bigint Čas strávený načítáním výsledků příkazu v milisekundách po dokončení provádění. 1
start_time časové razítko Čas, kdy Databricks obdržel požadavek. Informace o časovém pásmu se zaznamenávají na konci hodnoty s +00:00 představujícím UTC. 2022-12-05T00:00:00.000+0000
end_time časové razítko Čas ukončení provádění příkazu s výjimkou času načtení výsledku. Informace o časovém pásmu se zaznamenávají na konci hodnoty s +00:00 představujícím UTC. 2022-12-05T00:00:00.000+00:00
update_time časové razítko Čas, kdy prohlášení naposledy obdrželo aktualizaci průběhu. Informace o časovém pásmu se zaznamenávají na konci hodnoty s +00:00 představujícím UTC. 2022-12-05T00:00:00.000+00:00
read_partitions bigint Počet částí přečtených po prořezání. 1
pruned_files bigint Počet vyříznutých souborů. 1
read_files bigint Počet souborů přečtených po vyřazení. 1
read_rows bigint Celkový počet řádků přečtených příkazem 1
produced_rows bigint Celkový počet řádků vrácených příkazem 1
read_bytes bigint Celková velikost dat přečtených příkazem v bajtech 1
read_io_cache_percent int Podíl bajtů perzistentních dat načtených z mezipaměti IO. 50
from_result_cache boolean TRUE označuje, že výsledek příkazu byl načten z mezipaměti. TRUE
spilled_local_bytes bigint Velikost dat v bajtech se během provádění příkazu dočasně zapisuje na disk. 1
written_bytes bigint Velikost v bajtech trvalých dat zapsaných do cloudového úložiště objektů. 1
written_rows bigint Počet řádků trvalých dat zapsaných do cloudového úložiště objektů. 1
written_files bigint Počet souborů trvalých dat zapsaných do cloudového úložiště objektů 1
shuffle_read_bytes bigint Celkové množství dat v bajtech posílaných přes síť. 1
query_source struktura Struktura, která obsahuje páry klíč-hodnota představující entity Databricks, které byly zapojeny do provádění tohoto příkazu, jako jsou úlohy, poznámkové bloky nebo řídicí panely. Toto pole zaznamenává pouze entity Databricks. {
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 struktura Struktura obsahující pojmenované a poziční parametry použité v parametrizovaných dotazech. Pojmenované parametry jsou reprezentovány jako páry klíč-hodnota, které mapují názvy parametrů na hodnoty. Poziční parametry jsou reprezentovány jako seznam, kde index označuje pozici parametru. Najednou může být přítomen pouze jeden typ (pojmenovaný nebo poziční). {
named_parameters: {
"param-1": 1,
"param-2": "hello"
},
pos_parameters: null,
is_truncated: false
}
executed_as řetězec Název uživatele nebo služby, jehož oprávnění bylo použito ke spuštění příkazu. example@databricks.com
executed_as_user_id řetězec ID uživatele nebo služebního účtu, jehož oprávnění bylo použito ke spuštění příkazu. 2967555311742259
query_tags map<string, string> Vlastní značky klíč-hodnota použité v dotazu pro seskupování, filtrování a přiřazení nákladů. Značky je možné nastavit pomocí parametrů konfigurace relace nebo příkazu SET QUERY_TAGS SQL. Značky jen pro klíč mají null hodnotu. Tento sloupec je naplněn pouze pro dotazy spuštěné ve službě SQL Warehouse. Viz značky dotazů. {
"team": "engineering",
"cost_center": "701",
"env": "prod"
}

Čtení šifrovaných polí

Important

Tato funkce je ve verzi Public Preview.

Pokud pracovní prostory používají klíče spravované zákazníkem pro spravované služby, statement_texterror_message jsou pole v systémové tabulce ve výchozím nastavení šifrovaná. Důvodem je to, že systémové tabulky ukládají data z oblasti, ke které mají přístup všechny pracovní prostory. Aby mohli správci účtu dešifrovat a zobrazit zašifrovaná systémová pole, musí do samotného system katalogu přidat konfiguraci klíče. K provedení této operace musíte mít MANAGE oprávnění k system katalogu.

Výstraha

Přidání konfigurace klíče do system katalogu odebere všechny katalogy Unity, které jste dříve použili na system.query schéma a system.query.history tabulku, a resetuje je na výchozí udělení. Vzhledem k tomu, že granty jsou na úrovni metastoru, ovlivní to všechny pracovní prostory připojené k metastoru, včetně pracovních prostorů, ve kterých jste příkaz nespusili. Po povolení klíčů spravovaných zákazníkem znovu použijte jakékoli vlastní granty system.query a system.query.history.

Můžete buď vytvořit nový klíč , nebo znovu použít existující klíč. Pomocí celého ID klíče spusťte následující příkaz:

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"
        }
      }
}'

Počkejte až 24 hodin system.query.history , než se začnou zobrazovat šifrovaná pole.

Poznámka:

Katalog system se pro každý metastor liší, takže klíč spravovaný zákazníkem musí být nakonfigurovaný samostatně pro každý metastor. Metastory ve stejné oblasti je však možné nakonfigurovat tak, aby používaly stejný klíč.

Zobrazení profilu dotazu pro záznam

Pokud chcete přejít na profil dotazu založený na záznamu v tabulce historie dotazů, postupujte takto:

  1. Identifikujte požadovaný záznam; poté zkopírujte záznam statement_id.
  2. Odkazuje na identifikátor workspace_id záznamu, abyste se ujistili, že jste přihlášeni do stejného pracovního prostoru jako tento záznam.
  3. Klikněte na ikonu Historie.Historie dotazů na bočním panelu pracovního prostoru
  4. Ve pole ID příkazu vložte záznam statement_id.
  5. Klikněte na název dotazu. Zobrazí se přehled metrik dotazů.
  6. Klikněte na Zobrazit profil dotazu.

Pochopení sloupce query_source

Sloupec query_source obsahuje sadu jedinečných identifikátorů Azure Databricks entit zapojených do provádění příkazu.

query_source Pokud sloupec obsahuje více ID, znamená to, že spuštění příkazu aktivovalo více entit. Například výsledek úlohy může aktivovat upozornění, které volá dotaz SQL. V tomto příkladu budou všechna tři ID vyplněna v rámci query_source. Hodnoty tohoto sloupce nejsou seřazené podle pořadí provádění.

Možné zdroje dotazů:

  • alert_id: Příkaz aktivovaný z výstrahy
  • sql_query_id: Příkaz spuštěný z této relace editoru SQL
  • dashboard_id: Příkaz spuštěný z řídicího panelu
  • genie_space_id: Příkaz spuštěný z agenta Genie
  • notebook_id: Příkaz spuštěný z notebooku
  • job_info.job_id: Příkaz spuštěný v rámci úlohy
  • job_info.job_run_id: Příkaz spuštěn během běhu úlohy
  • job_info.job_task_run_id: Příkaz spuštěný v rámci spuštění úlohy

Platné kombinace „query_source“

Následující příklady ukazují, jak query_source se sloupec naplní v závislosti na způsobu spuštění dotazu:

  • Dotazy spuštěné během spuštění úlohy zahrnují vyplněnou job_info strukturu:

    {
    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
    }

  • Dotazy z výstrah zahrnují sql_query_id a 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
    }

  • Dotazy z řídicích panelů zahrnují dashboard_id, ale ne 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
    }