Polybase 无法在 XLSX 目标上放置 WHERE 条件
Polybase unable to place a WHERE condition on XLSX destination
我的 T-SQL 查询中的 WHERE
条件没有 returning 任何行,从 SQL 2019 polybase 到 .XLSX 文件
这是我创建 Polybase 的代码:
create master key encryption by password = 'Polybase2CSV';
create external data source myODBCxlsx with
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=F:\PolybaseSourceData\CustomerData.xlsx'
);
create external table CustomerData(
CUSTOMERID FLOAT(53),
CUSTOMERNAME Nvarchar(255),
DEPARTMENT Nvarchar(255)
) with (
LOCATION='[sheet1$]',
DATA_SOURCE=myODBCxlsx
);
此查询有效:
select * from customerData
然而这不是:
select * from customerData where customername = 'Steve'
查询没有 return 任何行,尽管有一个叫史蒂夫的客户。
如果您在创建外部数据源时未指定设置,默认情况下会自动启用 PUSHDOWN。不幸的是,那个特定的驱动程序不能在启用 PUSHDOWN 的情况下工作,所以你会在简单的查询中遇到错误。关闭 PUSHDOWN 将解决这个问题。
外部数据源定义应如下所示:
create external data source myODBCxlsx with
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=F:\Files\CustomerData.xlsx',
PUSHDOWN=OFF
);
我的 T-SQL 查询中的 WHERE
条件没有 returning 任何行,从 SQL 2019 polybase 到 .XLSX 文件
这是我创建 Polybase 的代码:
create master key encryption by password = 'Polybase2CSV';
create external data source myODBCxlsx with
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=F:\PolybaseSourceData\CustomerData.xlsx'
);
create external table CustomerData(
CUSTOMERID FLOAT(53),
CUSTOMERNAME Nvarchar(255),
DEPARTMENT Nvarchar(255)
) with (
LOCATION='[sheet1$]',
DATA_SOURCE=myODBCxlsx
);
此查询有效:
select * from customerData
然而这不是:
select * from customerData where customername = 'Steve'
查询没有 return 任何行,尽管有一个叫史蒂夫的客户。
如果您在创建外部数据源时未指定设置,默认情况下会自动启用 PUSHDOWN。不幸的是,那个特定的驱动程序不能在启用 PUSHDOWN 的情况下工作,所以你会在简单的查询中遇到错误。关闭 PUSHDOWN 将解决这个问题。
外部数据源定义应如下所示:
create external data source myODBCxlsx with
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=F:\Files\CustomerData.xlsx',
PUSHDOWN=OFF
);