Ruční identifikace nebo ověřování primárních klíčů (PK) v mnoha tabulkách najednou může být zdlouhavé a časově náročné. Základní metodu vyhledávání pomocí příkazu INFORMATION_SCHEMA pravděpodobně znáte. Tento článek vás seznámí s efektivnějším přístupem, který využívá příkazy DDL programu Snowflake.
Jedním z častých problémů je identifikace primárních klíčů v tabulkách Snowflake, aniž by bylo nutné ručně kontrolovat každou tabulku. Použití příkazu DESCRIBE TABLE funguje, ale u velkého počtu tabulek se stává nepraktickým. Automatizace tohoto procesu může výrazně ušetřit čas a snížit počet chyb.
K automatickému načítání primárních klíčů můžete využít pohledy INFORMATION_SCHEMA a funkci GET_DDL společnosti Snowflake. Zde je návod, jak to efektivně provést krok za krokem:
INFORMATION_SCHEMA systému Snowflake poskytuje pohledy jako TABLE_CONSTRAINTS a REFERENTIAL_CONSTRAINTS, které lze dotazem získat metadata o omezeních tabulky, včetně primárních klíčů.
Funkce GET_DDL generuje příkazy jazyka DDL (Data Definition Language) pro databázové objekty. Výstup můžete analyzovat a získat informace o primárním klíči.
Pokud chceme zjistit primární klíče většího počtu tabulek uložených ve více schématech, můžeme použít příkaz SHOW PRIMARY KEYS in schema.
Zde je praktický příklad, jak můžete tuto funkci implementovat:
Můžete se zeptat na INFORMATION_SCHEMA.TABLE_CONSTRAINTS a najít primární klíče pro více tabulek. Jedná se o základní a jednoduchou metodu.
Pokud dáváte přednost použití GET_DDL, zde je příklad dotazu, který z DDL tabulky získá primární klíč:
WITH t1 AS (
SELECT 'table1' AS "TABLE_NAME",
GET_DDL('TABLE', '<schema_name>.<table_name>') AS DDL
)
SELECT
"TABLE_NAME",
REPLACE(REPLACE(REPLACE(REPLACE(SPLIT_PART(T.DDL, 'primary key', 2), ';', ''), '(', ''), ')', ''), '"', '') AS PK
FROM t1 AS T;
Pokud potřebujete zjistit primární klíče ve více schématech, můžete použít příkaz SHOW PRIMARY KEYS. Zde je příklad:
SHOW PRIMARY KEYS IN SCHEMA "KEBOOLA_00"."schemaA";
SHOW PRIMARY KEYS IN SCHEMA "KEBOOLA_00"."schemaB";
CREATE OR REPLACE TABLE PRIMARY_KEYS AS (
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID(-2)))
UNION ALL
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID(-1)))
) x;
Tento skript ukazuje, jak spojit výsledky z více příkazů SHOW PRIMARY KEYS do jedné tabulky pro snadnější analýzu.
Pomocí nástrojů INFORMATION_SCHEMA a GET_DDL můžete automatizovat načítání primárních klíčů z více tabulek v Snowflake. Tento přístup šetří čas a minimalizuje ruční práci, takže se můžete soustředit na důležitější úkoly. Ať už se rozhodnete dotazovat přímo na pohledy na schéma, nebo analyzovat příkazy DDL, obě metody poskytují efektivní řešení pro správu databázového schématu.
Neváhejte s těmito dotazy experimentovat a přizpůsobit je svým konkrétním požadavkům.
Šťastné dotazování a děkujeme Renée za dotaz ve Slacku Revolt BI!