簡體   English   中英

如何對存儲在 RECORD 或 REPEATED 屬性中的 BigQuery 數據進行去標識化?

[英]How to de-identify BigQuery data that stored in RECORD or REPEATED properties?

我正在嘗試構建一個對 BigQuery 表中的數據進行去標識化的 Dataflow 管道。 我正在構建com.google.privacy.dlp.v2.Table object 並將其傳遞給 ContentItem ,如下所示:

List<Field> fieldList = new ArrayList<>(
                bigquery
                        .getTable(table)
                        .getDefinition()
                        .getSchema()
                        .getFields());
  
    List<Table.Row> rows = new ArrayList<>();
    for (FieldValueList bigQueryRowItem : bigquery
            .listTableData(table)
            .getValues()) {
        Table.Row row = convertBigQueryRowToTableRow(bigQueryRowItem);
        rows.add(row);
    }
    Table dlpTable = Table
            .newBuilder()
            .addAllHeaders(convertFieldsToHeaders(fieldList))
            .addAllRows(rows)
            .build();

但不幸的是,此fieldList僅包含第一級 BigQuery 屬性,沒有 RECORD 或 REPEATED 屬性。 請告訴我如何有效地從表中獲取所有字段的名稱,包括 RECORD/REPEATED,以及如何有效地將 BigQuery 值轉換為Table.Row 謝謝

目前,這是通過以下兩種方式之一完成的:

將字段展平為列。 所以記錄

  RecordA {Field1, Field2} becomes 2 columns, RecordA.Field1 and RecordA.Field2

對於重復的字段,您可以執行相同的操作或將字段值連接到一個單元格中。

RecordA { Field1: {value1,value2,value3] } becomes 3 columns .... RecordA.Field1[0], RecordA.Field2[1], and RecordA.Field3[2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM