Erstellen und Verwenden von verwalteten privaten Endpunkten
Benutzer mit Administratorberechtigungen für einen Microsoft Fabric-Arbeitsbereich können verwaltete private Endpunkte über die Arbeitsbereichseinstellungen aus dem Fabric-Portal erstellen, anzeigen und löschen.
Der Benutzer kann auch den Status und den Genehmigungsprozess der verwalteten privaten Endpunkte aus dem Abschnitt Netzwerksicherheit der Arbeitsbereichseinstellungen überwachen.
Der Benutzer kann über die Fabric Spark-Workloads auf die Datenquellen zugreifen.
Erstellen eines verwalteten privaten Endpunkts
Navigieren Sie in einem Fabric-Arbeitsbereich zu den Arbeitsbereichseinstellungen, wählen Sie die Registerkarte Netzwerksicherheit und dann die Option Erstellen im Abschnitt „Verwalteter privater Endpunkt“ aus.
Das Dialogfeld Verwalteten privaten Endpunkt erstellen wird geöffnet.
Geben Sie einen Namen für den privaten Endpunkt an, und kopieren Sie den Ressourcenbezeichner für die Azure-Ressource. Der Ressourcenbezeichner befindet sich auf der Registerkarte „Eigenschaften“ auf der Seite Azure-Portal.
Wählen Sie abschließend die Option Erstellen.
Wenn der verwaltete private Endpunkt bereitgestellt wurde, ändert sich der Aktivierungsstatus in Erfolgreich.
Darüber hinaus wird die Anforderung für den Zugriff auf private Endpunkte an die Datenquelle gesendet. Die Datenquellenadministratoren werden auf den Azure-Portal Ressourcenseiten für ihre Datenquellen benachrichtigt. Dort wird eine ausstehende Zugriffsanforderung mit der Anforderungsnachricht angezeigt.
Beispielsweise können Benutzer zum Azure-Portal navigieren und nach der SQL Server-Ressource suchen.
Wählen Sie auf der Seite „Ressource“ im Navigationsmenü Netzwerk und dann die Registerkarte Privater Zugriff aus.
Datenquellenadministratoren sollten in der Lage sein, die aktiven privaten Endpunktverbindungen und neue Verbindungsanforderungen anzuzeigen.
Administratoren können entweder Genehmigen oder Ablehnen, indem sie eine geschäftliche Begründung angeben.
Nachdem die Anforderung vom Datenquellenadministrator genehmigt oder abgelehnt wurde, wird der Status auf der Seite Fabric-Arbeitsbereichseinstellungen bei der Aktualisierung aktualisiert.
Wenn der Status in Genehmigt geändert wurde, kann der Endpunkt in Notebooks oder Spark-Auftragsdefinitionen verwendet werden, um auf die in der Datenquelle gespeicherten Daten aus dem Fabric-Arbeitsbereich zuzugreifen.
Verwenden von verwalteten privaten Endpunkten in Fabric
Microsoft Fabric-Notebooks unterstützen eine nahtlose Interaktion mit Datenquellen hinter gesicherten Netzwerken mithilfe von verwalteten privaten Endpunkten für die Datenerkundung und -verarbeitung. Innerhalb eines Notebooks können Benutzer schnell Daten aus ihren geschützten Datenquellen lesen (und zurückschreiben), und zwar in einer Vielzahl von Dateiformaten.
Dieses Handbuch enthält Codebeispiele, die Ihnen bei den ersten Schritten in Ihren eigenen Notebooks helfen, um auf Daten aus Datenquellen wie SQL DB über verwaltete private Endpunkte zuzugreifen.
Voraussetzungen
Zugreifen auf die Datenquelle. Dieses Beispiel betrachtet Azure SQL Server und Azure SQL-Datenbank.
Melden Sie sich bei Microsoft Fabric und im Azure-Portal an.
Navigieren Sie im Azure-Portal zur Ressourcenseite von Azure SQL Server, und wählen Sie das Menü Eigenschaften aus. Kopieren Sie die Ressourcen-ID für den SQL Server, mit dem Sie eine Verbindung von Microsoft Fabric herstellen möchten.
Erstellen Sie mithilfe der unter Erstellen eines verwalteten privaten Endpunkts aufgeführten Schritte den verwalteten privaten Endpunkt auf der Seite „Fabric Network-Sicherheitseinstellungen“.
Nachdem der Datenquellenadministrator des SQL-Servers die neue Anforderung für private Endpunktverbindung genehmigt hat, sollten Sie in der Lage sein, den neu erstellten verwalteten privaten Endpunkt zu verwenden.
Mit der Datenquelle von Notebooks eine Verbindung herstellen
Wechseln Sie zur Synapse-Data Engineering-Benutzeroberfläche, indem Sie im Microsoft Fabric-Arbeitsbereich den Umschalter für die Benutzeroberfläche auf der linken Seite Ihrer Homepage verwenden.
Wählen Sie Erstellen aus und erstellen Sie ein Notebook.
Nachdem Sie nun im Notebook den Namen der SQL-Datenbank und seiner Verbindungseigenschaften angegeben haben, können Sie eine Verbindung über die verwaltete private Endpunktverbindung herstellen, die eingerichtet wurde, um die Tabellen in der Datenbank zu lesen und in Ihr Lakehouse in Microsoft Fabric zu schreiben.
Der folgende PySpark-Code veranschaulicht das Verbinden mit einer SQL-Datenbank.
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")
Nachdem die Verbindung hergestellt wurde, besteht der nächste Schritt darin, einen Datenrahmen zu erstellen, um die Tabelle in der SQL-Datenbank zu lesen.
Unterstützte Datenquellen
Microsoft Fabric unterstützt mehr als 26 Datenquellen, um eine Verbindung mit verwalteten privaten Endpunkten herzustellen. Benutzer müssen den Ressourcenbezeichner angeben, der auf der Seite Eigenschaften-Einstellungen ihrer Datenquelle im Azure-Portal zu finden ist. Stellen Sie sicher, dass das Format der Ressourcen-ID wie in der folgenden Tabelle angegeben eingehalten wird.
Dienst | Format der Ressourcen-ID |
---|---|
Cognitive Services | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.CognitiveServices/Konten/{resource-name} |
Azure Databricks | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Databricks/Arbeitsbereiche/{workspace-name} |
Azure Database for MariaDB | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.DBforMariaDB/servers/{server-name} |
Azure Database for MySQL | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.DBforMySQL/servers/{server-name} |
Azure Database for PostgreSQL | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.DBforPostgreSQL/servers/{server-name} |
Azure Cosmos DB for MongoDB | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Azure Cosmos DB for NoSQL | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.DocumentDB/databaseAccounts/{account-name} |
Azure Monitor-Private Link-Bereiche | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Insights/privateLinkScopes/{scope-name} |
Azure Key Vault | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.KeyVault/vaults/{vault-name} |
Azure Data Explorer (Kusto) | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Kusto/clusters/{cluster-name} |
Azure Machine Learning | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.MachineLearningServices/workspaces/{workspace-name} |
Private Link-Dienst | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Network/privateLinkServices/{service-name} |
Microsoft Purview | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Purview/accounts/{account-name} |
Azure Search | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Search/searchServices/{service-name} |
Azure SQL-Datenbank | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Sql/servers/{server-name} |
Azure SQL Database (Azure SQL Managed Instance) | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Sql/managedInstances/{instance-name} |
Azure Blob Storage | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Data Lake Storage Gen2 | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure File Storage | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Queue Storage | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Table Storage | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Synapse Analytics | /Abonnements/{subscriptionId}/resourceGroups/{resourceGroupName}/Anbieter/Microsoft.OperationalInsights/workspaces/{Workspace name} |
Azure Synapse Analytics (Artefakte) | /Abonnements/{subscriptionId}/resourceGroups/{resourceGroupName}/Anbieter/Microsoft.OperationalInsights/workspaces/{Workspace name} |
Azure-Funktionen | /Abonnements/{subscription-id}/resourceGroups/{resource-group-name}/Anbieter/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} |