是否可以从Tableau运行大型查询存储过程?

问题描述

我在Google Bigquery中有一个存储过程,已经与Tableau建立了连接。我可以看到数据集下的所有表,但看不到写在同一数据集中的存储过程。

我试图从Tableau页面中找到信息,但找不到任何信息。

任何人都可以解释一下他们是否曾经这样做过或者有可能这样做吗? 还是我应该最终在Tableau自定义查询中创建相同的存储过程?

解决方法

您可以连接到custom SQL Query as a Datasource in Tableau

在这种情况下,您必须提供原始SQL,该SQL将为您返回一个以后可以使用的表,包括对存储过程的调用。

我不建议对Tableau中的原始SQL查询进行编码:为此使用Big Query Web界面(您可以从中查看所有存储过程,数据集和分区),然后在tableu中创建自定义SQL查询并粘贴查询就可以了。

要访问存储的过程(UDF),您需要在数据集名称之前添加数据名。

示例:

假设我们有一个像这样的简单UDF:

CREATE FUNCTION dataset.addFive(number int64) returns int64 as (number + 5);`

我们可以直接在Standard SQL中调用该函数。不需要调用(例如在Oracle中):

SELECT dataset.addFive(5) as udfCall ;

SELECT dataset.user_defined_function(column) as udfCall from dataset.Table ;

还有一个视图:

CREATE VIEW dataset.view_with_udf as
SELECT dataset.user_defined_function(column) as udfCall from dataset.Table ;

警告这仅适用于具有标准SQL的BigQuery(可能是您的情况)。

如果您的函数是使用BigQuery旧版SQL进行的(而您的UDF源在Cloud Storage中),则将无法使用。

在这种情况下: