首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在GCP的EXTERNAL_QUERY()函数中引用临时表?

如何在GCP的EXTERNAL_QUERY()函数中引用临时表?
EN

Stack Overflow用户
提问于 2022-04-01 14:43:27
回答 2查看 309关注 0票数 0

错误图像我正在使用GCP BigQuery的EXTERNAL_QUERY函数。其思想是从两个单独的GCP扳手数据库中检索数据,并在一个大型SQL查询中处理这些数据。EXTERNAL_QUERY函数将这个外部数据提供给主查询(EXTERNAL_QUERY("",""))。主要查询执行从选择数据开始到临时表,然后在EXTERNAL_QUERY的第二个参数中引用这个临时表。但是这种方法不起作用,因为我作为字符串提供给EXTERNAL_QUERY的SQL查询不能使用任何临时表。那么,在EXTERNAL_QUERY函数中引用临时表是可能的吗?

我在GCP码头上没有发现任何关于这个问题的东西。当然,我可以从外部表中检索所有行并处理这些数据,但是这种方法并不有效。

EN

回答 2

Stack Overflow用户

发布于 2022-04-01 21:18:26

你能用BigQuery来完成这一切吗?

代码语言:javascript
运行
复制
WITH transactions as (
   SELECT user_id
   FROM EXTERNAL_QUERY("connection_string",
   "SELECT user_id, id FROM transactions")
),
das as (
  SELECT user_id
  FROM EXTERNAL_QUERY("connection_string",
  "SELECT user_id FROM destination_accounts WHERE status = 'PENDING'"
  )
)
SELECT
  user_id,
  COUNT(DISTINCT transactions.id)
FROM
  das
JOIN 
  transactions
USING 
  (user_id)
GROUP BY 
  user_id;

您的外部事务查询是在GCP扳手上执行的,因此它对das一无所知。

票数 0
EN

Stack Overflow用户

发布于 2022-10-25 10:55:59

据我所知,没有办法从不同的数据库链接表。我们所能做的就是操纵字符串。

这是我的解决方案。

  • 从一个远程数据库中选择数据到临时表中。
  • 使用此表中的键列表创建一个字符串。
  • 将它插入到IN()子句中,用于要发送到第二个远程DB的查询。

如下所示:

代码语言:javascript
运行
复制
BEGIN 

DECLARE USER_IDS STRING;
DECLARE SELECT_TRANSACTIONS_QUERY STRING;

CREATE TEMP TABLE users AS
    SELECT userId FROM EXTERNAL_QUERY(
      "projects/<project>/locations/<location>/connections/<connection>",
      "SELECT userId FROM users;"
    );

SET USER_IDS = CONCAT("'", ARRAY_TO_STRING(ARRAY(SELECT userId FROM users), "', '"), "'");

SET SELECT_TRANSACTIONS_QUERY = CONCAT('SELECT * FROM transactions WHERE userId IN(', USER_IDS, ')');

EXECUTE IMMEDIATE
"""
  SELECT * FROM EXTERNAL_QUERY("projects/<project>/locations/<location>/connections/<connection>", ?);
"""
USING SELECT_TRANSACTIONS_QUERY;

END;

所有这些都可以保存为一个过程,并由后端的名称触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71708737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档