Opprette og bruke administrerte private endepunkter
Brukere med administratortillatelser til et Microsoft Fabric-arbeidsområde kan opprette, vise og slette administrerte private endepunkter fra Fabric-portalen gjennom innstillingene for arbeidsområdet.
Brukeren kan også overvåke statusen og godkjenningsprosessen for de administrerte private endepunktene fra delen Nettverkssikkerhet i innstillingene for arbeidsområdet.
Brukeren får tilgang til datakildene ved hjelp av det private endepunktnavnet fra Fabric Spark-arbeidsbelastningene.
Forutsetning
En Microsoft.Network-ressursleverandør må være registrert i Azure-abonnementet
Opprette et administrert privat endepunkt
Gå til innstillingene for arbeidsområdet i et stoffarbeidsområde, velg kategorien Nettverkssikkerhet , og velg deretter alternativet Opprett i delen Administrert privat endepunkt.
Dialogboksen Opprett administrert privat endepunkt åpnes.
Angi et navn for det private endepunktet, og kopier i ressursidentifikatoren for Azure-ressursen. Du finner ressursidentifikatoren i egenskaper-fanen på Azure Portal-siden.
Merk
Oppretting av et administrert privat endepunkt med et fullstendig domenenavn (FQDN) støttes ikke.
Når du er ferdig, velger du Opprett.
Når det administrerte private endepunktet er klargjort, endres aktiveringsstatusen til Vellykket.
I tillegg sendes forespørselen om privat endepunkttilgang til datakilden. Datakildeadministratorene blir varslet på Azure Portal-ressurssidene for datakildene sine. Der ser de en ventende tilgangsforespørsel med forespørselsmeldingen.
Hvis du tar SQL Server som et eksempel, kan brukere navigere til Azure-portalen og søke etter SQL Server-ressursen.
Velg Nettverk fra navigasjonsmenyen på Ressurs-siden, og velg deretter privat tilgang-fanen.
Datakildeadministratorer skal kunne vise aktive private endepunkttilkoblinger og nye tilkoblingsforespørsler.
Administratorer kan enten godkjenne eller avvise ved å angi en forretningsmessig begrunnelse.
Når forespørselen er godkjent eller avvist av datakildeadministratoren, oppdateres statusen på siden Innstillinger for stoffarbeidsområde ved oppdatering.
Når statusen er endret til godkjent, kan endepunktet brukes i notatblokker eller Spark-jobbdefinisjoner for å få tilgang til dataene som er lagret i datakilden fra Fabric-arbeidsområdet.
Bruk administrerte private endepunkter i Fabric
Microsoft Fabric-notatblokker støtter sømløs samhandling med datakilder bak sikrede nettverk ved hjelp av administrerte private endepunkter for datautforskning og -behandling. I en notatblokk kan brukere raskt lese data fra sine beskyttede datakilder (og skrive data tilbake til) sine lakehouses i en rekke filformater.
Denne veiledningen inneholder kodeeksempler som hjelper deg med å komme i gang i dine egne notatblokker for å få tilgang til data fra datakilder som SQL DB gjennom administrerte private endepunkter.
Forutsetning
Tilgang til datakilden. Dette eksemplet ser på Azure SQL Server og Azure SQL Database.
Logg på Microsoft Fabric og Azure-portalen.
Gå til Azure SQL Server-ressurssiden i Azure-portalen, og velg Egenskaper-menyen . Kopier ressurs-ID-en for SQL Server som du vil koble til fra Microsoft Fabric.
Ved hjelp av trinnene som er oppført i Opprett et administrert privat endepunkt, oppretter du det administrerte private endepunktet fra siden for sikkerhetsinnstillinger for Fabric Network.
Når datakildeadministratoren for SQL-serveren har godkjent den nye private tilkoblingsforespørselen for endepunkt, skal du kunne bruke det nyopprettede administrerte private endepunktet.
Koble til datakilden fra notatblokker
Bruk opplevelsesbryteren på venstre side av hjemmesiden for å bytte ut Utvikle-opplevelsen .
Gå til ønsket arbeidsområde, eller opprett et nytt om nødvendig.
Hvis du vil opprette en notatblokk, velger du Nytt element fra arbeidsområdet og velger Notatblokk.
Nå, i notatblokken, ved å angi navnet på SQL-databasen og tilkoblingsegenskapene, kan du koble til via den administrerte private endepunkttilkoblingen som er konfigurert til å lese tabellene i databasen og skrive dem til lakehouse i Microsoft Fabric.
Følgende PySpark-kode viser hvordan du kobler til en SQL-database.
serverName = "<server_name>.database.windows.net"
database = "<database_name>"
dbPort = 1433
dbUserName = "<username>"
dbPassword = “<db password> or reference based on Keyvault>”
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("Example") \
.config("spark.jars.packages", "com.microsoft.azure:azure-sqldb-spark:1.0.2") \
.config("spark.sql.catalogImplementation", "com.microsoft.azure.synapse.spark") \
.config("spark.sql.catalog.testDB", "com.microsoft.azure.synapse.spark") \
.config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName", "AzureSqlDatabase") \ .config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName.connectionString", f"jdbc:sqlserver://{serverName}:{dbPort};database={database};user={dbUserName};password={dbPassword}") \ .getOrCreate()
jdbcURL = "jdbc:sqlserver://{0}:{1};database={2}".format(serverName,dbPort,database)
connection = {"user":dbUserName,"password":dbPassword,"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver"}
df = spark.read.jdbc(url=jdbcURL, table = "dbo.Employee", properties=connection)
df.show()
display(df)
# Write the dataframe as a delta table in your lakehouse
df.write.mode("overwrite").format("delta").saveAsTable("Employee")
# You can also specify a custom path for the table location
# df.write.mode("overwrite").format("delta").option("path", "abfss://yourlakehouse.dfs.core.windows.net/Employee").saveAsTable("Employee")
Nå som tilkoblingen er opprettet, er neste trinn å opprette en dataramme for å lese tabellen i SQL-databasen.
Støttede datakilder
Microsoft Fabric støtter over 26 datakilder for å koble til ved hjelp av administrerte private endepunkter. Brukere må angi ressursidentifikatoren, som du finner på siden egenskaperinnstillinger for datakilden i Azure-portalen. Sørg for at ressurs-ID-formatet følges som vist i tabellen nedenfor.
Tjeneste | Ressurs-ID-format |
---|---|
Cognitive Services | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.CognitiveServices/accounts/{resource-name} |
Azure Databricks | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Databricks/workspaces/{workspace-name} |
Azure Database for MariaDB | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMariaDB/servers/{server-name} |
Azure Database for MySQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/servers/{server-name} |
Azure-database for PostgreSQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{server-name} |
Azure Cosmos DB for MongoDB | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Azure Cosmos DB for NoSQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Azure Monitor Private Link Scopes | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Insights/privateLinkScopes/{scope-name} |
Azure Key Vault | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{vault-name} |
Azure Data Explorer (Kusto) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Kusto/clusters/{cluster-name} |
Azure Machine Learning | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearningServices/workspaces/{workspace-name} |
Microsoft Purview | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Purview/accounts/{account-name} |
Azure Search | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Search/searchServices/{service-name} |
Azure SQL Database | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name} |
Azure SQL Database (Azure SQL administrert forekomst) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name} |
Azure Blob-lagring | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Data Lake Storage Gen2 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure File Storage | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Queue Storage | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Table Storage | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Synapse Analytics | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name} |
Azure Synapse Analytics (artefakter) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name} |
Azure Functions | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{function-app-name} |
Azure Event Hubs | /subscriptions/{subscription-id}/resourcegroups/{resource-group-name}/providers/Microsoft.EventHub/namespaces/{namespace-name} |
Azure IoT Hub | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name} |