Polybase 将 sql 转换为 ansi sql 以获得 sybase 连接
Polybase converting sql to ansi sql for a sybase connection
我有一个到 sybase 服务器的 polybase 连接。
在我的外部表上,我无法使用 top 命令,因为 poly-base 会将其转换为 limit
示例:
SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]
无法对链接服务器“(null)”的 OLE DB 提供程序 "MSOLEDBSQL" 执行查询 "Remote Query"。 105082;一般 ODBC 错误:[SAP][ODBC 驱动程序][SQL 任何地方] 第 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]
)
与一些使用 PolyBase 功能的 Microsoft 人员交谈。
创建外部数据源时,默认 PUSHDOWN
为 ON
。您 运行 遇到的问题是通用 ODBC 数据源的下推功能处于早期阶段,生成的 SQL 可能不是源预期的方言。这似乎是这里的情况。
因此尝试使用 PUSHDOWN = OFF
创建数据源,看看是否有帮助。或者,您可以使用以下选项禁用查询中的下推:OPTION (DISABLE EXTERNAL PUSHDOWN)
。所以像:
SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]
OPTION (DISABLE EXTERNAL PUSHDOWN);
检查一下是否有效。
我有一个到 sybase 服务器的 polybase 连接。
在我的外部表上,我无法使用 top 命令,因为 poly-base 会将其转换为 limit
示例:
SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]
无法对链接服务器“(null)”的 OLE DB 提供程序 "MSOLEDBSQL" 执行查询 "Remote Query"。 105082;一般 ODBC 错误:[SAP][ODBC 驱动程序][SQL 任何地方] 第 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]
)
与一些使用 PolyBase 功能的 Microsoft 人员交谈。
创建外部数据源时,默认 PUSHDOWN
为 ON
。您 运行 遇到的问题是通用 ODBC 数据源的下推功能处于早期阶段,生成的 SQL 可能不是源预期的方言。这似乎是这里的情况。
因此尝试使用 PUSHDOWN = OFF
创建数据源,看看是否有帮助。或者,您可以使用以下选项禁用查询中的下推:OPTION (DISABLE EXTERNAL PUSHDOWN)
。所以像:
SELECT TOP (1000) *
FROM [polygrab].[dbo].[ExtEvent_test]
OPTION (DISABLE EXTERNAL PUSHDOWN);
检查一下是否有效。