Мне нужно получить даты последнего изменения файлов для файлов озера данных в SSIS

У меня есть задача SSIS, которая считывает файлы JSON из озера данных Azure, анализирует их с помощью команды десериализации в задаче сценария и создает их копии в виде таблиц на локальном сервере SQL.

Это происходит хорошо, но очень медленно. На импорт одного каталога у меня уходит 6 часов, а их много.

Поэтому я решил делать это постепенно.

Сначала я использовал условное разделение, чтобы избежать записи старых записей на локальный SQL-сервер, но это по-прежнему требовало временных затрат на чтение всего файла. А условное разделение - забавный компонент, я заметил, что он просто пропускает некоторые записи без причины. Фигово.

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

Теперь я знаю, что есть несколько методов .Net для этого на простом C # (Операции файловой системы в Azure Data Lake Storage 1-го поколения с использованием .NET SDK), но поскольку я использую компонент сценария SSIS, у меня уже есть действительное подключение к данным Озеро. Должно быть намного проще, правда?

Но я не мог найти способ, я ценю любое руководство отсюда.

Ваше здоровье


person EnisAkin    schedule 24.07.2019    source источник


Ответы (1)


Если вы пытаетесь отсортировать файлы по дате изменения с помощью тега Задача Data Lake Store в SSIS вам не повезет с фильтрацией загружаемых файлов по дате изменения - у вас нет такое осознание.

Если вы загружаете данные в SSIS через задачу «Сценарий», то вы в лучшей форме. Вы можете использовать SDK или использовать стандартный REST API. REST API использует спецификации HDFS REST. https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=GETFILESTATUS вернет измененную метку времени, как и SDK.

Возможно, вам удастся объединить два, чтобы получить аналогичный результат, придерживаясь источника хранилища данных SSIS - используйте задачу сценария с условным условием, чтобы определить, следует ли запускать источник и его нисходящий поток. Это зависит от того, как устроен ваш пакет.

person SamaraSoucy    schedule 25.07.2019