Внешняя таблица Azure Synapse не возвращает данные

Я пытаюсь создать ВНЕШНЯЯ ТАБЛИЦА, сопоставив ее с Blob Storage, следуя этому руководству Загрузить розничные данные Contoso в Synapse SQL.

Но я получаю эту ошибку, когда запрашиваю таблицу: Failed to execute query. Error: HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopExecutionException: Too many columns in the line.

Мои конфигурации файлов:

A: Create a database scoped credential

CREATE DATABASE SCOPED CREDENTIAL ServiceNow_AzureStorageCredential_ADSL
WITH
     IDENTITY = 'usr_adsl_servicnow'
    ,SECRET = 'my_key'
;

B: Create an external data source

CREATE EXTERNAL DATA SOURCE ServiceNowBlobStorage
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<servicenow container>@<account storage>.blob.core.windows.net',
    CREDENTIAL = ServiceNow_AzureStorageCredential_ADSL
);

C: Create the file format to be read from blob storage

CREATE EXTERNAL FILE FORMAT ServiceNowFileFormatCSV
WITH
(    FORMAT_TYPE = DELIMITEDTEXT
,    FORMAT_OPTIONS    (   FIELD_TERMINATOR = ','
                      ,    STRING_DELIMITER = '"'
                      ,    FIRST_ROW = 2
                      ,    DATE_FORMAT = 'dd/MM/yyyy HH:mm:ss'
                      ,    USE_TYPE_DEFAULT = TRUE
                      ,    Encoding = 'UTF8'
                    )
);

D: Create the external table

CREATE EXTERNAL TABLE [asb].[incidents] (
    [number] [nvarchar](30) NOT NULL,
    [opened] [datetime] NOT NULL,
    [resolved] [datetime] NULL,
    [updated] [datetime] NULL,
    [short_description] [nvarchar](2000) NOT NULL,
    [urgency] [nvarchar](65) NOT NULL,
    [resolve_time] [nvarchar](100) NULL,
    [business_service] [nvarchar](100) NULL,
    [what_is_the_system] [nvarchar](100) NULL,
    [problem] [nvarchar](65) NULL,
    [parent] [nvarchar](65) NULL,
    [where_is_the_problem] [nvarchar](100) NULL,
    [child_incidents] [nvarchar](30) NULL,
    [parent_incident] [nvarchar](65) NULL,
    [impact] [nvarchar](65) NULL,
    [severity] [nvarchar](65) NULL,
    [incident_state] [nvarchar](100) NULL,
    [company] [nvarchar](30) NULL,
    [business_duration] [nvarchar](65) NULL,
    [duration] [nvarchar](65) NULL,
    [created] [nvarchar](65) NULL,
    [catalog_item] [nvarchar](100) NULL,
    [priority] [nvarchar](100) NULL,
    [state] [nvarchar](65) NULL,
    [category] [nvarchar](30) NULL,
    [assignment_group] [nvarchar](100) NULL,
    [location] [nvarchar](200) NULL,
    [ETLLoadID] [nvarchar](65) NULL,
    [LoadDate] [nvarchar](65) NULL,
    [UpdateDate] [nvarchar](65) NULL
)
WITH
(
        LOCATION='servicenow-tables/incidents/incidents.csv'
    ,   DATA_SOURCE = ServiceNowBlobStorage
    ,   FILE_FORMAT = ServiceNowFileFormatCSV
    ,   REJECT_TYPE = VALUE
    ,   REJECT_VALUE = 0
);

Я использую только тип данных nvarchar, чтобы избежать ошибки преобразования Error converting data type VARCHAR to DATETIME в этом тесте.

Мой формат файла:

number,opened,resolved,updated,short_description,urgency,task_type,resolve_time,business_service,what_is_the_system,problem,parent,where_is_the_problem,child_incidents,parent_incident,impact,severity,incident_state,company,business_duration,duration,created,catalog_item,priority,state,category,assignment_group,location
"INC0020620","15/05/2020 10:42:39","19/05/2020 12:49:36","26/05/2020 13:00:02","Problemas de divergência nos valores","3 - Baixo(a)","Incidente","45,2620486","PDV",,"PRB0040714","",,"0","","1 - Alto(a)","3 - Baixo(a)","Encerrado","Lojas  S.A.","18 Horas 6 Minutos","4 Dias 2 Horas 6 Minutos","15/05/2020 10:42:39","Problemas de divergência nos valores","3 - Moderado","Encerrado","Sistemas/Aplicações","TI_N2_SIS","ADMINISTRACAO"

Я пробовал много форм, чтобы исправить это, но безуспешно.


person Rafael Lima    schedule 02.07.2020    source источник


Ответы (1)


Я просто выполнил простой поиск, в верхней строке он дал 27 отсчетов, что означает, что у нас есть 28 полей. Проделав то же самое с нижней строкой, я получу 28 отсчетов, что означает, что у нас есть 29 полей. Таким образом, у вас есть дополнительное значение во второй строке, поэтому ошибка, я думаю, проблема ниже значения

PRB0040714, ,, 0

надеюсь, что это поможет

person HimanshuSinha-msft    schedule 23.07.2020