postgresql - 从 Snowflake 查询 PostgreSQL 数据库

标签 postgresql snowflake-cloud-data-platform

PostgreSQL 提供了一种通过 dblink 查询远程数据库的方法。

类似地(某种程度上),Exasol 提供了一种通过以下语法连接到远程 Postgres 数据库的方法:

CREATE CONNECTION JDBC_PG
  TO 'jdbc:postgresql://...'
  IDENTIFIED BY '...';

SELECT * FROM (
  IMPORT FROM JDBC AT JDBC_PG
  STATEMENT 'SELECT * FROM MY_POSTGRES_TABLE;'
)

-- one can even write direct joins such as
SELECT
  t.COLUMN,
  r.other_column
FROM MY_EXASOL_TABLE t
LEFT JOIN (
  IMPORT FROM JDBC AT JDBC_PG
  STATEMENT 'SELECT key, other_column FROM MY_POSTGRES_TABLE'
) r ON r.key = t.KEY

这非常方便将数据从 PostgreSQL 直接导入 Exasol,而无需使用临时文件(csv、pg_dump...)。

是否有可能从 Snowflake 实现同样的事情(通过直接实时连接从 Snowflake 查询远程 PostgreSQL 数据库)?我在文档中找不到任何提及。

最佳答案

您是否考虑过使用 external functions ?这并不是您要找的东西(Snowflake 尚不具备该功能),但在某些用例中可以用作解决方法。例如,您可以在 AWS Lambda 上创建一个 Python 函数来查询 PostgreSQL 以获取少量数据(由于 Lambda 限制),或者让它触发一个 PostgreSQL 进程,该进程转储到 S3 以触发 Snowpipe 用于批量导入用例。

关于postgresql - 从 Snowflake 查询 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61840030/

相关文章:

sql - 对每 n 个和组上的 SQL 行求和

sql - 插入到简单的 Postgres View 中

sql - 减少查询数量,可能是通过表模式?

snowflake-cloud-data-platform - 将雪花数据发送到 REST API (POST) 的方法

snowflake-cloud-data-platform - 基于另一个表中范围的基于窗口的平均值

sql - 如何组合 Snowsql GroupBy 中的数组并仅保留不同的值?

postgresql - 如何使用 for 循环选择字段值并将它们插入到另一个表中

sql - 间隔 : How can I make sure there is just one row with a null value in a timstamp column in table?

postgresql - 如何使用 SPI 函数从数据库返回数组属性

sql - 展平嵌套数组并在雪花中聚合