Glue / Client / create_data_quality_evaluation_config
create_data_quality_evaluation_config¶
- Glue.Client.create_data_quality_evaluation_config(**kwargs)¶
Creates a data quality evaluation configuration, which evaluates the data quality of a collection of tables in the Glue Data Catalog once, on a schedule, or when table metadata changes. A configuration applies to a catalog, a database, or a single table, and evaluates every table in scope, including tables added later, without per-table setup.
When configurations at more than one level apply to the same table, the most specific configuration applies. Each table is evaluated at most once an hour, whichever triggers you choose.
See also: AWS API Documentation
Request Syntax
response = client.create_data_quality_evaluation_config( Name='string', Level='CATALOG'|'DATABASE'|'TABLE', DataSource={ 'GlueTables': { 'CatalogId': 'string', 'DatabaseName': 'string', 'TableNamePattern': 'string', 'PreProcessingQuery': 'string', 'ConnectionName': 'string', 'AdditionalOptions': { 'string': 'string' } } }, RulesetName='string', ManagedRulesetName='SIMPLE'|'ADVANCED', Triggers=[ 'ONCE'|'SCHEDULE'|'METADATA_CHANGE', ], ScheduleExpression='string', StartAt=datetime(2015, 1, 1), EndAt=datetime(2015, 1, 1), Role='string', NumberOfWorkers=123, Timeout=123, AdditionalRunOptions={ 'CloudWatchMetricsEnabled': True|False, 'ResultsS3Prefix': 'string', 'CompositeRuleEvaluationMethod': 'COLUMN'|'ROW', 'RowLevelResults': { 'MaxRowsToWrite': 123, 'ResultType': 'ALL'|'PASSED_ONLY'|'FAILED_ONLY', 'CatalogTableConfig': { 'DatabaseName': 'string', 'TableName': 'string', 'S3Location': 'string', 'CatalogId': 'string' } }, 'ProfilingResults': { 'WriteProfilingResultsEnabled': True|False, 'CatalogTableConfig': { 'DatabaseName': 'string', 'TableName': 'string', 'S3Location': 'string', 'CatalogId': 'string' }, 'DistributionResults': { 'WriteDistributionResultsEnabled': True|False, 'CatalogTableConfig': { 'DatabaseName': 'string', 'TableName': 'string', 'S3Location': 'string', 'CatalogId': 'string' } } }, 'ObservationScope': 'ALL'|'NONE', 'ObservationMode': 'SCHEDULED'|'FIXED', 'DataQualityRuleResults': { 'WriteDataQualityRuleResultsEnabled': True|False, 'CatalogTableConfig': { 'DatabaseName': 'string', 'TableName': 'string', 'S3Location': 'string', 'CatalogId': 'string' } }, 'ObservationResults': { 'WriteObservationResultsEnabled': True|False, 'CatalogTableConfig': { 'DatabaseName': 'string', 'TableName': 'string', 'S3Location': 'string', 'CatalogId': 'string' } }, 'CustomLogGroupPrefix': 'string' }, AdditionalDataSources={ 'string': { 'GlueTable': { 'DatabaseName': 'string', 'TableName': 'string', 'CatalogId': 'string', 'ConnectionName': 'string', 'AdditionalOptions': { 'string': 'string' } }, 'DataQualityGlueTable': { 'DatabaseName': 'string', 'TableName': 'string', 'CatalogId': 'string', 'ConnectionName': 'string', 'AdditionalOptions': { 'string': 'string' }, 'PreProcessingQuery': 'string' } } }, Tags={ 'string': 'string' }, ClientToken='string' )
- Parameters:
Name (string) –
[REQUIRED]
A name for the data quality evaluation configuration. The name must be unique within your account.
Level (string) –
[REQUIRED]
The Glue Data Catalog hierarchical level that the configuration applies to. Valid values are
CATALOG,DATABASE, andTABLE.DataSource (dict) –
[REQUIRED]
The catalog, database, or table that the configuration applies to, as specified by
Level.GlueTables (dict) –
The Glue Data Catalog tables that the configuration applies to.
CatalogId (string) – [REQUIRED]
A unique identifier for the Glue Data Catalog.
DatabaseName (string) –
A database name in the Glue Data Catalog.
TableNamePattern (string) –
For the
CATALOGandDATABASElevels, a glob pattern, such asorders_*, that selects tables. If you don’t specify a pattern, every table at the level is in scope. For theTABLElevel, the name of the table.PreProcessingQuery (string) –
SQL Query of SparkSQL format that can be used to pre-process the data for the table in Glue Data Catalog, before running the Data Quality Operation.
For the
CATALOGandDATABASElevels, use the{{DATABASE_NAME}}and{{TABLE_NAME}}placeholders, which are filled in for each table.ConnectionName (string) –
The name of the connection to the Glue Data Catalog.
AdditionalOptions (dict) –
Options for reading the table. The following keys are supported:
pushDownPredicate: to filter on partitions without having to list and read all the files in your dataset.catalogPartitionPredicate: to use server-side partition pruning using partition indexes in the Glue Data Catalog.
(string) –
(string) –
RulesetName (string) – The name of a Data Quality Definition Language (DQDL) ruleset, containing analyzers, rules, or both, to evaluate tables with. You create the ruleset using the
CreateDataQualityRulesetAPI. Specify eitherRulesetNameorManagedRulesetName, not both.ManagedRulesetName (string) –
A built-in ruleset that profiles each table, used when
RulesetNameis not set. The default isSIMPLE. Choose from the following built-in rulesets:SIMPLE
Row count and column count, completeness, minimum, and maximum for every column, mean, sum, and standard deviation for numeric columns, and column length for string columns.
ADVANCED
Every statistic in
SIMPLE, plus distribution, uniqueness, and distinct values count.Triggers (list) –
When the configuration evaluates tables. You can choose one or more triggers, and each table is evaluated at most once an hour. The default is
ONCE. Choose from the following triggers:ONCE
Evaluates each table one time, including when tables are added to a database or catalog.
SCHEDULE
Evaluates each table on the cron or rate expression in
ScheduleExpression, between the optionalStartAtandEndAttimes.METADATA_CHANGE
Evaluates a table whenever its Glue Data Catalog metadata changes, such as a schema change or an Apache Iceberg commit.
(string) –
ScheduleExpression (string) – A cron or rate expression, in UTC, for the
SCHEDULEtrigger, for examplecron(0 6 * * ? *). The schedule can run at most once an hour.StartAt (datetime) – The time from which the schedule runs, inclusive.
EndAt (datetime) – The time at which the schedule stops running, exclusive.
Role (string) –
[REQUIRED]
The IAM role that evaluations assume. You can specify the role name or the role Amazon Resource Name (ARN).
The role must allow the
glue.amazonaws.comservice principal to assume it, and needs permissions to read the catalog (glue:GetCatalog,glue:GetDatabase,glue:GetTable,glue:SearchTables, andglue:GetPartitions), read and create rulesets (glue:GetDataQualityRulesetandglue:CreateDataQualityRuleset), start evaluations (glue:StartDataQualityRulesetEvaluationRun,glue:PublishDataQuality, andiam:PassRoleon the role itself), read the tables’ data in Amazon S3, and write logs to Amazon CloudWatch Logs. If a catalog-level or database-level configuration applies to an Amazon S3 Tables catalog, the role also needss3tables:ListTableBucketsands3tables:ListTables. If you use Lake Formation, the role needs theDESCRIBEpermission on the tables.NumberOfWorkers (integer) – The number of
G.1Xworkers to be used in the run. The default is 5.Timeout (integer) – The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters
TIMEOUTstatus. The default is 2,880 minutes (48 hours).AdditionalRunOptions (dict) –
Additional run options you can specify for an evaluation run.
CloudWatchMetricsEnabled (boolean) –
Specifies whether to enable CloudWatch metrics.
ResultsS3Prefix (string) –
Prefix for Amazon S3 to store results.
CompositeRuleEvaluationMethod (string) –
Set the evaluation method for composite rules in the ruleset to ROW/COLUMN
RowLevelResults (dict) –
The configuration for writing row-level evaluation results to a Glue Data Catalog table.
MaxRowsToWrite (integer) –
The maximum number of rows to write in the results.
ResultType (string) –
The result type to include in the row-level results output.
CatalogTableConfig (dict) –
The Glue Data Catalog table configuration for storing the results.
DatabaseName (string) –
The name of the database in the Glue Data Catalog.
TableName (string) –
The name of the table in the Glue Data Catalog.
S3Location (string) –
The Amazon S3 location for storing the results.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
ProfilingResults (dict) –
The configuration for writing profiling results to a Glue Data Catalog table.
WriteProfilingResultsEnabled (boolean) –
Set to true to write profiling results.
CatalogTableConfig (dict) –
The Glue Data Catalog table configuration for storing the profiling results.
DatabaseName (string) –
The name of the database in the Glue Data Catalog.
TableName (string) –
The name of the table in the Glue Data Catalog.
S3Location (string) –
The Amazon S3 location for storing the results.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
DistributionResults (dict) –
The configuration for writing distribution results.
WriteDistributionResultsEnabled (boolean) –
Set to true to write distribution results.
CatalogTableConfig (dict) –
The Glue Data Catalog table configuration for storing the distribution results.
DatabaseName (string) –
The name of the database in the Glue Data Catalog.
TableName (string) –
The name of the table in the Glue Data Catalog.
S3Location (string) –
The Amazon S3 location for storing the results.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
ObservationScope (string) –
The scope of the observation for the evaluation run. Specifies whether anomaly detection is enabled or disabled.
ObservationMode (string) –
The observation mode for the evaluation run. Specifies how anomaly detection bounds are calculated.
DataQualityRuleResults (dict) –
The configuration for writing rule results to a Glue Data Catalog table.
WriteDataQualityRuleResultsEnabled (boolean) –
Set to true to write data quality rule results.
CatalogTableConfig (dict) –
The Glue Data Catalog table configuration for storing the rule results.
DatabaseName (string) –
The name of the database in the Glue Data Catalog.
TableName (string) –
The name of the table in the Glue Data Catalog.
S3Location (string) –
The Amazon S3 location for storing the results.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
ObservationResults (dict) –
The configuration for writing observation results to a Glue Data Catalog table.
WriteObservationResultsEnabled (boolean) –
Set to true to write observation results.
CatalogTableConfig (dict) –
The Glue Data Catalog table configuration for storing the observation results.
DatabaseName (string) –
The name of the database in the Glue Data Catalog.
TableName (string) –
The name of the table in the Glue Data Catalog.
S3Location (string) –
The Amazon S3 location for storing the results.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
CustomLogGroupPrefix (string) –
A custom prefix for the CloudWatch log group names. When specified, evaluation run logs are written to
<CustomLogGroupPrefix>/errorand<CustomLogGroupPrefix>/outputinstead of the default/aws-glue/data-quality/errorand/aws-glue/data-quality/outputlog groups.
AdditionalDataSources (dict) –
A map of reference strings to additional data sources you can specify for an evaluation run.
(string) –
(dict) –
A data source (an Glue table) for which you want data quality results.
GlueTable (dict) –
An Glue table.
DatabaseName (string) – [REQUIRED]
A database name in the Glue Data Catalog.
TableName (string) – [REQUIRED]
A table name in the Glue Data Catalog.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
ConnectionName (string) –
The name of the connection to the Glue Data Catalog.
AdditionalOptions (dict) –
Additional options for the table. Currently there are two keys supported:
pushDownPredicate: to filter on partitions without having to list and read all the files in your dataset.catalogPartitionPredicate: to use server-side partition pruning using partition indexes in the Glue Data Catalog.
(string) –
(string) –
DataQualityGlueTable (dict) –
An Glue table for Data Quality Operations.
DatabaseName (string) – [REQUIRED]
A database name in the Glue Data Catalog.
TableName (string) – [REQUIRED]
A table name in the Glue Data Catalog.
CatalogId (string) –
A unique identifier for the Glue Data Catalog.
ConnectionName (string) –
The name of the connection to the Glue Data Catalog.
AdditionalOptions (dict) –
Additional options for the table. Currently there are two keys supported:
pushDownPredicate: to filter on partitions without having to list and read all the files in your dataset.catalogPartitionPredicate: to use server-side partition pruning using partition indexes in the Glue Data Catalog.
(string) –
(string) –
PreProcessingQuery (string) –
SQL Query of SparkSQL format that can be used to pre-process the data for the table in Glue Data Catalog, before running the Data Quality Operation.
Tags (dict) –
A list of tags applied to the data quality evaluation configuration.
(string) –
(string) –
ClientToken (string) –
A unique, case-sensitive identifier that you provide to ensure the operation completes no more than one time. If this token matches a previous request, the service ignores the request, but does not return an error.
This field is autopopulated if not provided.
- Return type:
dict
- Returns:
Response Syntax
{ 'Name': 'string', 'EvaluationRunMode': 'ON_DEMAND'|'EVALUATION_CONFIG' }
Response Structure
(dict) –
Name (string) –
The name of the data quality evaluation configuration.
EvaluationRunMode (string) –
The evaluation run mode of the configuration’s results, which is
EVALUATION_CONFIG.
Exceptions