Создание и использование управляемых частных конечных точек
Пользователи с разрешениями администратора для рабочей области Microsoft Fabric могут создавать, просматривать и удалять управляемые частные конечные точки на портале Fabric с помощью параметров рабочей области.
Пользователь также может отслеживать состояние и процесс утверждения управляемых частных конечных точек из раздела "Безопасность сети" параметров рабочей области.
Пользователь может получить доступ к источникам данных с помощью имени частной конечной точки из рабочих нагрузок Spark Fabric.
Необходимые компоненты
Поставщик ресурсов Microsoft.Network должен быть зарегистрирован в подписке Azure.
Создание управляемой частной конечной точки
В рабочей области Fabric перейдите к параметрам рабочей области, перейдите на вкладку "Безопасность сети", а затем выберите пункт "Создать " в разделе "Управляемая частная конечная точка".
Откроется диалоговое окно "Создание управляемой частной конечной точки ".
Укажите имя частной конечной точки и скопируйте идентификатор ресурса для ресурса Azure. Идентификатор ресурса можно найти на вкладке свойств на странице портал Azure.
Примечание.
Создание управляемой частной конечной точки с полным доменным именем (FQDN) не поддерживается.
Затем выберите Создать.
После подготовки управляемой частной конечной точки состояние активации изменится на "Успешно".
Кроме того, запрос на доступ к частной конечной точке отправляется в источник данных. Администраторы источников данных уведомляются на страницах ресурсов портал Azure для их источников данных. Там они увидят ожидающий запрос доступа с сообщением запроса.
Принимая SQL Server в качестве примера, пользователи могут перейти к портал Azure и найти ресурс SQL Server.
На странице "Ресурс" выберите "Сеть" в меню навигации и перейдите на вкладку "Частный доступ ".
Администраторы источников данных должны иметь возможность просматривать активные подключения к частной конечной точке и новые запросы на подключение.
Администраторы могут утвердить или отклонить, предоставив бизнес-обоснование.
После утверждения или отклонения запроса администратором источника данных состояние обновляется на странице параметров рабочей области Fabric после обновления.
Когда состояние изменилось на утверждение, конечная точка может использоваться в записных книжках или определениях заданий Spark для доступа к данным, хранящимся в источнике данных из рабочей области Fabric.
Использование управляемых частных конечных точек в Fabric
Записные книжки Microsoft Fabric поддерживают простое взаимодействие с источниками данных за защищенными сетями с помощью управляемых частных конечных точек для изучения и обработки данных. В записной книжке пользователи могут быстро считывать данные из защищенных источников данных (и записывать данные обратно в) в различных форматах файлов.
В этом руководстве приведены примеры кода, которые помогут вам приступить к работе с собственными записными книжками для доступа к данным из источников данных, таких как база данных SQL с помощью управляемых частных конечных точек.
Необходимые компоненты
Доступ к источнику данных. В этом примере рассматривается Sql Server Azure и База данных SQL Azure.
Войдите в Microsoft Fabric и портал Azure.
Перейдите на страницу ресурсов SQL Server Azure в портал Azure и выберите меню "Свойства". Скопируйте идентификатор ресурса для SQL Server, к которому вы хотите подключиться из Microsoft Fabric.
Выполнив действия, описанные в статье "Создание управляемой частной конечной точки", создайте управляемую частную конечную точку на странице параметров безопасности сети Fabric.
После утверждения нового запроса подключения к частной конечной точке администратор источника данных сервера SQL Server сможет использовать только что созданную управляемую частную конечную точку.
Подключение к источнику данных из записных книжек
Войдите на портал Microsoft Fabric.
Используйте переключатель взаимодействия в левой части домашней страницы, чтобы переключить интерфейс разработки.
При необходимости перейдите в нужную рабочую область или создайте новую.
Чтобы создать записную книжку, выберите новый элемент из рабочей области и выберите "Записная книжка".
Теперь в записной книжке, указав имя базы данных SQL и его свойства подключения, можно подключиться через подключение к управляемой частной конечной точке, настроенное для чтения таблиц в базе данных и записи их в lakehouse в Microsoft Fabric.
В следующем коде 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.
Поддерживаемые источники данных
Microsoft Fabric поддерживает более 26 источников данных для подключения к управляемым частным конечным точкам. Пользователям необходимо указать идентификатор ресурса, который можно найти на странице параметров свойства источника данных в портал Azure. Убедитесь, что формат идентификатора ресурса следует, как показано в следующей таблице.
Service | Формат идентификатора ресурса |
---|---|
Службы 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 для MariaDB | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMariaDB/servers/{server-name} |
База данных Azure для MySQL | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/servers/{server-name} |
База данных Azure для 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 | /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 | /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} |
База данных SQL Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name} |
База данных SQL Azure (Управляемый экземпляр SQL Azure) | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{имя_экземпляра} |
Хранилище BLOB-объектов Azure | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name} |
Azure Data Lake Storage 2-го поколения | /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 | /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 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 | /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 | /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name} |