无法将 Polybase 连接到 PostgreSQL

问题描述

尝试使用 MSsql polybase 建立与 Postgressql 服务器的连接。今天我们使用 Linked Server 将 Postgres 数据库中的数据提取到 MSsql 中,并且工作正常。但是 polybase 有一些功能可以解决一些关于加入等的程序问题,因此 polybase 是解决方案。只要它有效! ;-)

但我没有让它工作。而且我在 Google 上找不到任何真正的帮助。

这是代码

> CREATE DATABASE ScopED CREDENTIAL PG_EXAMPLE WITH IDENTITY = 'pgUSER',Secret = 'verylongpassword';

> CREATE EXTERNAL DATA SOURCE PG_EXAMPLE_DATA
 >WITH ( LOCATION = 'odbc://PG_SERVERNAME:5432',>CONNECTION_OPTIONS = 'Driver={Postgresql Unicode(x64)}',>PUSHDOWN = ON,>CREDENTIAL = PG_EXAMPLE);

尝试创建外部表:

 >    CREATE EXTERNAL TABLE databas(
 >    namn [nvarchar](255) NULL,>    datorid [nvarchar](255) NULL
 >    ) WITH (
 >    LOCATION='exampel_databas_on_PGserver',>    DATA_SOURCE=PG_EXAMPLE_DATA
 >    );

ERROR MESSAGE

>    Msg 105082,Level 16,State 1,Line 10
>    105082;Generic ODBC error: Error while executing the query .

任何人都可以在这里散播一些光,我做错了什么。也许有人尝试过并让它工作??

非常感谢任何帮助和建议。

谢谢!!!

解决方法

检查 LOCATION 是表的名称,它可能区分大小写,并且您不能指定数据库和架构。如果可以,请尝试与“postgres”用户连接。还可以尝试指定 IP 而不是主机名。 我使用过 ANSI 驱动程序,也尝试使用它:{PostgreSQL ANSI(x64)}。 作为最后一个资源,检查驱动程序版本,我使用 psqlodbc_12_02_0000-x64.zip 进行了测试。