Skip to content

start_data_quality_rule_recommendation_run

start_data_quality_rule_recommendation_run(
    data_source: DataSource,
    role: RoleString,
    *,
    config_overrides: Optional[GlueClientConfig] = None,
    number_of_workers: Optional[NullableInteger] = None,
    timeout: Optional[Timeout] = None,
    created_ruleset_name: Optional[NameString] = None,
    data_quality_security_configuration: Optional[NameString] = None,
    client_token: Optional[HashString] = None,
    additional_run_options: Optional[
        DataQualityRuleRecommendationRunAdditionalRunOptions
    ] = None,
    recommendation_mode: Optional[RecommendationMode] = None,
) -> StartDataQualityRuleRecommendationRunResponse

Starts a recommendation run that is used to generate rules when you don't know what rules to write. Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.

Recommendation runs are automatically deleted after 90 days.

Parameters:

  • data_source (DataSource) –

    The data source (Glue table) associated with this run.

  • role (RoleString) –

    The IAM role that Glue assumes to access resources for the run.

    For more information, see Configure IAM permissions for Glue Data Quality.

  • number_of_workers (Optional[NullableInteger], default: None ) –

    The number of G.1X workers to be used in the run. The default is 5.

  • timeout (Optional[Timeout], default: None ) –

    The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

  • created_ruleset_name (Optional[NameString], default: None ) –

    A name for the ruleset.

  • data_quality_security_configuration (Optional[NameString], default: None ) –

    The name of the security configuration created with the data quality encryption option.

  • client_token (Optional[HashString], default: None ) –

    Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

  • additional_run_options (Optional[DataQualityRuleRecommendationRunAdditionalRunOptions], default: None ) –

    Additional run options you can specify for a recommendation run.

  • recommendation_mode (Optional[RecommendationMode], default: None ) –

    The mode that Glue Data Quality uses to recommend rules.

    The default is BASIC.

Raises:

Source code in docs_src/capo_glue/_services/glue.py
def start_data_quality_rule_recommendation_run(
    self,
    data_source: "capo_glue.types.data_source.DataSource",
    role: "capo_glue.types.role_string.RoleString",
    *,
    config_overrides: Optional[GlueClientConfig] = None,
    number_of_workers: Optional[
        "capo_glue.types.nullable_integer.NullableInteger"
    ] = None,
    timeout: Optional["capo_glue.types.timeout.Timeout"] = None,
    created_ruleset_name: Optional["capo_glue.types.name_string.NameString"] = None,
    data_quality_security_configuration: Optional[
        "capo_glue.types.name_string.NameString"
    ] = None,
    client_token: Optional["capo_glue.types.hash_string.HashString"] = None,
    additional_run_options: Optional[
        "capo_glue.types.data_quality_rule_recommendation_run_additional_run_options.DataQualityRuleRecommendationRunAdditionalRunOptions"
    ] = None,
    recommendation_mode: Optional[
        "capo_glue.types.recommendation_mode.RecommendationMode"
    ] = None,
) -> "capo_glue.types.start_data_quality_rule_recommendation_run_response.StartDataQualityRuleRecommendationRunResponse":
    """<p>Starts a recommendation run that is used to generate rules when you don't know what rules to write. Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.</p> <p>Recommendation runs are automatically deleted after 90 days.</p>

    Args:
        data_source: <p>The data source (Glue table) associated with this run.</p>
        role: <p>The IAM role that Glue assumes to access resources for the run.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/data-quality-authorization.html">Configure IAM permissions for Glue Data Quality</a>.</p>
        number_of_workers: <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
        timeout: <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        created_ruleset_name: <p>A name for the ruleset.</p>
        data_quality_security_configuration: <p>The name of the security configuration created with the data quality encryption option.</p>
        client_token: <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        additional_run_options: <p>Additional run options you can specify for a recommendation run.</p>
        recommendation_mode: <p>The mode that Glue Data Quality uses to recommend rules.</p> <p>The default is <code>BASIC</code>.</p>

    Raises:
        capo_glue.errors.conflict_exception.ConflictException: <p>The <code>CreatePartitions</code> API was called on a table that has indexes enabled. </p>
        capo_glue.errors.internal_service_exception.InternalServiceException: <p>An internal service error occurred.</p>
        capo_glue.errors.invalid_input_exception.InvalidInputException: <p>The input provided was not valid.</p>
        capo_glue.errors.operation_timeout_exception.OperationTimeoutException: <p>The operation timed out.</p>
        capo_glue.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_glue.types.start_data_quality_rule_recommendation_run_request.StartDataQualityRuleRecommendationRunRequest]",
    ) -> OperationResponse[
        "capo_glue.types.start_data_quality_rule_recommendation_run_response.StartDataQualityRuleRecommendationRunResponse"
    ]:
        import capo_glue._operations.aws_glue.start_data_quality_rule_recommendation_run

        output, http_response = (
            capo_glue._operations.aws_glue.start_data_quality_rule_recommendation_run.start_data_quality_rule_recommendation_run(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("StartDataQualityRuleRecommendationRun")
    )
    input_: capo_glue.types.start_data_quality_rule_recommendation_run_request.StartDataQualityRuleRecommendationRunRequest = {
        "data_source": data_source,
        "role": role,
    }
    if number_of_workers is not None:
        input_["number_of_workers"] = number_of_workers
    if timeout is not None:
        input_["timeout"] = timeout
    if created_ruleset_name is not None:
        input_["created_ruleset_name"] = created_ruleset_name
    if data_quality_security_configuration is not None:
        input_["data_quality_security_configuration"] = (
            data_quality_security_configuration
        )
    if client_token is not None:
        input_["client_token"] = client_token
    if additional_run_options is not None:
        input_["additional_run_options"] = additional_run_options
    if recommendation_mode is not None:
        input_["recommendation_mode"] = recommendation_mode

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output