Creare e usare endpoint privati gestiti
Gli utenti con autorizzazioni di amministratore per un'area di lavoro di Microsoft Fabric possono creare, visualizzare ed eliminare endpoint privati gestiti dal portale di Fabric tramite le impostazioni dell'area di lavoro.
L'utente può anche monitorare lo stato e il processo di approvazione degli endpoint privati gestiti dalla sezione Sicurezza di rete delle impostazioni dell'area di lavoro.
L'utente può accedere alle origini dati usando il nome dell'endpoint privato dai carichi di lavoro di Fabric Spark.
Creare un endpoint privato gestito
In un'area di lavoro Fabric, passare alle impostazioni dell'area di lavoro, selezionare la scheda Sicurezza di rete e quindi selezionare l'opzione Crea nella sezione endpoint privato gestito.
Si aprirà la finestra di dialogo Crea endpoint privato gestito.
Specificare un nome per l'endpoint privato e copiare l'identificatore di risorsa per la risorsa di Azure. L'identificatore della risorsa è disponibile nella scheda proprietà della pagina portale di Azure.
Nota
La creazione di un endpoint privato gestito con un nome di dominio completo (FQDN) non è supportata.
Al termine, scegliere Crea.
Quando è stato effettuato il provisioning dell'endpoint privato gestito, lo stato dell'attivazione cambia in Operazione completata.
Inoltre, la richiesta per l'accesso all'endpoint privato viene inviata all'origine dati. Gli amministratori dell'origine dati ricevono una notifica sulle pagine delle risorse portale di Azure per le origini dati. Verrà visualizzata una richiesta di accesso in sospeso con il messaggio di richiesta.
Prendendo come esempio SQL Server, gli utenti possono passare al portale di Azure e cercare la risorsa "SQL Server".
Nella pagina Risorsa selezionare Networking dal menu di spostamento e quindi selezionare la scheda Accesso privato.
Gli amministratori origine dati devono essere in grado di visualizzare le connessioni degli endpoint privati attivi e le nuove richieste di connessione.
Gli amministratori possono approvare o rifiutare fornendo una motivazione aziendale.
Dopo che la richiesta è stata approvata o rifiutata dall'amministratore origine dati, lo stato viene aggiornato nella pagina delle impostazioni dell'area di lavoro Fabric al momento dell'aggiornamento.
Quando lo stato è stato modificato in approvato, l'endpoint può essere usato nei notebook o nelle definizioni dei processi Spark per accedere ai dati archiviati nell'origine dati dall'area di lavoro Fabric.
Usare endpoint privati gestiti in Fabric
I notebook di Microsoft Fabric supportano l'interazione senza interruzioni con le origini dati dietro reti protette usando endpoint privati gestiti per l'esplorazione e l'elaborazione dei dati. All'interno di un notebook, gli utenti possono leggere rapidamente i dati dalle origini dati protette (e riscriverli) nei loro lakehouse in un'ampia gamma di formati di file.
Questa guida fornisce esempi di codice che consentono di iniziare a usare notebook personalizzati per accedere ai dati da origini dati, ad esempio il database SQL tramite endpoint privati gestiti.
Prerequisiti
Accedere all'origine dati. Questo esempio prende in esame Azure SQL Server e Azure SQL Database.
Accedere al portale di Microsoft Fabric e Azure.
Passare alla pagina delle risorse di Azure SQL Server nel portale di Azure e selezionare il menu Proprietà. Copiare l'ID risorsa per SQL Server a cui connettersi da Microsoft Fabric.
Usando i passaggi elencati in Creare un endpoint privato gestito, creare l'endpoint privato gestito dalla pagina Impostazioni di sicurezza di rete di Fabric.
Dopo che l'amministratore origine dati di SQL Server ha approvato la nuova richiesta di connessione dell'endpoint privato, sarà possibile usare l'endpoint privato gestito appena creato.
Connettersi all'origine dati dai notebook
Nell'area di lavoro di Microsoft Fabric usare il commutatore esperienza sul lato sinistro della home page per passare all'esperienza di Synapse Data Engineering.
Selezionare Crea e creare un nuovo notebook.
A questo punto, nel notebook, specificando il nome del database SQL e le relative proprietà di connessione, è possibile connettersi tramite la connessione dell'endpoint privato gestito configurata per leggere le tabelle nel database e scriverle nel lakehouse in Microsoft Fabric.
Il codice seguente PySpark illustra come connettersi a un database SQL.
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")
Ora che la connessione è stata stabilita, il passaggio successivo consiste nel creare un frame di dati per leggere la tabella nel database SQL.
Origini dati supportate
Microsoft Fabric supporta più di 26 origini dati per connettersi all'uso di endpoint privati gestiti. Gli utenti devono specificare l'identificatore della risorsa, disponibile nella pagina delle impostazioni Proprietà dell'origine dati nel portale di Azure. Verificare che il formato ID risorsa sia seguito come illustrato nella tabella seguente.
Service | Formato ID della risorsa |
---|---|
Servizi cognitivi | /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} |
Database di Azure per MariaDB | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMariaDB/servers/{server-name} |
Database di Azure per MySQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/servers/{server-name} |
Database di Azure per 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} |
Ambiti collegamento privato di Monitoraggio di Azure | /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} |
Esplora dati di Azure (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} |
Ricerca di Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Search/searchServices/{service-name} |
Database SQL di Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name} |
Database SQL di Azure (stanza gestita di SQL di Azure) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name} |
Archiviazione BLOB di Azure | /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} |
Archiviazione file di Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Archiviazione code di Azure | /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 (Artifacts) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name} |
Funzioni di Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{function-app-name} |
Hub eventi di Azure | /subscriptions/{subscription-id}/resourcegroups/{resource-group-name}/providers/Microsoft.EventHub/namespaces/{namespace-name} |
Hub IoT di Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name} |