You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Apache Superset 2.0.1的SQL Lab中调用存储过程的其他方法咨询

在Apache Superset中调用存储过程的其他可行方法

方法1:直接执行存储过程(需数据源支持)

如果你的数据源连接允许执行非SELECT类语句,可以直接使用EXEC命令结合Superset模板变量:

EXEC myStoredProcedure param1, '{{ ''.join(filter_values('myFilterColumn')) }}'
WITH RESULT SETS(
    (
        id int,
        [name] varchar(255),
        id_sent int,
        nbAddressSent int,
        nbOpeners int,
        nbClickers int
    )
)

注意:要确认数据源连接配置开启了对应权限,比如SQL Server需开启allow_multi_statements,否则这类语句可能被拦截。

方法2:在数据库端封装为视图/表值函数

静态视图封装

先在数据库中创建视图封装存储过程调用逻辑,之后在Superset直接查询视图:

CREATE VIEW vw_myStoredProcedure AS
SELECT * FROM OPENQUERY(
    LINKED_SERVER_NAME, 
    'EXECUTE myStoredProcedure param1, ''''
    WITH RESULT SETS((    id int,
        [name] varchar(255),
        id_sent int,
        nbAddressSent int,
        nbOpeners int,
        nbClickers int    ))'
)

带参数的表值函数

如果需要动态传参,可改用表值函数:

CREATE FUNCTION fn_myStoredProcedure(@param2 varchar(255))
RETURNS TABLE
AS
RETURN (
    SELECT * FROM OPENQUERY(
        LINKED_SERVER_NAME, 
        'EXECUTE myStoredProcedure param1, ''' + @param2 + '''
        WITH RESULT SETS((    id int,
            [name] varchar(255),
            id_sent int,
            nbAddressSent int,
            nbOpeners int,
            nbClickers int    ))'
    )
)

在Superset中调用函数:

SELECT * FROM fn_myStoredProcedure('{{ ''.join(filter_values('myFilterColumn')) }}')

方法3:SQL Lab多语句脚本

在Superset的SQL Lab中编写多语句脚本,先声明变量再执行存储过程:

DECLARE @param varchar(255) = '{{ ''.join(filter_values('myFilterColumn')) }}'
EXEC myStoredProcedure param1, @param
WITH RESULT SETS(
    (
        id int,
        [name] varchar(255),
        id_sent int,
        nbAddressSent int,
        nbOpeners int,
        nbClickers int
    )
)

同样需要确保数据源连接支持多语句执行。

方法4:封装为Superset数据集

将你当前的查询逻辑保存为Superset自定义SQL数据集,后续在仪表盘或图表中直接调用该数据集,无需重复编写完整语句,同时可直接绑定过滤器参数。


内容的提问来源于stack exchange,提问作者Wajahat kayani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:22:18