LIVE-schema (verouderd)
Dit artikel bevat een overzicht van de verouderde syntaxis en het gedrag voor het LIVE
virtuele schema.
Het LIVE
virtuele schema is een verouderde functie van DLT-pijplijnen en wordt beschouwd als afgeschaft. U kunt nog steeds de verouderde publicatiemodus en het LIVE
virtuele schema gebruiken voor pijplijnen die met deze modus zijn gemaakt.
Ondersteuning voor verouderde LIVE
virtuele schema en verouderde publicatiemodus wordt verwijderd in een toekomstige versie van Azure Databricks.
Notitie
Verouderde publicatiemoduspijplijnen worden aangegeven in het veld Samenvatting van de gebruikersinterface voor DLT-pijplijninstellingen. U kunt ook controleren of een pijplijn gebruikmaakt van de verouderde publicatiemodus als het veld target
is ingesteld in de JSON-specificatie voor de pijplijn.
U kunt de gebruikersinterface voor pijplijnconfiguratie niet gebruiken om nieuwe pijplijnen te maken met de verouderde publicatiemodus. Als u nieuwe pijplijnen wilt implementeren met behulp van verouderde LIVE
syntaxis, neemt u contact op met de vertegenwoordiger van uw Databricks-account.
Wat is het virtuele LIVE-schema?
Notitie
Het LIVE
virtuele schema is niet meer nodig om de afhankelijkheid van de gegevensset te analyseren in de standaardpublicatiemodus voor DLT.
Het LIVE
schema is een programmeerconcept in DLT waarmee een virtuele grens wordt gedefinieerd voor alle gegevenssets die in een pijplijn zijn gemaakt of bijgewerkt. Het LIVE
schema is standaard niet rechtstreeks gekoppeld aan gegevenssets in een gepubliceerd schema. In plaats daarvan kan met het LIVE
schema logica in een pijplijn worden gepland en uitgevoerd, zelfs als een gebruiker geen gegevenssets naar een schema wil publiceren.
In verouderde publicatiemoduspijplijnen kunt u het trefwoord LIVE
gebruiken om te verwijzen naar andere gegevenssets in de huidige pijplijn voor leesbewerkingen, bijvoorbeeld SELECT * FROM LIVE.bronze_table
. In de standaardpublicatiemodus voor nieuwe DLT-pijplijnen wordt deze syntaxis op de achtergrond genegeerd, wat betekent dat niet-gekwalificeerde id's gebruikmaken van het huidige schema. Zie De doelcatalogus en het schema instellen.
verouderde publicatiemodus voor pijplijnen
Het LIVE
virtuele schema wordt gebruikt met de verouderde publicatiemodus voor DLT-pijplijnen. Alle tabellen die vóór 5 februari 2025 zijn gemaakt, gebruiken standaard de verouderde publicatiemodus.
In de volgende tabel wordt het gedrag beschreven voor alle gematerialiseerde views en streamingtabellen die zijn aangemaakt of bijgewerkt in een pijplijn in de klassieke publicatiemodus.
Opslagoptie | Opslaglocatie of catalogus | Doelschema | Gedrag |
---|---|---|---|
Hive-metastore | Geen opgegeven | Geen opgegeven | Metagegevens en gegevens van gegevenssets worden opgeslagen in de DBFS-hoofdmap. Er zijn geen databaseobjecten geregistreerd bij de Hive-metastore. |
Hive-metastore | Een URI of bestandspad naar de opslag van cloudobjecten. | Geen opgegeven | Metagegevens en gegevens van gegevenssets worden opgeslagen op de opgegeven opslaglocatie. Er zijn geen databaseobjecten geregistreerd bij de Hive-metastore. |
Hive-metastore | Geen opgegeven | Een bestaand of nieuw schema in de Hive-metastore. | Metagegevens en gegevens van gegevenssets worden opgeslagen in de DBFS-hoofdmap. Alle gerealiseerde weergaven en streamingtabellen in de pijplijn worden gepubliceerd naar het opgegeven schema in de Hive Metastore. |
Hive-metastore | Een URI of bestandspad naar de opslag van cloudobjecten. | Een bestaand of nieuw schema in de Hive-metastore. | Metagegevens en gegevens van gegevenssets worden opgeslagen op de opgegeven opslaglocatie. Alle gerealiseerde weergaven en streamingtabellen in de pijplijn worden gepubliceerd naar het opgegeven schema in hive-metastore. |
Unity Catalog | Een bestaande Unity Catalog-catalogus. | Geen opgegeven | Metagegevens en gegevens van gegevenssets worden opgeslagen op de standaardopslaglocatie die is gekoppeld aan de doelcatalogus. Er zijn geen databaseobjecten geregistreerd bij de Unity Catalog. |
Unity Catalog | Een bestaande Unity Catalog-catalogus. | Een bestaand of nieuw schema in Unity Catalog. | Metagegevens en gegevens van gegevenssets worden opgeslagen in de standaardopslaglocatie die is gekoppeld aan het doelschema of de doelcatalogus. Alle gerealiseerde weergaven en streamingtabellen in de pijplijn worden gepubliceerd naar het opgegeven schema in Unity Catalog. |
Broncode bijwerken vanuit LIVE-schema
Pijplijnen die zijn geconfigureerd om te worden uitgevoerd met de nieuwe standaardpublicatiemodus negeren de syntaxis van het LIVE
schema. Standaard gebruiken alle tabelleesbewerkingen de catalogus en het schema die zijn opgegeven in de pijplijnconfiguratie.
Voor de meeste bestaande pijplijnen heeft deze gedragswijziging geen invloed, omdat het verouderde LIVE
virtuele schemagedrag ook leesbewerkingen doorgeeft aan de catalogus en het schema dat is opgegeven in de pijplijnconfiguratie.
Belangrijk
Verouderde code met leesbewerkingen die gebruikmaken van de standaardcatalogus en het schema van de werkruimte vereisen code-updates. Bekijk de volgende gerealiseerde weergavedefinitie:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data
In de verouderde publicatiemodus maakt een niet-gekwalificeerde leesbewerking uit de raw_data
tabel gebruik van de standaardcatalogus en het standaardschema van de werkruimte, bijvoorbeeld main.default.raw_data
. In de nieuwe standaardpijplijnmodus zijn de catalogus en het schema die standaard worden gebruikt, geconfigureerd in de pijplijnconfiguratie. Als u ervoor wilt zorgen dat deze code blijft werken zoals verwacht, werkt u de verwijzing bij om de volledig gekwalificeerde id voor de tabel te gebruiken, zoals in het volgende voorbeeld:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data
Werken met gebeurtenislogboeken voor Unity Catalog-pijplijnen in de verouderde publicatiemodus
Belangrijk
De event_log
TVF is beschikbaar voor pijplijnen in de verouderde publicatiemodus die tabellen naar Unity Catalog publiceren. Standaardgedrag voor nieuwe pijplijnen publiceert het gebeurtenislogboek naar de doelcatalogus en het schema dat is geconfigureerd voor de pijplijn. Zie Het gebeurtenislogboek opvragen.
Tabellen die zijn geconfigureerd met Hive-metastore hebben ook verschillende ondersteuning en gedrag voor gebeurtenislogboeken. Zie Werken met gebeurtenislogboek voor Hive-metastore-pijplijnen.
Als uw pijplijn tabellen naar Unity Catalog publiceert met de verouderde publicatiemodus, moet u de functie event_log
functie met tabelwaarde (TVF) gebruiken om het gebeurtenislogboek voor de pijplijn op te halen. U haalt het gebeurtenislogboek voor een pijplijn op door de pijplijn-id of een tabelnaam door te geven aan de TVF. Als u bijvoorbeeld de gebeurtenislogboekrecords voor de pijplijn wilt ophalen met id 04c78631-3dd7-4856-b2a6-7d84e9b2638b
:
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")
De gebeurtenislogboek records ophalen voor de pijplijn die de tabel my_catalog.my_schema.table1
heeft gemaakt of waarvan deze eigenaar is.
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))
Als u de TVF wilt aanroepen, moet u een gedeeld cluster of een SQL Warehouse gebruiken. U kunt bijvoorbeeld een notebook gebruiken dat is gekoppeld aan een gedeeld cluster of de SQL-editor gebruiken verbonden met een SQL-warehouse.
Om het opvragen van gebeurtenissen voor een pijplijn te vereenvoudigen, kan de eigenaar van de pijplijn een weergave maken over de event_log
TVF. In het volgende voorbeeld wordt een weergave gemaakt van het gebeurtenislogboek voor een pijplijn. Deze weergave wordt gebruikt in de voorbeeldquery's voor gebeurtenislogboeken die zijn opgenomen in dit artikel.
Notitie
- De
event_log
TVF kan alleen worden aangeroepen door de eigenaar van de pijplijn. - U kunt de
event_log
tabelwaardefunctie niet gebruiken in een pijplijn of query om toegang te krijgen tot de gebeurtenislogboeken van meerdere pijplijnen. - U kunt een weergave die is gemaakt via de
event_log
tabelwaardefunctie niet delen met andere gebruikers.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Vervang <pipeline-ID>
door de unieke id voor de DLT-pijplijn. U kunt de ID vinden in het deelvenster Pijplijndetails in de DLT-gebruikersinterface.
Elk exemplaar van een pijplijnrun wordt een updategenoemd. U wilt vaak informatie extraheren voor de meest recente update. Voer de volgende query uit om de id voor de meest recente update te vinden en op te slaan in de latest_update_id
tijdelijke weergave. Deze weergave wordt gebruikt in de voorbeeldquery's voor gebeurtenislogboeken die zijn opgenomen in dit artikel:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;