打开网易新闻 查看精彩图片

你的Snowflake账单又炸了,但你不知道谁干的。不是比喻——字面意义上的"谁"。ACCOUNT_USAGE里躺着过去三年的登录记录、仓库消耗、用户行为,但你需要先找到正确的表,再拼对七层JOIN,最后祈祷自己没把GB和TB搞混。

现在有人把这套流程压缩成了一句话。

「上个月哪个仓库烧掉最多积分?」

GitHub Copilot Chat里敲完这句,15秒后弹出名字和数字。不需要打开Snowflake界面,不需要写SQL,甚至不需要知道ACCOUNT_USAGE长什么样。

把数据仓库变成聊天对象

把数据仓库变成聊天对象

这套方案的核心是个叫Cortex Agent的东西,Snowflake去年推出的AI层。但单独用它还不够聪明——它需要你告诉它"查哪张表、怎么查"。

开发者Lalith Aswaroopk的解法是给Agent配了个翻译官:MCP服务器(Model Context Protocol,模型上下文协议)。Copilot Chat说的自然语言,先过MCP转成结构化请求,再丢给Cortex Agent。Agent自己看语义注释挑视图,最后才碰ACCOUNT_USAGE。

打开网易新闻 查看精彩图片

整个链路像什么呢?像酒店前台。你问"附近有好吃的吗",前台不用自己跑遍全城,他翻的是背后的分类手册——这个对应日料,那个对应夜宵,然后精准拨号。

这里的手册是7张语义视图(Semantic Views),每张都裹着自然语言注释。比如WAREHOUSE_USAGE_VIEW的注释写的是:"回答关于仓库积分消耗、执行时间和资源效率的问题"。Cortex Agent读到这句话,就知道"烧积分"这类词该往这儿送。

关键设计:注释即接口。 不用调Prompt,不用训练模型,改注释就能让Agent理解新业务。

部署比想象中轻

部署比想象中轻

代码开源在GitHub,5个SQL脚本按顺序跑完就行。01建基础视图,02包语义层,03挂Cortex Agent,04设预算告警(可选),05给权限。本地Python环境装个依赖,配好.env文件,完事。

环境变量里有个细节:SNOWFLAKE_AUTHENTICATOR=externalbrowser。这意味着不用硬编码密码,浏览器弹窗点一下就能认证——对怕泄露密钥的团队友好。

MCP服务器本身是个轻量HTTP服务,只暴露一个工具:ask_admin。Copilot Chat侧看起来就像调用了一个普通函数,但背后已经走完"理解问题→选视图→生成SQL→执行→格式化"全套。

打开网易新闻 查看精彩图片

目前覆盖的场景很实在:仓库消耗排名、Top 5花钱大户、登录失败模式、查询性能瓶颈。全是BI团队每周被问烂的问题,现在业务部门自己打字就能拿答案。

但有个隐形成本

但有个隐形成本

语义视图不是万能的。如果你的问题跨多张表——比如"哪个部门的人在上个月用了最贵的仓库"——得确保JOIN关系提前写在视图定义里。Cortex Agent不会自己发明关联逻辑,它只会挑现成的工具。

另一个坑是ACCOUNT_USAGE的延迟。Snowflake官方文档说数据可能有45分钟到3小时的滞后,实时告警别指望这套。

Lalith在README里埋了个TODO:支持ORGANIZATION_USAGE(组织级用量视图),方便管多个账户的企业。还没做,但架构上预留了口子——加视图、写注释、重启Agent就行。

这套方案最狠的地方不是技术深度,是把"数据民主化"从PPT落到了VS Code侧边栏。以前需要SQL技能+Snowflake权限+业务理解三角兼备的事,现在会打字就行。

当然,SQL不会死。复杂建模、性能调优、数据治理还得人上。但"帮我看看上周谁花了最多钱"这种需求,确实可以交给Agent了。

开源仓库地址:https://github.com/LALITHASWAROOPK/agent_snowflake_admin_assistant

如果你已经用Copilot写代码,多装一个MCP服务器的功夫,相当于给Snowflake配了个24小时在线的初级DBA。这个ROI,你觉得算得过账吗?