Beheerde privé-eindpunten maken en gebruiken
Gebruikers met beheerdersmachtigingen voor een Microsoft Fabric-werkruimte kunnen beheerde privé-eindpunten maken, weergeven en verwijderen vanuit de Fabric-portal via de werkruimte-instellingen.
De gebruiker kan ook de status en het goedkeuringsproces van de beheerde privé-eindpunten bewaken vanuit de sectie Netwerkbeveiliging van de werkruimte-instellingen.
De gebruiker heeft toegang tot de gegevensbronnen met behulp van de naam van het privé-eindpunt van de Fabric Spark-workloads.
Vereisten
Een Microsoft.Network-resourceprovider moet worden geregistreerd in het Azure-abonnement
Een beheerd privé-eindpunt maken
Navigeer in een Infrastructuurwerkruimte naar de werkruimte-instellingen, selecteer het tabblad Netwerkbeveiliging en selecteer vervolgens de optie Maken in de sectie Beheerd privé-eindpunt.
Het dialoogvenster Beheerde privé-eindpunt maken wordt geopend.
Geef een naam op voor het privé-eindpunt en kopieer deze in de resource-id voor de Azure-resource. De resource-id vindt u op het tabblad Eigenschappen op de azure-portalpagina.
Notitie
Het maken van een beheerd privé-eindpunt met een FQDN (Fully Qualified Domain Name) wordt niet ondersteund.
Wanneer u klaar bent, selecteert u Maken.
Wanneer het beheerde privé-eindpunt is ingericht, wordt de activeringsstatus gewijzigd in Geslaagd.
Daarnaast wordt de aanvraag voor de toegang tot het privé-eindpunt verzonden naar de gegevensbron. De beheerders van de gegevensbron worden op de resourcepagina's van Azure Portal op de hoogte gesteld van hun gegevensbronnen. Daar zien ze een toegangsaanvraag in behandeling met het aanvraagbericht.
Als u SQL Server als voorbeeld gebruikt, kunnen gebruikers naar de Azure-portal navigeren en naar de SQL Server-resource zoeken.
Selecteer netwerken op de pagina Resource in het navigatiemenu en selecteer vervolgens het tabblad Privétoegang.
Beheerders van gegevensbronnen moeten de actieve privé-eindpuntverbindingen en nieuwe verbindingsaanvragen kunnen bekijken.
Beheerders kunnen goedkeuren of weigeren door een zakelijke reden op te geven.
Zodra de aanvraag is goedgekeurd of geweigerd door de beheerder van de gegevensbron, wordt de status bijgewerkt op de pagina met instellingen voor de infrastructuurwerkruimte bij het vernieuwen.
Wanneer de status is gewijzigd in goedgekeurd, kan het eindpunt worden gebruikt in notebooks of Spark-taakdefinities voor toegang tot de gegevens die zijn opgeslagen in de gegevensbron vanuit de werkruimte Fabric.
Beheerde privé-eindpunten gebruiken in Fabric
Microsoft Fabric-notebooks ondersteunen naadloze interactie met gegevensbronnen achter beveiligde netwerken met behulp van beheerde privé-eindpunten voor gegevensverkenning en -verwerking. In een notebook kunnen gebruikers snel gegevens lezen uit hun beveiligde gegevensbronnen (en gegevens terugschrijven naar) hun lakehouses in verschillende bestandsindelingen.
Deze handleiding bevat codevoorbeelden om u op weg te helpen in uw eigen notebooks om toegang te krijgen tot gegevens uit gegevensbronnen zoals SQL DB via beheerde privé-eindpunten.
Vereisten
Toegang tot de gegevensbron. In dit voorbeeld worden Azure SQL Server en Azure SQL Database bekeken.
Meld u aan bij Microsoft Fabric en Azure Portal.
Navigeer naar de resourcepagina van Azure SQL Server in Azure Portal en selecteer het menu Eigenschappen . Kopieer de resource-id voor de SQL Server waarmee u verbinding wilt maken vanuit Microsoft Fabric.
Met behulp van de stappen die worden vermeld in Een beheerd privé-eindpunt maken, maakt u het beheerde privé-eindpunt op de pagina Beveiligingsinstellingen voor infrastructuurnetwerk.
Zodra de gegevensbronbeheerder van de SQL-server de nieuwe verbindingsaanvraag voor het privé-eindpunt heeft goedgekeurd, moet u het zojuist gemaakte beheerde privé-eindpunt kunnen gebruiken.
Verbinding maken met de gegevensbron vanuit notebooks
Meld u aan bij de Microsoft Fabric-portal.
Gebruik de ervaringswisselaar aan de linkerkant van de startpagina om de ontwikkelervaring te wijzigen.
Navigeer naar de gewenste werkruimte of maak indien nodig een nieuwe werkruimte.
Als u een notitieblok wilt maken, selecteert u Nieuw item in de werkruimte en kiest u Notebook.
Nu kunt u in het notebook de naam van de SQL-database en de bijbehorende verbindingseigenschappen opgeven via de beheerde privé-eindpuntverbinding die is ingesteld om de tabellen in de database te lezen en naar uw lakehouse in Microsoft Fabric te schrijven.
De volgende PySpark-code laat zien hoe u verbinding maakt met een 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")
Nu de verbinding tot stand is gebracht, is de volgende stap het maken van een gegevensframe om de tabel in de SQL Database te lezen.
Ondersteunde gegevensbronnen
Microsoft Fabric ondersteunt meer dan 26 gegevensbronnen om verbinding te maken met beheerde privé-eindpunten. Gebruikers moeten de resource-id opgeven, die te vinden is op de pagina Eigenschappeninstellingen van hun gegevensbron in Azure Portal. Zorg ervoor dat de resource-id-indeling wordt gevolgd, zoals wordt weergegeven in de volgende tabel.
Service | Resource-id-indeling |
---|---|
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 voor MongoDB | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Azure Cosmos DB voor NoSQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Private Link-bereiken van Azure Monitor | /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 Managed Instance) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name} |
Azure Blob-opslag | /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-tabelopslag | /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 (artefacten) | /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} |