Training
Module
Use Spark Notebooks in an Azure Synapse Pipeline - Training
This module describes how Apache Spark notebooks can be integrated into an Azure Synapse Analytics pipeline.
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
In dit artikel wordt beschreven hoe u gegevens leest die met u zijn gedeeld met behulp van het Databricks-to-Databricks Delta Sharing-protocol, waarin Databricks een beveiligde verbinding beheert voor het delen van gegevens. In tegenstelling tot het open sharing-protocol voor Delta Sharing is voor het Databricks-naar-Databricks-protocol geen referentiebestand (beveiliging op basis van tokens) vereist.
Voor het delen van Databricks-naar-Databricks moet u als ontvanger toegang hebben tot een Databricks-werkruimte die is ingeschakeld voor Unity Catalog.
Als u geen Databricks-werkruimte hebt die is ingeschakeld voor Unity Catalog, moeten gegevens met u worden gedeeld met behulp van het open sharing-protocol voor Delta Sharing. Dit artikel is niet van toepassing op u. Zie Gegevens lezen die worden gedeeld met Behulp van Delen met Delta Delen (voor geadresseerden).
Als u gegevens en notebooks wilt lezen die met u zijn gedeeld met behulp van het Databricks-to-Databricks-protocol, moet u een gebruiker zijn in een Databricks-werkruimte die is ingeschakeld voor Unity Catalog. Een lid van uw team biedt de gegevensprovider een unieke id voor uw Unity Catalog-metastore en de gegevensprovider gebruikt die id om een beveiligde verbinding voor delen met uw organisatie te maken. De gedeelde gegevens zijn vervolgens beschikbaar voor leestoegang in uw werkruimte en eventuele updates die de gegevensprovider aanbrengt in de gedeelde tabellen, weergaven, volumes en partities worden in bijna realtime weergegeven in uw werkruimte.
Notitie
Updates voor gedeelde gegevenstabellen, weergaven en volumes worden in bijna realtime weergegeven in uw werkruimte. Kolomwijzigingen (toevoegen, hernoemen, verwijderen) worden echter maximaal één minuut weergegeven in Catalog Explorer. Op dezelfde manier worden nieuwe shares en updates voor shares (zoals het toevoegen van nieuwe tabellen aan een share) één minuut in de cache opgeslagen voordat ze voor u beschikbaar zijn om te bekijken en query's uit te voeren.
Gegevens lezen die met u zijn gedeeld:
SELECT
of READ VOLUME
) toegang hebt.USE CATALOG
bevoegdheid hebt voor de catalogus.Als u details over alle providers en providershares wilt kunnen weergeven en weergeven, moet u een metastore-beheerder zijn of over de USE PROVIDER
bevoegdheid beschikken. Andere gebruikers hebben alleen toegang tot de providers en shares die ze bezitten.
Als u een catalogus wilt maken op basis van een providershare, moet u een metastore-beheerder zijn, een gebruiker met zowel de als CREATE CATALOG
de USE PROVIDER
bevoegdheden voor uw Unity Catalog-metastore, of een gebruiker die zowel de bevoegdheid als het CREATE CATALOG
eigendom van het providerobject heeft.
De mogelijkheid om alleen-lezentoegang te verlenen tot de schema's (databases), tabellen, weergaven en volumes in de catalogus die is gemaakt op basis van de share, volgt de typische privilegehiërarchie van Unity Catalog. De mogelijkheid om notitieblokken weer te geven in de catalogus die is gemaakt op basis van de share, vereist de USE CATALOG
bevoegdheid voor de catalogus. Zie Machtigingen beheren voor de schema's, tabellen en volumes in een Delta Sharing-catalogus.
Als u de gegevens wilt lezen die met u zijn gedeeld door een gegevensprovider, moet u de naam van de provider weten en objecten delen die zijn opgeslagen in uw Unity Catalog-metastore zodra de provider gegevens met u heeft gedeeld.
Het providerobject vertegenwoordigt de Unity Catalog-metastore, het cloudplatform en de regio van de organisatie die de gegevens met u heeft gedeeld.
Het shareobject vertegenwoordigt de tabellen, volumes en weergaven die de provider met u heeft gedeeld.
Als u een lijst met beschikbare gegevensproviders wilt weergeven, kunt u Catalog Explorer, de Databricks Unity Catalog CLI of de SHOW PROVIDERS
SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Vereiste machtigingen: u moet een metastore-beheerder zijn of de USE PROVIDER
bevoegdheid hebben. Andere gebruikers hebben alleen toegang tot de providers en providershares die ze bezitten.
Zie Providers weergeven voor meer informatie.
Als u details over een provider wilt weergeven, kunt u Catalog Explorer, de Databricks Unity Catalog CLI of de DESCRIBE PROVIDER
SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Vereiste machtigingen: u moet een metastore-beheerder zijn, de USE PROVIDER
bevoegdheid hebben of eigenaar zijn van het providerobject.
Zie Details van provider weergeven voor meer informatie.
Als u de shares wilt weergeven die een provider met u heeft gedeeld, kunt u Catalog Explorer, de Databricks Unity Catalog CLI of de SHOW SHARES IN PROVIDER
SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Vereiste machtigingen: u moet een metastore-beheerder zijn, de USE PROVIDER
bevoegdheid hebben of eigenaar zijn van het providerobject.
Zie Shares weergeven die een provider met u heeft gedeeld voor meer informatie.
Gegevens lezen in een gedeelde tabel of een gedeeld volume:
CREATE CATALOG
als USE PROVIDER
bevoegdheden heeft voor uw Unity Catalog-metastore, of een gebruiker die zowel de bevoegdheid als het CREATE CATALOG
eigendom van het providerobject heeft.Als u de gegevens in een share toegankelijk wilt maken voor uw team, moet u een catalogus maken op basis van de share. Als u een catalogus wilt maken op basis van een share, kunt u Catalog Explorer, de Databricks Unity Catalog CLI of SQL-opdrachten gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Vereiste machtigingen: een metastore-beheerder, een gebruiker met zowel de CREATE CATALOG
als USE PROVIDER
de bevoegdheden voor uw Unity Catalog-metastore, of een gebruiker die zowel de bevoegdheid als het CREATE CATALOG
eigendom van het providerobject heeft.
Notitie
Als de share weergaven bevat, moet u een andere catalogusnaam gebruiken dan de naam van de catalogus die de weergave bevat in de metastore van de provider.
Klik in uw Azure Databricks-werkruimte op Catalog om Catalog Explorer te openen.
Klik boven aan het deelvenster Catalogus op hettandwielpictogram en selecteer Delta Delen.
U kunt ook op de pagina Snelle toegang klikken op de knop Delta delen > .
Zoek en selecteer de provider op het tabblad Gedeeld met mij .
Zoek op het tabblad Shares de share en klik op Catalogus maken op de rij delen.
Voer een naam in voor de catalogus en optionele opmerking.
Klik op Create.
Als u Catalog Explorer opent, kunt u ook rechtsboven op Catalogus maken klikken om een gedeelde catalogus te maken. Zie Catalogussen maken.
Voer de volgende opdracht uit in een notebook of de Sql-query-editor van Databricks.
CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;
databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>
De catalogus die is gemaakt op basis van een share heeft een catalogustype Delta Sharing. U kunt het type weergeven op de pagina met catalogusdetails in Catalog Explorer of door de DESCRIBE CATALOG SQL-opdracht uit te voeren in een notebook of Databricks SQL-query. Alle gedeelde catalogi worden weergegeven onder Catalogus > gedeeld in het linkerdeelvenster van Catalog Explorer.
Een Delta Sharing-catalogus kan op dezelfde manier worden beheerd als gewone catalogi in een Unity Catalog-metastore. U kunt een Delta Sharing-catalogus weergeven, bijwerken en verwijderen met behulp van Catalog Explorer, de Databricks CLI en met behulp vanSHOW CATALOGS
DESCRIBE CATALOG
, en ALTER CATALOG
DROP CATALOG
SQL-opdrachten.
De naamruimtestructuur op drie niveaus onder een Delta Sharing-catalogus die is gemaakt op basis van een share, is hetzelfde als die onder een normale catalogus in Unity Catalog: catalog.schema.table
of catalog.schema.volume
.
Tabel- en volumegegevens onder een gedeelde catalogus hebben het kenmerk Alleen-lezen, wat betekent dat u leesbewerkingen kunt uitvoeren zoals:
DESCRIBE
, SHOW
en SELECT
voor tabellen.DESCRIBE VOLUME
, , LIST <volume-path>
en SELECT * FROM <format>.'<volume_path>'
COPY INTO
voor volumes.Notitieblokken in een gedeelde catalogus kunnen worden bekeken en gekloond door elke gebruiker in USE CATALOG
de catalogus.
Modellen in een gedeelde catalogus kunnen worden gelezen en geladen voor deductie door elke gebruiker met de volgende bevoegdheden: EXECUTE
bevoegdheden voor het geregistreerde model, plus USE SCHEMA
bevoegdheden USE CATALOG
voor het schema en de catalogus met het model.
De maker van de catalogus is standaard de eigenaar van alle gegevensobjecten onder een Delta Sharing-catalogus en kan machtigingen voor elk van deze objecten beheren.
Bevoegdheden worden naar beneden overgenomen, hoewel sommige werkruimten mogelijk nog steeds in het verouderde beveiligingsmodel staan dat geen overname heeft geboden. Zie overnamemodel. Elke gebruiker die de SELECT
bevoegdheid voor de catalogus heeft verleend, heeft de SELECT
bevoegdheid voor alle schema's en tabellen in de catalogus, tenzij die bevoegdheid wordt ingetrokken. Op dezelfde manier heeft elke gebruiker die de READ VOLUME
bevoegdheid voor de catalogus heeft verleend, de READ VOLUME
bevoegdheid voor alle volumes in de catalogus, tenzij die bevoegdheid wordt ingetrokken. U kunt geen bevoegdheden verlenen die schrijf- of updatetoegang verlenen tot een Delta Sharing-catalogus of -objecten in een Delta Sharing-catalogus.
De eigenaar van de catalogus kan het eigendom van gegevensobjecten delegeren aan andere gebruikers of groepen, waardoor deze gebruikers de mogelijkheid hebben om de objectmachtigingen en levenscyclus te beheren.
U kunt gegevens in een gedeelde tabel lezen met behulp van een van de hulpprogramma's die voor u beschikbaar zijn als azure Databricks-gebruiker: Catalog Explorer, notebooks, SQL-query's, de Databricks CLI en Databricks REST API's. U moet de SELECT
bevoegdheid voor de tabel hebben.
U kunt gegevens in een gedeeld volume lezen met behulp van een van de hulpprogramma's die voor u beschikbaar zijn als Azure Databricks-gebruiker: Catalog Explorer, notebooks, SQL-query's, de Databricks CLI en Databricks REST API's. U moet over de READ VOLUME
bevoegdheid op het volume beschikken.
Zie De versie van het model laden per alias voor deductieworkloads voor deductieworkloads voor meer informatie over het laden van een gedeeld model en het gebruik ervan voor batchdeductie.
Als de geschiedenis samen met de tabel wordt gedeeld, kunt u een query uitvoeren op de tabelgegevens vanaf een versie of tijdstempel. Vereist Databricks Runtime 12.2 LTS of hoger.
Voorbeeld:
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution VERSION AS OF 3;
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution TIMESTAMP AS OF "2023-01-01 00:00:00";
Als de wijzigingengegevensfeed (CDF) is ingeschakeld met de tabel, kunt u bovendien een query uitvoeren op het CDF. Zowel versie als tijdstempel worden ondersteund:
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', 0, 3);
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', "2023-01-01 00:00:00", "2022-02-01 00:00:00");
Zie Delta Lake-wijzigingenfeed gebruiken voor Azure Databricks voor meer informatie over wijzigingenfeeds.
Als een tabel wordt gedeeld met de geschiedenis, kunt u deze gebruiken als bron voor Spark Structured Streaming. Vereist Databricks Runtime 12.2 LTS of hoger.
Ondersteunde opties:
ignoreDeletes
: Transacties negeren die gegevens verwijderen.ignoreChanges
: Updates opnieuw verwerken als bestanden zijn herschreven in de brontabel vanwege een bewerking voor het wijzigen van gegevens, zoals UPDATE
, MERGE INTO
DELETE
(binnen partities) of OVERWRITE
. Ongewijzigde rijen kunnen nog steeds worden verzonden. Daarom moeten uw downstreamgebruikers dubbele waarden kunnen verwerken. Verwijderingen worden niet downstream doorgegeven.
ignoreChanges
ondergaat ignoreDeletes
. Als u deze gebruikt ignoreChanges
, wordt uw stream daarom niet onderbroken door verwijderingen of updates van de brontabel.startingVersion
: De versie van de gedeelde tabel waaruit moet worden gestart. Alle tabelwijzigingen vanaf deze versie (inclusief) worden gelezen door de streamingbron.startingTimestamp
: het tijdstempel waaruit moet worden gestart. Alle tabelwijzigingen die zijn doorgevoerd op of na de tijdstempel (inclusief) worden gelezen door de streamingbron. Voorbeeld: "2023-01-01 00:00:00.0"
maxFilesPerTrigger
: Het aantal nieuwe bestanden dat in elke microbatch moet worden overwogen.maxBytesPerTrigger
: De hoeveelheid gegevens die in elke microbatch wordt verwerkt. Met deze optie stelt u een 'voorlopig maximum' in, wat betekent dat een batch ongeveer deze hoeveelheid gegevens verwerkt en meer dan de limiet kan verwerken om de streamingquery verder te laten gaan in gevallen waarin de kleinste invoereenheid groter is dan deze limiet.readChangeFeed
: Stream leest de wijzigingengegevensfeed van de gedeelde tabel.Niet-ondersteunde opties:
Trigger.availableNow
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.table("vaccine.vaccine_us.vaccine_us_distribution")
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.table("vaccine.vaccine_us.vaccine_us_distribution")
Als wijzigingenfeed (CDF) is ingeschakeld met de tabel, kunt u het CDF streamen.
spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")
Belangrijk
Deze functie is beschikbaar als openbare preview.
Verwijderingsvectoren zijn een functie voor opslagoptimalisatie die uw provider kan inschakelen voor gedeelde Delta-tabellen. Zie Wat zijn verwijderingsvectoren?
Azure Databricks ondersteunt ook kolomtoewijzing voor Delta-tabellen. Zie De naam van kolommen wijzigen en neerzetten met delta lake-kolomtoewijzing.
Als uw provider een tabel heeft gedeeld met verwijderingsvectoren of kolomtoewijzing ingeschakeld, kunt u batchleesbewerkingen op de tabel uitvoeren met behulp van een SQL-warehouse of een cluster waarop Databricks Runtime 14.1 of hoger wordt uitgevoerd. Voor CDF- en streamingquery's is Databricks Runtime 14.2 of hoger vereist.
U kunt batchquery's als zodanig uitvoeren, omdat ze automatisch kunnen worden omgezet responseFormat
op basis van de tabelfuncties van de gedeelde tabel.
Als u een CDF (Change Data Feed) wilt lezen of streamingquery's wilt uitvoeren op gedeelde tabellen waarvoor verwijderingsvectoren of kolomtoewijzing zijn ingeschakeld, moet u de extra optie responseFormat=delta
instellen.
In de volgende voorbeelden ziet u batch-, CDF- en streamingquery's:
import org.apache.spark.sql.SparkSession
// Batch query
spark.read.format("deltaSharing").table(<tableName>)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.table(<tableName>)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").table(<tableName>)
Belangrijk
Deze functie is beschikbaar als openbare preview.
Het lezen van gedeelde weergaven is hetzelfde als het lezen van gedeelde tabellen, met deze uitzonderingen:
Beperkingen voor delen weergeven:
Naamgevingsvereisten:
De catalogusnaam die u gebruikt voor de gedeelde catalogus die de weergave bevat, mag niet hetzelfde zijn als een providercatalogus die een tabel bevat waarnaar wordt verwezen door de weergave. Als de gedeelde weergave bijvoorbeeld is opgenomen in uw test
catalogus en een van de tabellen van de provider waarnaar in die weergave wordt verwezen, is opgenomen in de catalogus van test
de provider, resulteert de query in een conflict met de naamruimte. Zie Een catalogus maken op basis van een share.
Geschiedenis en streaming:
U kunt geen querygeschiedenis uitvoeren of een weergave gebruiken als streamingbron.
Ondersteuning weergeven bij openen delen:
De instructies in dit artikel zijn gericht op het lezen van gedeelde gegevens met behulp van Azure Databricks-gebruikersinterfaces, met name de syntaxis en interfaces van Unity Catalog. U kunt ook query's uitvoeren op gedeelde weergaven met behulp van Apache Spark-, Python- en BI-hulpprogramma's zoals Tableau en Power BI.
Kosten:
Er zijn twee mogelijke kostenbronnen voor het delen van weergaven:
De rekenkosten zijn gebaseerd op het type rekenresource van de ontvanger:
Berekening van geadresseerden | Wie betaalt? | SKU |
---|---|---|
Databricks Serverless | Ontvanger | Serverloze SKU die wordt gebruikt door de ontvanger |
Databricks Classic | Ontvanger | Interactief serverloos |
Delta Sharing-connectors openen | Provider | Interactief serverloos |
Als u gedeelde notitieblokbestanden wilt bekijken en klonen, kunt u Catalog Explorer gebruiken.
Vereiste machtigingen: cataloguseigenaar of gebruiker met de USE CATALOG
bevoegdheid voor de catalogus die is gemaakt op basis van de share.
Klik in uw Azure Databricks-werkruimte op Catalogus.
Vouw in het linkerdeelvenster het menu Catalogus uit, zoek en selecteer de catalogus die is gemaakt op basis van de share.
Op het tabblad Overige assets ziet u gedeelde notitieblokbestanden.
Klik op de naam van een gedeeld notitieblokbestand om een voorbeeld ervan te bekijken.
(Optioneel) Klik op de knop Klonen om het gedeelde notitieblokbestand naar uw werkruimte te importeren.
Training
Module
Use Spark Notebooks in an Azure Synapse Pipeline - Training
This module describes how Apache Spark notebooks can be integrated into an Azure Synapse Analytics pipeline.
Documentatie
Shares maken en beheren voor Delta Sharing - Azure Databricks
Meer informatie over het gebruik van Azure Databricks voor het maken en beheren van Delta Sharing-shares, de objecten die gegevens vertegenwoordigen die veilig moeten worden gedeeld met gebruikers buiten uw organisatie.
Meer informatie over het veilig delen van gegevens met elke Databricks-gebruiker, ongeacht account of cloudhost, met databricks-to-Databricks Delta Sharing en Unity Catalog.
Delta Sharing instellen voor uw account (voor providers) - Azure Databricks
Meer informatie over het instellen van Delta Sharing in uw Azure Databricks-account, zodat u gegevens veilig kunt delen met andere organisaties.