Добавить данные в существующий файл в Azure хранилище озера данных из REST API - PullRequest
0 голосов
/ 12 апреля 2020

Я настроил конвейер, который извлекает данные из REST API и помещает их в хранилище ADLS gen1, я также вижу сгенерированные файлы

REST API> ADF конвейер (получить токен на предъявителя + Копировать деятельность)> ADLS

Но когда из этого API поступают новые данные, данные заменяют текущее содержимое в этом файле, а не добавляются в последнюю строку каждый раз, когда

есть какие-либо Dynami c действие, которое мне нужно предоставить или что-то? Может кто-нибудь, пожалуйста, направьте меня в правильном направлении.

Примечание: я могу видеть содержимое файла, без ошибок вообще

1 Ответ

0 голосов
/ 13 апреля 2020

Учитывая природу хранилища BLOB-объектов, я не думаю, что это возможно при стандартной операции копирования. Azure BLOB-объекты имеют несколько типов, наиболее распространенным из которых является BlockBlob, который почти наверняка является типом, генерируемым операциями ADF. BlockBlob не может быть изменен или обновлен, только перезаписан, что объясняет поведение, которое вы испытываете. Чтобы обновить содержимое большого двоичного объекта, оно должно быть определено как AppendBlob, который позволяет добавлять новое содержимое. Тип AppendBlob должен быть объявлен при создании BLOB-объекта.

Единственный известный мне способ выполнения sh этого (как создания AppendBlob, так и добавления к нему содержимого) - через Azure Storage SDK, который включает классы и методы, определяющие c для работы с AppendBlobs. Эта операция потребует некоторого пользовательского кода (я предполагаю, что консольное приложение C#) для доступа к учетной записи хранения и добавления к BLOB-объекту. Чтобы включить это в свой конвейер, вам нужно будет заменить действие «Копирование» на действие «Пользовательское», которое выполнит ваш код C# в учетной записи Azure Batch.

Альтернативой для рассмотрения является разрешение операция копирования для создания нового большого двоичного объекта каждый раз вместо попытки работать с одним большим двоичным объектом. Озера данных и MPP в целом рассчитаны на одновременную работу со многими файлами, поэтому в зависимости от вашего варианта использования это может быть более разумным подходом.

...