在不启动 VM 实例的情况下,是否可以将 PGP 加密添加到 Azure Lake Lake Store 中已有的数据?从理论上讲,这似乎可以通过 U-SQL 中注册的 c# 二进制文件 (dll) 来实现,但从理论上讲,这需要将文件视为 blob(或文本),我不确定如何从 U-SQL 中做到这一点?
用例是从湖中获取数据,使用公钥将其加密为 PGP/GPG,然后将数据放入 ADLS 位置以供外部团队拾取(随后从 ADLS 出口)。
有什么想法吗?
您可以编写一个自定义提取器和输出器,然后可以执行解密/加密。这很可能看起来像这样(在抽象级别):
-
提取:
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 页面的示例部分中有一些示例,演示如何在基流级别对数据进行操作。
如果可以的话,您将希望避免将超过500MB的数据加载到主内存中。因此,如果加密/解密可以以流式方式完成,那就太好了。