Polybase将sql转换为sybase连接的ansi sql

问题描述 投票:0回答:1

我具有到sybase服务器的Polybase连接。

在我的外部表上,我无法使用top命令,因为多基将其转换为限制

示例:

SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]

无法对链接服务器“(null)”的OLE DB访问接口“ MSOLEDBSQL”执行查询“ Remote Query”。 105082;通用ODBC错误:[SAP] [ODBC驱动程序] [SQL Anywhere]语法错误在第3行'limit'附近。

我也将此服务器作为链接服务器,并且通过SAOLEDB.17提供程序支持顶部命令。但是我不知道这是问题还是如何解决。

我的外部数据连接如下:

CREATE EXTERNAL DATA SOURCE [TicketMaster] WITH (
    LOCATION = N'odbc://externalserver.com:50459'
    , CONNECTION_OPTIONS = 'DRIVER={SQL Anywhere 17};
    Host=externalserver.com:50459; 
    Provider = ''SAOLEDB.17'';
    ServerName= <servername>;
    DatabaseName=<databasename>;'
    , CREDENTIAL = [PolyFriend2]
    )
sql sybase polybase
1个回答
1
投票

与使用PolyBase功能的某些Microsoft员工交谈。

创建外部数据源时,默认情况下PUSHDOWNON。您遇到的问题是,通用ODBC数据源的下推功能处于早期阶段,并且源可能不在预期的方言中生成了SQL。这里似乎是这种情况。

因此,请尝试使用PUSHDOWN = OFF创建数据源,看看是否有帮助。或者,您可以使用以下选项禁用查询中的下推:OPTION (DISABLE EXTERNAL PUSHDOWN)。所以像:

SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]
OPTION (DISABLE EXTERNAL PUSHDOWN);

检查并查看是否可行。

© www.soinside.com 2019 - 2024. All rights reserved.