AI Gateway 实战:用 SQL 调用大模型

在 SQL 查询中直接调用大语言模型(LLM),是数据分析从"查数据"到"理解数据"的关键跃迁。云器 Lakehouse 通过 AI Gateway + AI_COMPLETE 函数,让你在标准 SQL 中完成文本分析、情感判断、内容生成、智能分类等任务——所有处理在同一个查询引擎内完成,无需将数据导出到 Python 环境。

本文以 Kimi K2.6(Moonshot AI)模型为例,结合 NHL 冰球数据,演示 SQL + AI 的实用模式。


核心能力

能力传统方式SQL + AI 方式
文本情感分析Python + Transformers
SELECT AI_COMPLETE(model, prompt)
SELECT AI_COMPLETE(model, prompt)
内容分类导出 CSV → Python 脚本SQL 内置函数,批量处理
智能报告生成BI 工具外挂脚本SQL 查询直接输出分析文本
多语言翻译API 调用 + ETL 回写
AI_COMPLETE
AI_COMPLETE
联表翻译
数据增强人工标注LLM 自动标注、评价、补充

架构原理

Lakehouse SQL ────→ AI Gateway ────→ LLM Model AI_COMPLETE() auth · rate limit Kimi / GPT / ... ←── response ←── response

SQL 引擎将

AI_COMPLETE()
AI_COMPLETE()
调用转发给 AI Gateway,Gateway 负责认证、限流、配额管理,再将请求路由到配置的 LLM 模型。整个过程对 SQL 用户透明——你只需要写 SQL,不需要管理 API Key、不需要处理限流重试。


第一步:配置 AI Gateway 连接

方式一:AI Gateway Endpoint(推荐,需 Studio UI)

在 Studio → API KEY 管理 → 新建 API KEY; 在模型广场 → 选择模型 → 查看 → 看接入点管理和模型调用示例。

-- 使用预配置的 Endpoint SELECT AI_COMPLETE('endpoint:kimi-k2.6', '你好');

方式二:API Connection(SQL 直创建)

-- 一次性创建,后续所有查询复用 CREATE API CONNECTION ai_gateway_conn TYPE ai_function PROVIDER = 'openai' -- AI Gateway 遵循 OpenAI 接口规范 BASE_URL = 'https://<region>-aimesh.api.clickzetta.com/gateway/v1' API_KEY = '<your_api_key>';

AI Gateway 的 Base URL 因地域不同而不同:

地域Base URL
阿里云上海
https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1
https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1
腾讯云上海
https://ap-shanghai-tencentcloud-aimesh.api.clickzetta.com/gateway/v1
https://ap-shanghai-tencentcloud-aimesh.api.clickzetta.com/gateway/v1
AWS 新加坡
https://ap-southeast-1-aws-aimesh.api.singdata.com/gateway/v1
https://ap-southeast-1-aws-aimesh.api.singdata.com/gateway/v1

格式说明

-- 格式:<连接名>:<模型名> 'ai_gateway_conn:moonshotai/kimi-k2.6' -- 完整调用 SELECT AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', '你的提示词');


第二步:AI_COMPLETE 基础用法

连通测试

SELECT AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', 'hello, introduce yourself in one sentence' );

返回(实测 3.1 秒):

通用 Prompt 模板

-- 摘要生成 SELECT AI_COMPLETE('conn:model', CONCAT('用一句话概括:', content) ) FROM articles; -- 情感判断 SELECT AI_COMPLETE('conn:model', CONCAT('判断情感(positive/negative/neutral),只回复一个词:', review) ) FROM reviews; -- 内容分类 SELECT AI_COMPLETE('conn:model', CONCAT('将以下文本归类为 sports/finance/tech/health:', text) ) FROM contents; -- 翻译 SELECT AI_COMPLETE('conn:model', CONCAT('将以下英文翻译为中文:', english_text) ) FROM docs;


第三步:实战 —— AI 增强 NHL 数据分析

场景 1:球员球探报告

将 Gold 层聚合数据(生涯进球、助攻、得分)输入 LLM,生成专业球探评价:

SELECT player_name, position, total_goals, total_points, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', CONCAT('用一句话中文评价这位NHL球员的职业生涯风格:', player_name, ',位置', position, ',生涯进球', CAST(total_goals AS STRING), ',总得分', CAST(total_points AS STRING)) ) AS ai_scout_report FROM gold.player_career_stats ORDER BY total_points DESC LIMIT 5;

实测结果(5 行,10.2 秒):

球员AI 球探报告
Alex Ovechkin以不讲理的重炮射门和禁区统治力重新定义左翼锋位置的得分手,用近20年的巅峰期将暴力美学与持久续航完美结合
Sidney Crosby以极致全面、坚韧拼搏和超强比赛阅读能力著称的传世中锋,用智商与勤勉重新定义了现代NHL核心球员的标杆
Joe Thornton以顶级传球视野和组织能力著称的传统中锋,生涯助攻数远超进球,体现了无私、全面的核心打法
Patrick Kane技术华丽、极具创造力的进攻核心,以鬼魅般的盘带和关键时刻的致命一击成为NHL历史上最具观赏性的边锋之一
Evgeni Malkin兼具东欧技术细腻与北美强悍球风的精英进攻型中锋,巅峰期以无解的持球突破和即兴创造力著称

场景 2:赛季球队评述

