Я получаю непрерывные файлы больших двоичных объектов в хранилище больших двоичных объектов. Мне нужно загрузить в Databricks и поместить в базу данных SQL Azure. Фабрика данных для организации этого конвейера

Я постоянно получаю данные в хранилище BLOB-объектов. У меня изначально есть 5 файлов больших двоичных объектов в хранилище больших двоичных объектов, которые я могу загрузить из большого двоичного объекта в базу данных SQL Azure с помощью Databricks и автоматизировать его с помощью фабрики данных, но проблема в том, что когда новые файлы поступают в хранилище больших двоичных объектов, модули данных загружают эти файлы вместе со старыми файлы и отправляет их в базу данных SQL Azure. Мне не нужны эти старые файлы, каждый раз мне нужен только новый, чтобы одни и те же данные не загружались снова и снова в базу данных SQL Azure.


person karthik    schedule 25.11.2019    source источник
comment
Используйте триггер большого двоичного объекта для привязки функции обратного вызова, как описано здесь - docs.microsoft.com/en-us/azure/azure-functions/   -  person Arun Selin    schedule 25.11.2019
comment
Эта ссылка дает вам представление о том, как использовать Event Grid для запуска веб-конечных точек в ответ на события в хранилище BLOB-объектов - docs.microsoft.com/en-us/azure/event-grid/   -  person Arun Selin    schedule 25.11.2019
comment
Привет, @ArunSelin, я буду использовать блоки данных. Приветствуется любой код Spark Scala, который я могу выполнить в записной книжке databricks.   -  person karthik    schedule 25.11.2019
comment
@ArunSelin Я использую блоки данных для преобразования данных blob и помещаю их в базу данных SQL. Но проблема в том, что когда это автоматизировано с использованием ADF, я снова вижу старые данные blob, загруженные в sql.   -  person karthik    schedule 25.11.2019


Ответы (1)


Самый простой способ сделать это - просто заархивировать файл, который вы только что прочитали, в новую папку с именем archiveFolder. Скажем, ваш databricks читает из следующего каталога:

mnt
  sourceFolder
    file1.txt
    file2.txt
    file3.txt

Вы запускаете свой код, вы загружаете файлы и загружаете их на SQL-сервер. Затем вы можете просто заархивировать эти файлы (переместить их из sourceFolder в archiveFolder. Это можно просто сделать в блоках данных, используя следующую команду

dbutils.fs.mv(sourcefilePath, archiveFilePath, True)

Итак, в следующий раз, когда ваш код будет запущен, у вас будут только новые файлы в вашем sourceFolder.

person BICube    schedule 29.11.2019