尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Metabase 原生查询编辑器中怎么创建和复用 SQL 代码片段(Snippets)?

Metabase 原生查询编辑器中怎么创建和复用 SQL 代码片段(Snippets)? Metabase 原生查询编辑器中怎么创建和复用 SQL 代码片段Snippets【免费下载链接】metabaseThe easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:项目地址: https://gitcode.com/GitHub_Trending/me/metabase如果你的多个 SQL 问题里反复出现同一段代码——比如一张orders表关联products表的 JOIN 写法、一套 KPI 的过滤条件——可以把这段 SQL 保存为 Snippet代码片段之后在任何原生查询里用一个引用就能复用。Metabase 的 Snippet 是「可复用的 SQL 或原生查询片段」任何拥有 native editor 权限的用户都可以创建和编辑片段创建后对所有原生查询作者可见。片段名必须全局唯一连已归档的片段名也不能重复。创建 Snippet 的两条路径前提是你有权使用 SQL 编辑器在主导航栏点 New如果有权限会看到带控制台小图标的SQL query选项。路径一从编辑器中选代码保存点右上角 New SQL query或Native query打开 native editor。写好 SQL选中想保存复用的那段代码。选中的部分不必是完整查询例如只选中orders AS o LEFT JOIN products AS p ON o.product_id p.id WHERE p.category {{category}}在选区上右键选择Save as snippet。为片段命名并填写描述然后Save。路径二从 Snippet 侧边栏直接创建同样先打开 native editor。点编辑器窗口上方的Snippets按钮打开侧边栏。在侧边栏中直接输入要保存的代码Save。在查询中引用 Snippet引用片段会插入一个{{snippet: }}标记例如SELECT * FROM {{snippet: orders and products}}两种插入方式自动补全在编辑器里输入{{snippet:Metabase 会列出可用的片段供选择。注意空格规则——{{和snippet之间不能有空格冒号后、片段名前需要有一个空格即写成{{snippet: Products}}。侧边栏插入点Snippets按钮打开侧边栏搜索到目标片段后悬停在片段上点击片段名左侧的箭头插入当前查询。搜索和列表只会显示你有权限看到的片段。执行查询时Metabase 会在后台把{{snippet: ...}}引用替换为片段的实际 SQL 再发送给数据库。片段里可以引用什么一个片段内部可以包含三类引用SQL 参数如{{created_at}}、{{category}}用法见 SQL parameters其他片段如{{snippet: orders}}。Metabase 会检测并禁止循环引用已保存的问题或模型如{{#123-orders-model}}见 在查询中引用已保存的问题。如果片段中使用了表别名外层查询里必须沿用同样的别名。例如片段内写了products AS p那么片段之外的代码要用p.column_name来引用该表的列。预览替换后的完整查询编辑器里保存的始终是{{snippet: ...}}引用看不到替换后的完整 SQL。点编辑器上方的Eye眼睛图标可以看到 Metabase 实际要发给数据库的完整查询这是核对片段替换结果的方式。编辑 Snippet一处修改多题生效编辑片段是批量修改多个问题的手段。比如你保存了从 X、Y、Z 三张表取用户数据的片段User Data之后取数方式变化了只要更新片段里的 SQL所有引用User Data的问题都会使用新代码。编辑步骤点编辑器上方的Snippet图标打开侧边栏。搜索片段结果只显示你有权限编辑的片段。点片段名右侧的下箭头选择Edit。可以修改代码、名称和描述但有两个约束需要记住改片段名所有使用该片段的问题中的引用名会同步更新不会弄坏这些问题但如果其他片段引用了这个片段改名会弄坏那些引用它的片段。改片段代码如果保存了有错误的代码所有使用该片段的问题都会出错。文档的提醒是把代码保存进已有片段之前先测试通过。归档 Snippet归档用于把过时或不常用的片段从列表里挪走。归档后片段不再出现在自动补全下拉和侧边栏列表中但不影响任何正在使用该片段的现有查询可以安全归档。操作打开侧边栏搜索到片段点片段名右侧的下箭头选择Edit再点Archive。已归档的片段可以在侧边栏左下角的 archived 按钮里找到随时可以归档/取消归档。Metabase 没有删除片段的功能。片段中的参数值由问题定义不由片段定义片段里可以带 SQL 参数例如WHERE {{created_at}} AND category {{category}} GROUP BY {{time_grouping}}把带参数的片段加入查询后Metabase 会为这些参数显示筛选控件参数的类型、关联字段和默认值在查询的Variables侧边栏里设置而不是在片段里设置。也就是说同一个片段的参数在不同问题里可以映射到不同列——比如{{created_at}}在一个问题里映射CREATED_AT在另一个问题里映射CANCELED_AT。如果多个片段含有同名参数使用该片段的问题只显示一个参数控件并用它的值同时填充所有片段。这也可以用来在多个 SQL 问题包括嵌套问题之间共享参数把含参数的 SQL 移入片段并让两个问题都引用它同一个仪表板日期筛选就能同时控制两张卡片。片段里也可以用 table variables 写一次通用查询、在不同问题中插入不同表SELECT COUNT(*) FROM {{table}}权限边界只要对至少一个已连接数据库拥有 native editor 权限用户就能看到 Snippet 侧边栏并且可以创建、编辑、归档/取消归档所有片段——包括那些用于其没有 SQL 编辑权限的数据库的片段。部分付费版本支持把片段组织进文件夹并对文件夹设置权限编辑/查看/撤销三级见 Snippet 文件夹权限。文档明确提示文件夹权限更像组织与标准化的工具不应把它当作限制 SQL 代码访问的安全手段。下一步片段和 metrics、segments 的角色类似用片段把 KPI、过滤条件固化为标准化的 SQL。如果 SQL 查询本身有问题参考 SQL 排查指南。注意 native editor 的限制不支持多语句查询、存储过程/函数调用和 DDL 语句CREATE、ALTER、DROP见 SQL 编辑器说明。【免费下载链接】metabaseThe easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:项目地址: https://gitcode.com/GitHub_Trending/me/metabase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表