пожалуйста, помогите проблему с вставкой TTL в Comsos DB

Я немного борюсь с этими вставками TTL в космос db фабрикой данных лазурного:

Требование: источник: паркетные файлы ADLS Gen2 (не csv, должны быть паркетные). Цель: COMSMOS DB необходимо добавить все записи из файлов пакетов в Comsmos DB с дополнительной парой значений имени, например: ttl: 7776000 бизнесу нужна каждая запись в cosmos db. для 90 дней существует настройка TTL на уровне контейнера на 2 года, однако для записей из паркета ADLS его нужно было установить на уровне элемента только на 90 дней.

здесь некоторые ограничения:

  1. Поток данных нельзя использовать, потому что он не поддерживает автономную среду выполнения интеграции, а безопасность использования Azure IR не одобрена моей компанией.
  2. не может использовать другие компоненты, такие как Synapse или SQL-сервер, в качестве промежуточного сервера.
  3. не может использовать блокнот с данными.
  4. Столбец ttl отсутствует в паркетном файле, он должен быть добавлен во время копирования.

поэтому я пытаюсь использовать дополнительные столбцы, как предлагает https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview#add-additional-columns-during-copy вот моя настройка: я добавляю параметр в конвейер, он установлен как тип данных int. введите описание изображения здесь добавьте дополнительный столбец в источник: введите описание изображения здесь сопоставление следующим образом: введите описание изображения здесь

поэтому ADF выдаст ошибку: свойство документа 'ttl' не должно быть нецифрового типа, если оно есть. Source = Microsoft.DataTransfer.DocumentDbManagement

Я пробовал все способы перевести ttl в целочисленный тип данных, но тщетно. Я чувствую, что Azure меняет тип данных на строковый для всех «дополнительных столбцов», даже если вы установите его как int.

Пожалуйста, помогите всем, что возможно, я могу вставить TTL как int в cosmos DB, большое вам спасибо!




Ответы (1)


Да, даже если вы установите его как int, тип дополнительного столбца будет изменен на String в источнике.

введите описание изображения здесь

В качестве альтернативы вы можете создать триггер Cosmos DB в функции Azure и добавить туда TTL.

person Steve Zhao    schedule 25.11.2020
comment
Спасибо, Стив. Если предположение верно, не уверен, почему Microsoft изменяет все дополнительные столбцы как строку. также не уверен, что какой-либо поток данных временной шкалы можно использовать в Self-Hosted IR. - person Felix Zhang; 27.11.2020