Удалить последнюю запись из плоского файла в большом двоичном объекте в хранилище данных Azure.

У меня есть несколько плоских файлов с разделителями каналов в хранилище BLOB-объектов, и в каждом файле у меня есть запись заголовка и нижнего колонтитула с именем файла, датой извлечения и количеством записей. Я использую конвейер ADF с Polybase для загрузки в Azure DWH. Я мог пропустить запись заголовка, но не смог пропустить нижний колонтитул. Единственный способ, который я мог придумать, - это создать промежуточную таблицу со всеми varchar и загрузить ее в промежуточную структуру, а затем преобразовать типы данных обратно в основные таблицы. Но это не работает, так как количество столбцов отличается от нижнего колонтитула и данных. Есть ли более простой способ сделать это? Пожалуйста, порекомендуйте.


person sparc    schedule 14.04.2020    source источник


Ответы (1)


В Polybase нет явного параметра для удаления строк нижнего колонтитула, но есть набор параметров отклонения, которыми вы потенциально можете воспользоваться. Если вы установите REJECT_TYPE как VALUE (а не PERCENTAGE), а REJECT_VALUE AS 1, вы скажете Polybase отклонить только одну строку. Если формат нижнего колонтитула отличается от формата основных строк данных, он будет отклонен, но ваш запрос не должен завершаться ошибкой.

CREATE EXTERNAL TABLE yourTable
...    
<reject_options> ::=  
{  
    | REJECT_TYPE = value,  
    | REJECT_VALUE = 2 

Пожалуйста, опубликуйте простой анонимизированный пример вашего файла с верхними, колоночными и нижними колонтитулами, если вам нужна дополнительная помощь.

Обновление: прочтите эту запись в блоге, чтобы узнать об отслеживании отклоненных строк:

https://azure.microsoft.com/en-us/blog/load-confidently-with-sql-data-warehouse-polybase-rejected-row-location/

person wBob    schedule 14.04.2020
comment
Большое спасибо @wBob, это сработало как шарм. Есть ли способ где-нибудь регистрировать отклоненные записи. Кроме того, я пробовал пропускать и регистрировать несовместимые строки, это не сработало. Есть какие-то особые настройки для этого? Большое спасибо за твою помощь. - person sparc; 14.04.2020