Microsoft Fabric - 试一下在Blazor应用中使用 GraphQL API去连接Lakehouse

1.简单介绍

Microsoft Fabric是微软数据处理的一个统一的大平台,Data Engineer, Data Sciencist, Business Analysis人员都可以在这个平台上面工作。统一的大平台也为AI的变革提供了数据基础。Microsoft Ignite中,Microsoft Fabric也是比较重要的一个topic,其中展示出来的关于Microsoft Fabric的架构图也发生了一些变化

下面是经常看到的Microsoft Fabric图片

以下是一次Ignite 大会中老师演示出来的,

note, Data Engineering,Data Science, Data Warehouse被归类到了Analytics中,同时加上了Databases, Industry Solutions和Partner Workloads

这次主要尝试一下Microsoft Fabric中GraphQL API这个特性,试验一下使用GraphQL API去获取Lakehouse的数据并展示在web应用程序中

2.具体说明

假定当前Microsoft Fabric中已经有一个LakeHouse table如下图

2.1 创建GraphQL API

  1. 在Microsoft Fabric的Workspace中,点击New item按钮
  1. 选择 API for GraphQL 选项进行GraphQL API的创建,如下图
  1. 在弹出的窗口中,输入API for GraphQL的名字,然后点击Create按钮,
  1. 在API for GraphQL界面中,点击 Select data source 方框,
  1. 弹出的 connectivity option选择 SSO相关的选项,点击OK
  1. 选择要连接的Lakehouse
  1. 选择要连接的table
  1. 在出来的界面中,点击Copy endpoint
  1. 点击Copy按钮即可复制GraphQL API 的链接了

2.2 注册应用程序

在Microsoft Extra ID中创建一下应用程序

note, 记录一下Application ID, Tenant ID和Secret Value

同时给注册应用程序分配一下权限如下图

2.3 分配权限给Service Principal

这边是在试验的环境中,直接在Workspace中进行权限的分配了,如果是正式的业务系统,则建议只在对应的LakeHouse和GraphQL API中进行权限的分配

2.4 制作Blazor应用程序

这边把应用分成了Web API和Blazor两个部分

2.4.1 Web API

在Web API项目中连接Microsoft Fabric并获取Lakehouse中的数据(使用GraphQL API)

Web API项目要使用Microsoft.Identity.Client进行身份的认证,以下是进行Microsoft Extra ID身份认证和使用GraphQL API获取数据的代码

2.4.2 Web应用

这边使用的是Blazor应用,采用Blazor Server渲染模式,从Web API项目中获取数据并展示在Blazor界面中。其中Blazor界面使用到了开源社区的Ant Design Blazor框架

2.5 运行一下

启动项目,应用从Lakehouse中获取数据之前,会使用到Microsoft Extra ID进行身份的认证,会弹出如下的身份确认窗口,选择自己的帐户

登录成功后,会显示如下的提示在页面中

最后在Blazor的页面上会有Lakehouse的数据展示出来

3.总结

以上简单记录了一下使用Microsoft Fabric的GraphQL API的过程,感觉其中细节很多。连接Fabric GraphQL API可以使用后端的Web应用程序或者控制台程序,也可以在前端应用中使用,比如React程序。

Microsoft Fabric的体量非常庞大,同时新的功能也发布得很快。还需要跟着Microsoft Fabric的老师们学习一下。

本文如果哪里有错误的地方,麻烦告之,谢谢谢谢

相关推荐
曹牧3 小时前
C# WinForms应用程序中展示JSON内容
c#
真鬼1235 小时前
.Net 6.0快速下载
c#
雪豹阿伟6 小时前
6.C# —— 类与对象、数据类型、方法详解
c#·上位机
伽蓝_游戏9 小时前
第二章:深入 Unity 资源导入管线 (Asset Import Pipeline)
游戏·unity·c#·游戏引擎·游戏程序
爱炸薯条的小朋友10 小时前
全局锁的性能优势,以及链路优化为何常常低于预期——基于 `MatPoolsTest` 中小图池与大图池的实战复盘
opencv·算法·c#
心蓝无敌11 小时前
攻克Avalonia Dock布局中WebView等原生控件无法停靠的难题
c#·visual studio·avalonia·avalonia dock
guygg8813 小时前
C# 监听数据库数据变化(SqlDependency 实现)
数据库·oracle·c#
步步为营DotNet13 小时前
洞悉.NET 11:Blazor 与 Microsoft.Extensions.AI 的融合创新实践
人工智能·microsoft·.net
爱炸薯条的小朋友16 小时前
C#由窗体原子表溢出造成的软件闪退,根本原因补充
开发语言·c#·wpf
GEO从入门到精通16 小时前
GEO学习与传统SEO学习有什么区别?
人工智能·学习·microsoft