Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Különálló materializált nézeteket és streamelő táblákat hozhat létre és frissíthet egy jegyzetfüzetből Python használatával. Hozza létre a folyamatot egy Python-jegyzetfüzetben, és futtassa a(z) spark.sql() használatával. Így a többi Python-alapú jegyzetfüzet-munkafolyamat mellett önálló folyamatokat is kezelhet.
Az önálló folyamatok Python-forrásához egy, a kiszolgáló nélküli általános számítási környezethez csatlakoztatott notebook szükséges. A Python nem használható önálló folyamatok létrehozására vagy frissítésére a Databricks SQL Warehouse-ból, mert egy raktár SQL-utasításokat futtat, nem Python jegyzetfüzeteket. Ha inkább SQL Warehouse-t szeretne használni, olvassa el az önálló materializált nézetek ésaz önálló streamelési táblák használata című témakört.
Important
Az önálló materializált nézetek és streamelési táblák létrehozása és frissítése egy jegyzetfüzetből a kiszolgáló nélküli általános számításban bétaverzióban érhető el, és bizonyos régiókban érhető el. Lásd : Jegyzetfüzetek.
Requirements
Az önálló adatfolyamok Pythonnal történő létrehozásához és frissítéséhez egy, a Databricks Runtime 18.1-es vagy újabb verzióján futó, szerver nélküli általános számítási erőforráshoz csatlakoztatott jegyzetfüzetre van szükség. A követelmények teljes listájáért, beleértve a regionális rendelkezésre állást és az engedélyeket, olvassa el a Jegyzetfüzetek című témakört.
Hogyan működik?
Egy Python-notebookban adja meg ugyanazokat az utasításokat, amelyeket egy Databricks SQL-warehouse-ból futtatna a spark.sql() számára. Az önálló materializált nézet és a streamelési táblázat szintaxisa megegyezik; csak az utasítás elküldésének módja különbözik. A raktárhoz hasonlóan mindegyik CREATE vagy REFRESH utasítás kiszolgáló nélküli folyamatot futtat a művelet feldolgozásához.
A spark munkamenet alapértelmezés szerint Azure Databricks jegyzetfüzetekben érhető el, ezért nincs szükség importálásra.
Materializált nézet létrehozása
Az alábbi példa létrehozza a materializált nézetet mv1 az alaptáblából 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
""")
A teljes CREATE MATERIALIZED VIEW részletekért, például az ütemezett és eseményindítású frissítésekről, lásd a következőt: Materializált nézet létrehozása.
Streaming tábla létrehozása
Az alábbi példa létrehozza a streamelési táblát sales a raw_data táblából:
spark.sql("""
CREATE OR REFRESH STREAMING TABLE sales
AS SELECT product, price FROM STREAM raw_data
""")
További részletekért CREATE STREAMING TABLE , beleértve a fájlok automatikus betöltővel való betöltését és az ütemezést, olvassa el az önálló streamelőtáblák használatát ismertető cikket.
Materializált nézet vagy streamingtábla frissítése
REFRESH Egy utasítással frissíthet egy különálló táblát a forrásból származó legfrissebb adatokkal:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
A kiszolgáló nélküli általános számításban a frissítések szinkronban vannak. Az aszinkron frissítések (a ASYNC kulcsszó) nem támogatottak. Lásd : Kiszolgáló nélküli általános számítás.
Utasítások paraméterezése
Ha a Python-kódból szeretne értékeket egy utasításnak átadni ahelyett, hogy fixen beírná őket, használjon elnevezett paraméterjelölőket az SQL-ben, és az értékeiket a spark.sql()args argumentumán keresztül adja meg. Használjon jelölőt, például :min_sales közvetlenül a literális értékekhez. A jelölőt csak akkor burkolja be IDENTIFIER() , ha a paraméter egy objektumnév, például tábla, nézet vagy séma, mert az azonosítók nem helyettesíthetők egyszerű sztringértékekként.
Az alábbi példa paraméterezi a materializált nézet nevét és a szűrő értékét is:
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,
})
További információ: Paraméterjelölők és IDENTIFIER záradék.
Egyéb utasítások futtatása
Bármely különálló materializált nézetet vagy streamelési táblázatutasítást futtathat egy Python jegyzetfüzetből, ha átadja azt a jegyzetfüzetnekspark.sql(), beleértve a frissítések ütemezésére, a táblák módosítására vagy a táblák elvetésére vonatkozó utasításokat. A materializált nézetek és a streamelőtáblák ( beleértve az SQL szintaxisát) használatának megismeréséhez tekintse meg az önálló materializált nézetek és az önálló streamelési táblák használata című témakört.
Limitations
A kiszolgáló nélküli általános számításon létrehozott önálló materializált nézetek és streamtáblák további korlátozásokkal rendelkeznek, például nem támogatják az aszinkron frissítéseket, és nem rendelhetők táblaenkénti költségek. A teljes listát a Kiszolgáló nélküli általános számítás című témakörben találja.