从球队战绩表生成赛季总结:

SELECT team_abbr, wins, losses, goals_for, goals_against, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', CONCAT('用一句话中文总结这支NHL球队的赛季表现:', team_abbr, ',赛季2019-20,', '胜场', CAST(wins AS STRING), ',负场', CAST(losses AS STRING), ',进球', CAST(goals_for AS STRING), ',失球', CAST(goals_against AS STRING)) ) AS season_review FROM gold.team_season_summary WHERE season = 20192020 ORDER BY wins DESC LIMIT 5;

实测结果(5 行,10.1 秒):

球队AI 赛季评述
TBL (闪电)表现极为出色,进攻火力强大,防守稳健,最终夺得斯坦利杯总冠军
VGK (金骑士)表现中规中矩,进攻略优于防守,整体胜率超过五成
COL (雪崩)进攻火力尚可但防守不稳,整体胜率接近五成

场景 3:情感分析 + 分类

对任意文本做即时分析,无需预训练模型:

SELECT AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', '判断情感(positive/negative/neutral),只回复一个词:' || 'The Lightning played an incredible game tonight!' ) AS sentiment_1, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', '判断情感(positive/negative/neutral),只回复一个词:' || 'Terrible officiating tonight.' ) AS sentiment_2, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', '将文本归类为 sports/finance/tech/health。只回复类别:' || 'NHL playoffs start next week with 16 teams.' ) AS category;

实测结果

sentiment_1sentiment_2category
positivenegativesports

第四步:批量 AI 处理模式

模式 A:逐行处理

适合小数据集(< 1000 行),直接 SELECT + AI_COMPLETE:

SELECT id, content, AI_COMPLETE('conn:model', CONCAT('总结:', content)) AS summary FROM articles WHERE created_date = CURRENT_DATE();

模式 B:Dynamic Table 自动批处理

将 AI 分析结果沉淀为 Dynamic Table,后续查询零延迟:

-- 创建 AI 增强分析表 CREATE OR REPLACE DYNAMIC TABLE gold.player_ai_scouting REFRESH INTERVAL 1 DAY vcluster DEFAULT COMMENT 'AI 球探报告——每日自动更新' AS SELECT player_id, player_name, position, total_goals, total_points, pts_per_game, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', CONCAT('用一句话中文评价这位NHL球员:', player_name, ',位置', position, ',进球', CAST(total_goals AS STRING), ',得分', CAST(total_points AS STRING), ',场均得分', CAST(pts_per_game AS STRING)) ) AS scouting_report FROM gold.player_career_stats WHERE total_points > 500; -- 只分析得分 500+ 的球员,控制成本 -- 应用层直接查询,零 AI 调用延迟 SELECT player_name, scouting_report FROM gold.player_ai_scouting WHERE player_name = 'Alex Ovechkin';

模式 C:物化 AI 结果到普通表

更精细的成本控制——只在需要时手动触发:

-- 创建结果表 CREATE TABLE gold.player_scouting_reports ( player_id BIGINT, player_name STRING, report STRING, generated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP() ); -- 一次性生成 INSERT INTO gold.player_scouting_reports (player_id, player_name, report) SELECT player_id, player_name, AI_COMPLETE('ai_gateway_conn:moonshotai/kimi-k2.6', CONCAT('评价这位NHL球员:', player_name, ',', CAST(total_points AS STRING), '分') ) FROM gold.player_career_stats WHERE total_points > 1000;


性能与成本

实测性能(Kimi K2.6,阿里云上海)

场景行数总耗时平均每行
单次调用11.9-3.1s~2.5s
球探报告(含数据拼接)510.2s2.0s
赛季评述(含数据拼接)510.1s2.0s
情感+分类(简单输出)32.4s0.8s

成本控制三原则

原则方法
减少调用次数WHERE 过滤关键行、物化结果到表、使用 DT 只分析增量
缩短输出长度Prompt 加"用一句话"、"只回复一个词"、设 max_tokens
控制刷新频率DT 从
1 HOUR
1 HOUR
降为
1 DAY
1 DAY
7 DAY
7 DAY

AI Gateway 配额管理

AI Gateway 提供租户级和 Endpoint 级配额管控:

  • 租户配额:企业月度 Token 总上限(如 500 万/月)
  • Endpoint 配额:单模型独立配额(如 Kimi 100 万/月)
  • 实际可用 = min(租户剩余, Endpoint 配额)

在 Studio → AI 模型管理 → 用量中查看实时消耗。


注意事项

注意点说明
AI_COMPLETE 不支持 OR REPLACE函数是内置的,不需要创建
AI_SUMMARIZE / AI_SENTIMENT 等专用函数即将上线当前版本仅
AI_COMPLETE
AI_COMPLETE
可用,其余函数将在下一版本开放。所有功能均可用
AI_COMPLETE
AI_COMPLETE
+ Prompt 提前实现
输出格式不稳定LLM 输出可能包含额外文字,加"只回复一个词"约束
DT 中的 AI_COMPLETE 成本需评估DT 每次 REFRESH 全量重算,建议只分析增量行
连接名和模型名用英文冒号
'conn:model'
'conn:model'
,不要用
connection:
connection:
前缀
不要在生产表上直接 SELECT AI_COMPLETE物化结果后再查询,避免重复 API 调用
函数调用超时默认 SQL 超时可能不够,长文本用异步处理

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询