DataLake Analytics USQL: не удалось сравнить два элемента в массиве

Я создал базу данных в Data Lake Analytics. Затем заполняется данными из файлов в моем озере данных. Когда я затем запрашиваю таблицу, которую я сделал, у меня есть некоторый успех, но некоторые странные ошибки. (Странно для меня!)

Это работает: ГДЕ [Штампованный серийный номер] == "000074O1" Это не работает: ГДЕ [Номер CTN] == "000074-1"

Ошибка :

«Во время генерации кода произошел системный сбой. Не удалось сравнить два элемента в массиве».

Оба поля являются строками, поэтому я не уверен, в чем разница. Один (неудачный) также является частью моего индекса и дистрибутива, но я потерян, если это как-то связано с моими проблемами.

Весь код для определения таблицы, заполнения и финальных запросов приведен ниже. Если кто-нибудь может помочь мне понять, что я делаю неправильно...!? ...буду очень признателен :)

Скрипт: Создать таблицу

CREATE TABLE IF NOT EXISTS Play.RawData
(
    [CTN Number] string
    ,[SeqNo] long
    ,[UTC Time Stamp for Event] string
    ,[Biz step Description] string
    ,[Stamped Serial number] string
    ,[Container Status] string
    < -- more columns -- >,
INDEX 
    idx_CTN CLUSTERED ([CTN Number],[SeqNo])

DISTRIBUTED BY HASH ([CTN Number],[SeqNo])
);

Скрипт: Заполнить таблицу

DECLARE @dir string = "/myDataPath/";
DECLARE @file_set_path string = @dir + "File_{date:yyyy}{date:MM}{date:dd}.DAT";

@results_1 = 
    EXTRACT 
        [CTN Number] string
        ,[UTC Time Stamp for Event] string
        ,[Biz step Description] string
        ,[Stamped Serial number] string
        ,[Container Status] string
        < -- more columns -- >,
        ,date DateTime // virtual file set column
    FROM @file_set_path 
USING Extractors.Tsv();

INSERT INTO Play.RawData(
    [CTN Number],
    [SeqNo],
    [UTC Time Stamp for Event],
    [Biz step Description],
    [Stamped Serial number],
    [Container Status],
        < -- more columns -- >
)
    SELECT 
        [CTN Number],
        ROW_NUMBER() OVER(PARTITION BY [CTN Number] ORDER BY [UTC Time Stamp for Event] ASC) ?? -1 AS [SeqNo],
        [UTC Time Stamp for Event],
        [Biz step Description],
        [Stamped Serial number],
        [Container Status]
FROM @results_1 
WHERE 
        date >= DateTime.Parse("2013-01-01") 
        AND 
        date < DateTime.Parse("2013-02-01");

Сценарий: тестовый запрос

@table =
    SELECT [UTC Time Stamp for Event],
           [Biz step Description],
           [CTN Number],
           [Stamped Serial number]
    FROM [CTN].[Play].[RawData]
    WHERE 
        //[Stamped Serial number] == "000074O1";
       [CTN Number] == "000074-1";

OUTPUT @table
    TO "/output/results.tsv"
    USING Outputters.Tsv(outputHeader:true);

person SimonB    schedule 28.08.2017    source источник


Ответы (1)


Это похоже на ошибку для меня. Не могли бы вы прислать мне ссылку на неудачную работу в usql (at) microsoft dot com?

Спасибо, Майкл.

person Michael Rys    schedule 28.08.2017
comment
Привет, Майкл, я списал это на ошибку пользователя, но после вашего ответа я создал запрос в службу поддержки. Номер запроса на поддержку — 117082816249723. Надеюсь, это даст вам URL-адрес и что-нибудь еще, что вам нужно? Просто кричи, если я могу чем-нибудь еще помочь. Огромное спасибо - person SimonB; 28.08.2017
comment
Спасибо, Саймон... этого должно быть достаточно, чтобы начать расследование. - person Michael Rys; 28.08.2017