Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí Python můžete vytvářet a aktualizovat samostatná materializovaná zobrazení a streamované tabulky z poznámkového bloku. Vytvořte pipeline v notebooku Pythonu a spusťte ji pomocí spark.sql(). To vám umožní spravovat samostatné pipeline vedle ostatních pracovních postupů notebooků založených na Pythonu.
Zdrojový kód v Pythonu pro samostatné pipeline vyžaduje notebook připojený k obecnému bezserverovému výpočetnímu prostředí. Nemůžete použít Python k vytvoření nebo aktualizaci samostatných kanálů ze služby Databricks SQL Warehouse, protože sklad spouští příkazy SQL, ne Python poznámkové bloky. Pokud chcete místo toho použít SQL Warehouse, přečtěte si téma Použití samostatných materializovaných zobrazení a použití samostatných streamovacích tabulek.
Důležité
Vytváření a aktualizace samostatných materializovaných zobrazení a streamovaných tabulek z poznámkového bloku v bezserverovém obecném výpočetním prostředí je v beta verzi a k dispozici ve vybraných oblastech. Viz Poznámkové bloky.
Requirements
K vytváření a obnovování samostatných pipeline v Pythonu potřebujete poznámkový blok připojený k bezserverovému obecnému výpočetnímu prostředí v Databricks Runtime 18.1 nebo novějším. Úplný seznam požadavků, včetně regionální dostupnosti a oprávnění, najdete v poznámkových blocích.
Jak to funguje
V poznámkovém bloku Python předejte stejné příkazy, které byste spustili ze služby Databricks SQL Warehouse do spark.sql(). Syntaxe pro samostatný materializovaný pohled a streamovací tabulku je stejná; liší se pouze způsob podání příkazu. Stejně jako u skladu spouští každý CREATE příkaz REFRESH kanál bez serveru, který operaci zpracuje.
Relace spark je ve výchozím nastavení dostupná v poznámkových blocích Azure Databricks, takže není potřeba žádný import.
Vytvoření materializovaného zobrazení
Následující příklad vytvoří materializované zobrazení mv1 ze základní tabulky base_table1:
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM base_table1
GROUP BY date
""")
Úplné CREATE MATERIALIZED VIEW podrobnosti, jako jsou plánované a aktivované aktualizace, najdete v tématu Vytvoření materializovaného zobrazení.
Vytvořte streamovací tabulku
Následující příklad vytvoří streamovací tabulku sales z raw_data tabulky:
spark.sql("""
CREATE OR REFRESH STREAMING TABLE sales
AS SELECT product, price FROM STREAM raw_data
""")
Podrobné CREATE STREAMING TABLE informace, včetně načítání souborů pomocí Auto Loaderu a plánování, viz Použití samostatných streamovacích tabulek.
Aktualizovat materializované zobrazení nebo streamovací tabulku
REFRESH Pomocí příkazu aktualizujte samostatnou tabulku nejnovějšími daty ze svého zdroje:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
Na bezserverových obecných výpočetních prostředcích jsou aktualizace synchronní. Asynchronní aktualizace ( ASYNC klíčové slovo) se nepodporují. Viz Obecné výpočetní prostředky bez serveru.
Parametrizujte příkazy
Pokud chcete předat hodnoty z vašeho Python kódu do příkazu místo jejich pevně zakódování, použijte v SQL pojmenované značky parametrů a zadejte jejich hodnoty prostřednictvím argumentu argsspark.sql(). Použijte přímo značku, například :min_sales, pro literálové hodnoty. Zabalte značku IDENTIFIER() pouze v případě, že je parametr názvem objektu, jako je tabulka, zobrazení nebo schéma, protože identifikátory nelze nahradit hodnotami prostého řetězce.
Následující příklad parametrizuje materializovaný název zobrazení i hodnotu filtru:
mv_name = "main.sales.regional_sales"
min_sales = 1000
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
AS SELECT
region,
sum(sales) AS sum_of_sales
FROM base_table1
WHERE sales > :min_sales
GROUP BY region
""", args={
"mv": mv_name,
"min_sales": min_sales,
})
Další informace najdete v tématu Značky parametrů a IDENTIFIER klauzule.
Spusťte další příkazy
Z poznámkového bloku Pythonu můžete spustit libovolný samostatný příkaz pro materializované zobrazení nebo streamovací tabulku jeho předáním do spark.sql(), včetně příkazů k naplánování obnovení, úpravě tabulky nebo odstranění tabulky. Informace o použití materializovaných zobrazení a streamovaných tabulek, včetně syntaxe SQL, najdete v tématu Použití samostatných materializovaných zobrazení a použití samostatných streamovacích tabulek.
Limitations
Samostatná materializovaná zobrazení a streamované tabulky vytvořené na bezserverových obecných výpočetních prostředcích mají další omezení, jako je například žádná podpora asynchronních aktualizací a nepřisouzení nákladů na tabulku. Úplný seznam najdete v tématu Obecné výpočetní prostředí bez serveru.