Polybase не может поместить условие WHERE в пункт назначения XLSX - PullRequest
1 голос
/ 15 апреля 2020

Условие WHERE в моем запросе T- SQL не возвращает никаких строк, от 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'

Запрос не возвращает никаких строк, хотя есть клиент по имени Стив.

1 Ответ

3 голосов
/ 19 апреля 2020

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
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...