Как разрешить строки были отклонены при чтении из внешних источников в хранилище данных sqlserver - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно загрузить данные из datalake в хранилище данных сервера sql с использованием таблиц polybase. Я создал настройку для создания внешних таблиц. Я создал внешнюю таблицу и пытаюсь сделать выбор * из таблицы ext_t1, ноЯ получаю сообщение об ошибке, так как строки были отклонены при чтении из внешних источников. Ниже приведен сценарий моей внешней таблицы. Может ли кто-нибудь мне помочь в этом вопросе?Заранее спасибо.

CREATE EXTERNAL TABLE [dbo].[EXT_TEST1]
( A VARCHAR(10),B VARCHAR(20)) 
(DATA_SOURCE = [Azure_Datalake],LOCATION = N'/A/Test_CSV/',FILE_FORMAT =csvfileformat,REJECT_TYPE = VALUE,REJECT_VALUE = 1)

Таблица создана, но после запроса оператора select появляется следующая проблема. Строки были отклонены при чтении из внешних источников.2 строки отклонены из внешней таблицы [EXT_TEST1] на шаге 2 плана выполнения запроса: Расположение: '/A/Test_CSV/abc.csv' Порядковый номер столбца: 1, Ожидаемый тип данных: VARCHAR (20), сопоставить SQL_Latin1_General_CP1_CI_AS.Расположение: '/A/Test_CSV/abc.csv' Порядковый номер столбца: 1, ожидаемый тип данных: VARCHAR (20), сопоставить SQL_Latin1_General_CP1_CI_AS.

1 Ответ

0 голосов
/ 17 апреля 2019

Я бы посоветовал вам попробовать вещи ниже.Кроме того, см. Различные подходы к устранению неполадок, связанных с многоосновной базой, из SQL CAT Team

  • Поскольку у вас есть строгий Отклонение, вы получаете ошибку, даже если есть проблема с одной строкой,Я бы посоветовал вам увеличить число до больших и посмотреть, успешно ли загружаются данные для других строк.
  • Я бы посоветовал вам проверить файл csv, а также проверить формат csvfile на предмет правильности определения формата файла.Если файл содержит строки в кавычках, вы должны указать соответственно.

  • Возможно, проблема с форматом данных.Могут быть строки, в которых отсутствует запятая, и из-за этого вы получаете строку большего размера, чем VARCHAR (20), и у вас возникают проблемы с усечением данных. Или тип данных VARCHAR (20) недостаточен для хранения значений.Я бы посоветовал вам определить тип данных соответственно.

При дальнейшем поиске ошибка связана с усечением данных.Вы не выделили достаточную длину для значений CSV.Перенесено из Полибаза в нереляционные данные

Сообщение 107090, Уровень 16, Состояние 1, Строка 15 Запрос прерван - максимальный порог отклонения (0 строк) был достигнут при чтениииз внешнего источника: 1 строка отклонена из общего числа 1 обработанных строк.(/prices.csv) Порядковый номер столбца: 2, ожидаемый тип данных: VARCHAR (4) collate SQL_Latin1_General_CP1_CI_AS, значение обидования: цена (ошибка преобразования столбца), ошибка: строка или двоичные данные будут усечены.Эта ошибка возникает, когда данные усекаются.Вам может потребоваться изменить тип данных или количество поддерживаемых символов.например, если значение имеет 4 символа, а ваш тип данных - varchar (2), вам нужно будет перейти на varchar (4).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...