我正在尝试将bigquery表(target)与表(源)与联邦查询合并。但是,bigquery似乎不会接受"using“子句中的联邦查询。
Syntax error: Expected "(" or keyword SELECT or keyword WITH but got identifier "EXTERNAL_QUERY" at [3:9]我的查询如下所示。
MERGE bigquery_dataset.bigquery_table TARGET
USING (
EXTERNAL_QUERY("projects/company-co/locations/us/connections/company","SELECT * FROM postgres_schema.postgres_table")
) SOURCE
ON target.id = source.id
WHEN MATCHED THEN ...
WHEN NOT MATCHED BY TARGET THEN ...
WHEN NOT MATCHED BY SOURCE THEN ...对于这类功能,有什么已知的解决办法吗?或者有没有其他方法来执行这种类型的合并?
发布于 2021-09-27 09:24:51
根据您的要求,如果您想在EXTERNAL_QUERY中的外部数据源位于PostgreSQL实例的BigQuery中运行联邦查询,则需要使用SQL函数即PostgreSQL定义源数据集。
您所得到的错误:“语法错误:预期"(”或关键字SELECT或关键字带有但得到标识符" EXTERNAL_QUERY“在3:9”是因为您在EXTERNAL_QUERY之前遗漏了SELECT语句。
根据这个文档,语法应该是:
SELECT * FROM EXTERNAL_QUERY(connection_id, external_database_query[, options]);我试着在BigQuery中运行联邦查询,其中源在中,并且它正在按预期工作。
SQL查询:
MERGE myproject.demo.tab1 TARGET
USING (
select * from EXTERNAL_QUERY("projects/myproject/locations/us-central1/connections/sqltobig", "SELECT * FROM entries;")
) SOURCE
ON target.entryID = source.entryID
WHEN MATCHED THEN
DELETE
WHEN NOT MATCHED THEN
INSERT(guestName, content, entryID)
VALUES(guestName, content, entryID)https://stackoverflow.com/questions/69340240
复制相似问题