Azure Data Factory v2 - неправильное копирование года из паркета в базу данных SQL - PullRequest
0 голосов
/ 22 ноября 2018

У меня странная проблема с Azure Data Factory v2.Существует задание Spark, которое запускает и создает файлы паркета в качестве выходных данных, затем операция копирования ADFv2 берет выходной паркет и копирует данные в базу данных SQL Azure.Все работает нормально, кроме дат!Когда данные попадают в SQL, наступает 1969 год.Таким образом, сегодняшняя дата (2018-11-22) будет выглядеть как 3987-11-22.

Я попытался изменить типы источника и назначения между Date, DateTime, DateTimeOffset и String, но безуспешно.На данный момент я исправляю даты в базе данных, но это не совсем идеально.

Я открыл исходные файлы паркета с помощью Parquet Viewer, Spark и Python (рабочий стол), и все они правильно показывают годкак 2018

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

На основе Определения кодировки паркета , формат Date, DateTime, DateTimeOffset and String отсутствует, поэтому вам не нужно пытаться использовать эти форматы.

На основе этого Отображение типа данных для паркетафайлы в фабрике данных Azure:

enter image description here

Формат DateTimeOffset соответствует Int96, я предлагаю вам попробовать эту передачу на источникепаркетного файла.

0 голосов
/ 24 ноября 2018

В соответствии с определением типа даты для паркета, https://drill.apache.org/docs/parquet-format/#sql-types-to-parquet-logical-types Дата хранится как «количество дней от эпохи Unix, 1 января 1970 »

И ADFиспользуя тип .net, выполняющий преобразование.Согласно определению типа .net, значения времени измеряются в единицах по 100 наносекунд, называемых тиками.Конкретной датой является число тиков с 12:00 полуночи, 1 января, 000 1 нашей эры (CE) https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.7.2

Кажется, по этой причине добавлен дополнительный 1969 год.Но не уверен, является ли это ошибкой.Каков ваш тип данных паркета?это дата?а что такое тип данных sql?Не могли бы вы предоставить идентификатор выполнения операции копирования?Или, может быть, некоторые образцы данных паркета?

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