Microsoft Fabric - 简单尝试一下Microsoft Fabric .NET SDK

1. 简单介绍

Microsoft Fabric 是微软提供的一个基于Saas的数据平台。当前全球已经70%的财富500强在使用Microsoft Fabric。

同时Microsoft Fabric也提供了Rest API,这样开发的应用程序就可以对这些API进行调用了。2025年5月Microsoft Fabric command-line interface也已经general available了,command-line interface也是基于Rest API的。微软在2024年也发布了Microsoft Fabric .NET SDK,nuget package 名称是Microsoft.Fabric.Api,查看了一下,目前的版本已经是2.18.0了。

这边将简单尝试一下使用Microsoft.Fabric.Api SDK获取特定workspace的lakehouse信息。

2. 使用Fabric SDK

这边要制作的是基于.NET 10的Console应用程序,同时采用的OAuth中的Auth code方式(授权码)来获取access token。

2.1 注册应用程序

要使用Microsoft Fabric .NET SDK,需要在Microsoft Extra ID中创建注册应用程序,同时记录一下Application ID和Directory ID,

  1. 在Microsoft Extra ID的App Registrations中创建一个注册应用程序,
  1. 添加一个Redirect URL,这边添加的是http://localhost

2.2 获取access token

获取access token的代码如下,

复制代码
string Authority = "https://login.microsoftonline.com/organizations";
string RedirectURI = "http://localhost";
string[] scopes = new string[] { "https://api.fabric.microsoft.com/Workspace.ReadWrite.All https://api.fabric.microsoft.com/Item.ReadWrite.All https://api.fabric.microsoft.com/Lakehouse.Read.All https://api.fabric.microsoft.com/Lakehouse.ReadWrite.All" };

PublicClientApplicationBuilder PublicClientAppBuilder =
		PublicClientApplicationBuilder.Create(clientId)
		.WithAuthority(Authority)
		.WithRedirectUri(RedirectURI);

IPublicClientApplication PublicClientApplication = PublicClientAppBuilder.Build();
AuthenticationResult result = await PublicClientApplication.AcquireTokenInteractive(scopes)
		.ExecuteAsync()
		.ConfigureAwait(false);
access_token = result.AccessToken;

2.3 获取workspace

由于没有找到基于workspace name获取workspace的方法,这边采用过滤的方式来进行的,

复制代码
fabric_Client = new FabricClient(access_token, new Uri("https://api.fabric.microsoft.com/v1/"));
var workspaces = await fabric_Client.Core.Workspaces.ListWorkspacesAsync().ToListAsync();
var fabricPracticeWorkspace = workspaces.Where(ws => ws.DisplayName == workspace).FirstOrDefault();

2.4 获取Lakehouse信息

首先实例化一个FabricLakehouseClient,然后使用FabricLakehouseClient去进行Lakehouses的查询操作,最后打印出Lakehouse的名字,

复制代码
FabricLakehouseClient lakehouseClient = new FabricLakehouseClient(tokenCredential, new Uri("https://api.fabric.microsoft.com/v1/"));
var lakehouses = await lakehouseClient.Items.ListLakehousesAsync(fabricPracticeWorkspace!.Id).ToListAsync();
foreach (var lakehouse in lakehouses)
{
	Console.WriteLine($"Workspace: {fabricPracticeWorkspace.DisplayName} | Lakehouse: {lakehouse.DisplayName}");
}

3. 运行程序

  1. 在Visual Studio启动应用程序,应用程序会自动在浏览器中打开如下网页,选择特定的用于授权的帐号,
  1. 最后网页显示Authenticion complete信息,
  1. 打开控制台窗口,可以看出Lakehouse信息已经提取出来了,

4. 总结

本文简单记录了一下使用Microsoft.Fabric.Api SDK获取特定workspace中lakehouse信息的过程,关于Microsoft Fabric .NET SDK的内容很多,后续还需要进一步跟着微软老师学习一下。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

相关推荐
玩泥巴的12 小时前
一份声明,多份产物:飞书 SDK 的 AI 工具面是怎么生成的
ai·.net·飞书·agent
贾伟康12 小时前
【共创稿事节】第一张服务卡片:2×2 今日菜谱的克制设计
microsoft·harmonyos·arkts·鸿蒙
Shell运维手记12 小时前
Shell 结构化命令知识点总结(case、for、while)
运维·microsoft·shell·脚本
2501_9445257612 小时前
开源鸿蒙平台 KMP_CMP 三方库「Atrium」适配全流程
microsoft·开源·harmonyos
淡海水17 小时前
07-06-源码-.NET Core GC的极致优化技术
unity·架构·c#·.netcore·gc·1024程序员节
平头哥技术团队17 小时前
把端到端延迟当成走时误差:高端腕表主题里的“AI 端渲“
人工智能·microsoft
IT规划师19 小时前
MQTT实战 - .NET + MQTT生产级架构:从500个设备到50,000个设备(九)
物联网·.net
程序猿追19 小时前
连续触摸时,启元 T1 应该怎么回应?一个完整的 ROS 2 交互程序
microsoft·交互
淡海水1 天前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节