Значение Azure Table Export Timestamp не работает - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь настроить простой конвейер фабрики данных с намерением скопировать хранилище таблиц Azure в Cosmos DB. Хранилище таблиц Azure имеет управляемое системой поле Timestamp. Когда поток запускается и Cosmos db заполняется данными, метка времени всегда имеет значение «Timestamp»: «1970-01-01T00: 00: 00Z». Кажется, он не попадает в БД Космос правильно.

Как воспроизвести: создайте таблицу Azure, добавьте несколько записей. Создайте экземпляр Cosmos db и новую коллекцию. Создать поток фабрики данных. Обратите внимание, как выглядит метка времени при экспорте.

Я попытался изменить тип данных Timestamp с DateTime на DateTimeOffset, а также экспортировать его в виде строки. Я также пытался указать формат даты. Результат тот же.

Я подозреваю, что отметка времени является зарезервированным словом в базе данных Cosmos и каким-то образом не может вставить правильное значение.

1 Ответ

0 голосов
/ 29 июня 2018

Я воспроизвел вашу проблему на моей стороне. Я попытался добавить свойство time и установить значение, равное Timestamp. Он может быть правильно импортирован в космос.

enter image description here

Итак, я думаю, что это связано с именем поля, а не с типом данных или форматом данных. Однако я попытался указать имя поля целевого столбца timestamp вместо Timestamp, тогда оно не работает.

На основании этого документа _ts автоматически генерируется с помощью cosmos db, который представляет собой число, представляющее количество прошедших секунд с 1 января 1970 года. Он регистрирует последнюю обновленную метку времени ресурса , так что оно имеет то же значение, что и отметка времени в хранилище таблиц Azure. Может быть преобразовано UnixDateTimeConverter класс. Таким образом, вы можете отследить дату в поле _ts.

Если вы хотите сохранить Timestamp, вы можете добавить свойство с тем же значением sa Timestamp, а затем импортировать его в cosmos db.

Надеюсь, это поможет вам.

...