Class DLPDeidentifyText

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.beam.sdk.transforms.display.HasDisplayData

    public abstract class DLPDeidentifyText
    extends org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​java.lang.String>>,​org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​com.google.privacy.dlp.v2.DeidentifyContentResponse>>>
    A PTransform connecting to Cloud DLP (https://cloud.google.com/dlp/docs/libraries) and deidentifying text according to provided settings. The transform supports both columnar delimited input data (eg. CSV) and unstructured input.

    If the headerColumns property is set and a sideinput with table headers is added to the PTransform, delimiter also should be set, else the results will be incorrect. If headerColumns is neither set nor passed as side input, input is assumed to be unstructured.

    Either deidentifyTemplateName (String) or deidentifyConfig DeidentifyConfig need to be set. inspectTemplateName and inspectConfig (InspectConfig are optional.

    Batch size defines how big are batches sent to DLP at once in bytes.

    The transform consumes KV of Strings (assumed to be filename as key and contents as value) and outputs KV of String (eg. filename) and DeidentifyContentResponse, which will contain Table of results for the user to consume.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.Integer DLP_PAYLOAD_LIMIT_BYTES  
      • Fields inherited from class org.apache.beam.sdk.transforms.PTransform

        annotations, displayData, name, resourceHints
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​com.google.privacy.dlp.v2.DeidentifyContentResponse>> expand​(org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​java.lang.String>> input)
      The transform converts the contents of input PCollection into Table.Rows and then calls Cloud DLP service to perform the deidentification according to provided settings.
      abstract int getBatchSizeBytes()
      Returns size of input elements batch to be sent to Cloud DLP service in one request.
      abstract @Nullable java.lang.String getColumnDelimiter()
      Returns delimiter to be used when splitting values from input strings into columns.
      abstract @Nullable com.google.privacy.dlp.v2.DeidentifyConfig getDeidentifyConfig()
      Returns configuration object for deidentification.
      abstract @Nullable java.lang.String getDeidentifyTemplateName()
      Returns template name for data deidentification.
      abstract @Nullable org.apache.beam.sdk.values.PCollectionView<java.util.List<java.lang.String>> getHeaderColumns()
      Returns list of column names if the input KV value is a delimited row.
      abstract @Nullable com.google.privacy.dlp.v2.InspectConfig getInspectConfig()
      Returns configuration object for data inspection.
      abstract @Nullable java.lang.String getInspectTemplateName()
      Returns template name for data inspection.
      abstract java.lang.String getProjectId()
      Returns ID of Google Cloud project to be used when deidentifying data.
      static DLPDeidentifyText.Builder newBuilder()  
      • Methods inherited from class org.apache.beam.sdk.transforms.PTransform

        addAnnotation, compose, compose, getAdditionalInputs, getAnnotations, getDefaultOutputCoder, getDefaultOutputCoder, getDefaultOutputCoder, getKindString, getName, getResourceHints, populateDisplayData, setDisplayData, setResourceHints, toString, validate, validate
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • DLP_PAYLOAD_LIMIT_BYTES

        public static final java.lang.Integer DLP_PAYLOAD_LIMIT_BYTES
    • Constructor Detail

      • DLPDeidentifyText

        public DLPDeidentifyText()
    • Method Detail

      • getInspectTemplateName

        public abstract @Nullable java.lang.String getInspectTemplateName()
        Returns template name for data inspection.
      • getDeidentifyTemplateName

        public abstract @Nullable java.lang.String getDeidentifyTemplateName()
        Returns template name for data deidentification.
      • getInspectConfig

        public abstract @Nullable com.google.privacy.dlp.v2.InspectConfig getInspectConfig()
        Returns configuration object for data inspection. If present, supersedes the template settings.
      • getDeidentifyConfig

        public abstract @Nullable com.google.privacy.dlp.v2.DeidentifyConfig getDeidentifyConfig()
        Returns configuration object for deidentification. If present, supersedes the template.
      • getHeaderColumns

        public abstract @Nullable org.apache.beam.sdk.values.PCollectionView<java.util.List<java.lang.String>> getHeaderColumns()
        Returns list of column names if the input KV value is a delimited row.
      • getColumnDelimiter

        public abstract @Nullable java.lang.String getColumnDelimiter()
        Returns delimiter to be used when splitting values from input strings into columns.
      • getBatchSizeBytes

        public abstract int getBatchSizeBytes()
        Returns size of input elements batch to be sent to Cloud DLP service in one request.
      • getProjectId

        public abstract java.lang.String getProjectId()
        Returns ID of Google Cloud project to be used when deidentifying data.
      • expand

        public org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​com.google.privacy.dlp.v2.DeidentifyContentResponse>> expand​(org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​java.lang.String>> input)
        The transform converts the contents of input PCollection into Table.Rows and then calls Cloud DLP service to perform the deidentification according to provided settings.
        Specified by:
        expand in class org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​java.lang.String>>,​org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.KV<java.lang.String,​com.google.privacy.dlp.v2.DeidentifyContentResponse>>>
        Parameters:
        input - input PCollection
        Returns:
        PCollection after transformations