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的内容很多,后续还需要进一步跟着微软老师学习一下。

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

相关推荐
hqyjzsb2 小时前
规划工商管理大学成长:搭建四层能力体系,重视高阶的 AI 能力建设
开发语言·人工智能·python·microsoft·职场和发展·数据挖掘·业界资讯
Lost of 程序猿6 小时前
.NET 10 船端单机部署与离线升级实战:从闪退事故到无感回滚
c#·asp.net·.net
慧都小妮子7 小时前
Word/Excel/PPT 如何稳定导出 Markdown?文档 SDK 三线能力拆解
.net·markdown·知识库·aspose·rag·文档转换·文档互操作
唐青枫20 小时前
对象到底住在哪里?C#.NET 托管堆从分配、GC 到内存排查
c#·.net
ai_finder1 天前
买卖点预警系统是怎么工作的?从自然语言到盯盘任务的一次工程拆解
人工智能·科技·microsoft·金融
geovindu1 天前
CSharp:Condition Variable Pattern
后端·设计模式·c#·.net·.netcore·条件变量模式·同步型模式
de之梦-御风1 天前
【未来】.NET 开发在「劳动价值重估」下的定位与走向
职场和发展·.net
fogota1 天前
C# 如何调用系统图标
c#·.net
△曉風殘月〆1 天前
.NET是什么?为什么要选择.NET?
c#·.net·.net core·clr