传统的数据向云端迁移通常采用“举升并转移”的方法,这种方法需要大量的技术专长。虽然领域专家对数据的商业价值有深入的理解,但他们往往面临获取必要的工具或技术专长的挑战,这些工具和技术专长是用于迁移特定数据集以生成洞察所必需的。
本项目提出了一种模式,通过利用模型上下文协议(MCP)服务器和Microsoft Fabric,使领域专家能够通过对话接口进行选择性数据迁移。这种方法将数据迁移从一个技术障碍转变为一个直观、面向业务用户的流程,同时保持数据治理并加速洞察时间。
系统架构展示了数据迁移和对话交互的端到端流程:

设置源数据库:可以使用像Oracle或PostgreSQL这样的JDBC兼容数据库作为源。在scripts/create_employee_table.sql中提供了一个用于在Oracle数据库中创建表并添加一些示例数据的脚本。
设置Quarkus MCP服务器用于JDBC:按照Quarkus MCP JDBC服务器中的设置说明配置JDBC MCP服务器以实现数据库连接。如果你使用的是VS Code与GitHub Copilot作为MCP客户端,请在VS Code中设置配置。
下载并配置OneLake文件浏览器:从Microsoft下载中心下载OneLake文件浏览器,并将其配置为连接到你的Microsoft Fabric工作区。这将使本地环境与Microsoft Fabric Lakehouse之间的数据移动变得无缝。
数据发现:使用你的MCP客户端(例如VS Code与GitHub Copilot或Claude Desktop)通过对话查询来探索数据源。开始时可以询问诸如“数据库中有哪些表?”的问题。如果你使用提供的脚本创建了员工表,其表结构如下所示:

提取数据:注意员工表包含一个salary列,出于隐私或合规性的原因,我们将在迁移过程中排除该列。使用prompts/extract_data.txt中提供的提示来提取所有员工信息,同时排除工资详情。请注意,数据可以被提取为一个文件,放置在Fabric Lakehouse的Files文件夹中,这将自动同步到Microsoft Fabric。包含此数据的样本CSV文件可以在files/empdata.csv中找到。下面是一个使用VS Code与GitHub Copilot(Claude Sonnet 4)进行此过程的例子:

合并数据集:一旦信息可用在Fabric Lakehouse中,可以将其与其他数据实体结合以生成更深层次的洞察。如果你使用的是员工数据集,可以在files/deptloc.csv中找到包含部门位置的文件,可用于将员工链接到位置。在Fabric Lakehouse中,表格看起来如下:

构建对话接口:为了将整合的数据集暴露为对话接口,以便领域专家可以用自然语言进行查询,可以在Microsoft Fabric中使用创建Fabric数据代理中的说明创建数据代理。如果你使用上述数据集,可以使用prompts/data_agent.txt中提到的样本说明。这里显示了一个截图:

用自然语言查询:领域专家现在可以使用自然语言查询整合的数据集。在下面的例子中,代理被问了一个需要从两个表中组合信息的问题。图像包含了代理的输出以及它在后台生成的SQL查询,该查询将表连接在一起。

这种模式展示了如何通过对话接口改变传统的数据迁移过程,使其对领域专家来说无需深厚的技术专长即可访问。通过结合MCP服务器的力量与Microsoft Fabric的云原生数据平台,组织可以: