具有Microsoft Fabric 工作區系統管理員許可權的使用者,可以透過工作區設定,從 Fabric 入口網站建立、檢視及刪除受控私人端點。
使用者也可以從工作區設定的 [網路安全性 ] 區段監視受控私人端點的狀態和核准程式。
用戶可以從 Fabric Spark 工作負載使用私人端點名稱來存取數據源。
先決條件
Microsoft.Network 資源提供者必須在 Azure 訂用帳戶中註冊
建立受控私人端點
在 [網狀架構] 工作區中,流覽至工作區設定,選取 [ 網络安全性] 索引卷標,然後選取 [受控私人端點] 區段中的 [ 建立 ] 選項。
[ 建立受控私人端點] 對話框隨即開啟。
指定私人端點的名稱,並在 Azure 資源的資源識別碼中複製。 您可以在 Azure 入口網站頁面的 [屬性] 索引標籤中找到資源識別碼。 如需詳細資訊,請參閱: 如何取得您的 Azure 資源識別碼
備註
不支援建立具有完整網域名稱(FQDN)的受控私人端點。
完成後,選擇建立。
布建受控私人端點時,[啟用狀態] 會變更為 [成功]。
此外,私人端點存取的要求也會傳送至數據源。 數據源管理員會在 Azure 入口網站資源頁面上收到其數據源的通知。 在那裡,他們會看到待處理的存取要求以及附加的要求訊息。
以 SQL Server 為例,使用者可以流覽至 Azure 入口網站,並搜尋 “SQL Server” 資源。
在 [資源] 頁面上,從導覽功能表中選取 [ 網络] ,然後選取 [ 私人存取 ] 索引標籤。
數據源管理員應該能夠檢視作用中的私人端點連線和新的連線要求。
系統管理員可以提供商務理由來 核准 或 拒絕 。
當資料來源管理員核准或拒絕要求時,重新整理後,Fabric 工作區設定頁面中的狀態會更新。
當狀態變更為 已核准時,端點可以在筆記本或 Spark 作業定義中使用,以從 Fabric 工作區存取儲存在數據源中的數據。
在 Fabric 中使用受控私人端點
Microsoft Fabric 筆記本支援使用受控私人端點,實現與安全網路後方數據源的順暢互動,以便於數據探索和處理。 在筆記本中,使用者可以以各種檔格式快速地從其受保護的數據源讀取數據(並將數據寫回至)其 Lakehouse。
本指南提供程式碼範例,協助您開始使用自己的筆記本,以透過受控私人端點存取數據源的數據,例如 SQL DB。
先決條件
數據源的存取權。 此範例會查看 Azure SQL Server 和 Azure SQL Database。
登入 Microsoft Fabric 和 Azure 入口網站。
流覽至 Azure 入口網站中的 Azure SQL Server 資源頁面,然後選取 [ 屬性] 功能表。 複製您想要從 Microsoft Fabric 連線之 SQL Server 的資源識別碼。
使用 建立受控私人端點中列出的步驟,從 [網狀架構網路安全性設定] 頁面建立受控私人端點。
一旦 SQL Server 的數據源管理員核准新的私人端點連線要求,您應該能夠使用新建立的受控私人端點。
從筆記本連線到數據源
使用首頁左側的體驗切換器來切換 開發 體驗。
流覽至您想要的工作區,或視需要建立新的工作區。
若要建立筆記本,請從工作區選取 [ 新增專案 ],然後選擇 [筆記本]。
現在,在筆記本中,藉由指定 SQL 資料庫的名稱及其連接屬性,您可以透過管理的私人端點連線,讀取資料庫中的數據表,並將它們存入您在 Microsoft Fabric 中的 lakehouse。
下列 PySpark 程式代碼示範如何連線到 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")
現在已建立連線,下一個步驟是建立數據框架,以讀取 SQL Database 中的數據表。
支持的數據源
Microsoft Fabric 支援超過 26 個資料來源,使用受控私人端點進行連線。 使用者必須指定資源識別碼,您可以在 Azure 入口網站中其資料來源的 [屬性設定] 頁面中找到。 請確定已遵循資源標識符格式,如下表所示。
| 服務 | 資源 ID 格式 |
|---|---|
| 認知服務 | /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} |
| 適用於 MySQL 的 Azure 資料庫 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/flexibleServers/{server-name} |
| 適用於 PostgreSQL 的 Azure 資料庫 | /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 監視器專用連結範圍 | /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 資料總管 (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 搜尋 | /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 資料庫 (Azure SQL 受控執行個體) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name} |
| Azure Blob 儲存體 | /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 檔案儲存體 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
| Azure 佇列儲存體 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
| Azure Table Storage (Azure 表格儲存) | /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 (成品) | /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 事件中樞 | /subscriptions/{subscription-id}/resourcegroups/{resource-group-name}/providers/Microsoft.EventHub/namespaces/{namespace-name} |
| Azure IoT 中樞 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name} |
| Azure 資料管理器(ADME)適用於能源 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.OpenEnergyPlatform/energyServices/{service-name} |
請注意,不支援為 Fabric 租用戶建立私人連結服務的受控私人端點。