用途:在 Keboola 语义上下文工具返回后、基于语义模型构建应用、查询、报表或转换时使用,确保写出的 SQL 与真实物理结构一致。
主要能力:补充 Keboola MCP 系统提示中语义层工作流未明确说明的失败模式。该工作流本身为:先用 search_semantic_context 发现、再用 get_semantic_context 查看、然后 validate_semantic_query 验证、最后 query_data 查询。本技能强调:语义数据集会返回 tableId 与 fqn,语义指标会返回其 SQL,这些就是物理映射,应直接使用。面向业务的展示名称(例如字段 Total Revenue、实体 Trips)只是定义之上的标签,并非物理列名。常见错误就是依据这些标签而非工具给出的定义来写 SQL。
必要用法:在把任何 SQL 嵌入应用、转换或报表代码之前,先通过 Keboola MCP 确认真实列名,例如对数据集的 tableId 调用 get_table;并逐字使用指标的 SQL,不要自行重写。若 search_semantic_context 没有返回相关内容,则说明没有模型可参考,应向用户说明并直接基于原始 Storage 工作。批量检查方式可自行决定。
示例:search_semantic_context(patterns=["nyc trips", "daily revenue"]) 返回指标 daily_revenue 及 tableId 为 out.c-nyc-aggregations-duckdb.rpt_daily 的数据集;get_semantic_context 返回指标 SQL、数据集 tableId 与 fqn;get_table(table_id="out.c-nyc-aggregations-duckdb.rpt_daily") 返回真实列 pickup_date、fare_total、trip_count,而非展示标签。用户口中的 revenue 对应物理列 fare_total。
适用场景:从语义模型构建仪表盘、应用、查询或转换时。
限制:若语义层无相关模型,应说明并改用原始 Storage。可与 dataapp-development 技能配合使用,处理数据源为语义模型的场景;相关资料未提供收费、价格、平台要求等更多信息。