Google 云 DLP Api InspectResult

Google Cloud DLP Api InspectResult

美好的一天!

我正在使用云 dlp api 通过将数据块转换为 ContentItem 并将其传递给检查请求来检查 bigquery 视图。但是,我在转换结果并将其保存到大查询 table 时遇到了问题。之前,我为此使用了 airflow DLP 运算符,它是通过在 InspectConfig 中传递输出存储配置自动完成的。但是,这种方法将不再适用,因为我在 java.

中使用 apache beam 为每个数据块调用 DLP api

我看到查找对象有一个 writeTo() 方法,但我不确定如何使用它以及如何将具有正确类型的查找结果保存到 bigquery table。你能帮我吗?我目前卡住了。谢谢!

我想做的是这样的

for (Finding res : result.getFindingsList()){
        TableRow bqRow = new TableRow();
        Object data = res.getLocation();
        bqRow.set("field", data);
        context.output(bqRow);
}

但这种方法不会将其保存在具有正确类型的 bigquery 中,尤其是对于 getLocation,因为它 returns 类似于 protobuf 消息类型。

我想看看我是否可以使用 writeTo() 方法,但我不确定如何使用它。预先感谢您的帮助!

for (Finding res : result.getFindingsList()){
        res.writeTo(...)
        ...
        context.output(...);
}

如果您使用 HybridInspect,我们会为您将结果存储到 BigQuery。

https://cloud.google.com/dlp/docs/how-to-hybrid-jobs

如果你自己做,你需要转换成原生的 BQ 格式,比如 json

Load protobuf data to bigquery