Шифрование PGP в U-SQL и/или Azure Data Lake Store

Можно ли добавить шифрование PGP к данным, которые уже находятся в Azure Lake Lake Store, без развертывания экземпляра виртуальной машины? Теоретически кажется, что это должно быть возможно с зарегистрированным двоичным файлом С# (dll) в U-SQL, но теоретически это потребует обработки файлов как больших двоичных объектов (или как текста), и я не уверен, как это сделать из U-SQL ?

Сценарий использования состоит в том, чтобы взять данные из озера, зашифровать их как PGP/GPG с помощью открытого ключа, а затем передать данные в местоположение ADLS для получения внешней командой (последующий выход из ADLS).

Есть идеи?


person aaronsteers    schedule 17.05.2018    source источник
comment
Возможно, относится к: stackoverflow.com/questions/4192296 (C#+PGP)   -  person aaronsteers    schedule 17.05.2018


Ответы (1)


Вы можете написать собственный экстрактор и средство вывода, которые затем могут выполнять расшифровку/шифрование. Скорее всего, это будет выглядеть примерно так (на абстрактном уровне):

  • Экстрактор:

    AtomicFileProcessing=true
    d = decrypt(input.baseStream)
    for each row in d.Split do outputrow end // or whatever the right processing is
    
  • Выход:

    AtomicFileProcessing=true
    serialize rows into outputstream
    encrypt outputstream and write to output
    

Обратите внимание, что в разделе примеров на нашей странице U-SQL GitHub есть несколько примеров, которые показывают, как работать с данными на уровне базового потока.

Вы захотите избежать загрузки более 500 МБ данных в основную память, если сможете. Поэтому было бы хорошо, если бы шифрование/дешифрование можно было выполнять в потоковом режиме.

person Michael Rys    schedule 17.05.2018