在 AWS Glue DataBrew 中以编程方式构建剖析作业配置
在本节中,您可以找到可以通过编程方式使用的剖析作业步骤和功能的描述。您可以从 AWS Command Line Interface(AWS CLI)中使用它们,也可以使用 AWS SDK 之一使用它们。
在剖析作业中,您可以自定义配置以控制 DataBrew 评估数据集的方式。您可以将该配置应用于数据集或将其应用于特定列。您可以在创建剖析作业时构建配置,然后随时对其进行更新。
剖析配置结构包括四个部分:
以下为示例。
{ "ProfileColumns": [ { "Name": "example" }, { "Regex": "example.*" } ], "DatasetStatisticsConfiguration": { "IncludedStatistics": [ "CORRELATION" ], "Overrides": [ { "Statistic": "CORRELATION", "Parameters": { "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]" } } ] }, "ColumnStatisticsConfigurations": [ { "Selectors": [ { "Name": "example" } ], "Statistics": { "IncludedStatistics": [ "CORRELATION", "DUPLICATE_ROWS_COUNT" ], "Overrides": [ { "Statistic": "VALUE_DISTRIBUTION", "Parameters": { "binNumber": "10" } } ] } } ] }
ProfileColumns 部分
在结构的 ProfileColumns 部分,设置要在剖析作业中评估的数据集中的列。ProfileColumns 是列选择器(Selectors)列表。您可以在列选择器中指定列名称或正则表达式。下面是一个示例。
"ProfileColumns": [{"Name": "example"}, {"Regex": "example.*"}]
指定 ProfileColumns 后,只有名称与 ProfileColumns 中的名称或正则表达式匹配的列才会包含在剖析作业中。如果剖析作业不支持选定列的数据类型,则 DataBrew 将在作业运行期间跳过选定列。
如果未定义 ProfileColumns,则剖析作业将评估所有受支持的列。支持的列是包含受支持数据类型的数据的列:ByteType、ShortType、IntegerType、LongType、FloatType、DoubleType、String 或 Boolean。
DatasetStatisticsConfiguration 部分
在结构的 DatasetStatisticsConfiguration 部分,您可以为列间评估构建配置。配置包括 IncludedStatistics 和 Overrides:下面是一个示例。
"DatasetStatisticsConfiguration": { "IncludedStatistics": ["CORRELATION"], "Overrides": [ { "Statistic": "CORRELATION", "Parameters": { "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]" } } ] }
您可以通过向 IncludedStatistics 中添加评估名称来选择想要的评估。下面是一个示例。
"IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"]
指定 IncludedStatistics 时,只有列表中的评估才会包含在剖析作业中。如果未定义 IncludedStatistics,则剖析作业将使用默认设置运行所有受支持的评估。您可以通过向 IncludedStatistics 中添加 NONE 来排除所有评估。下面是一个示例。
"IncludedStatistics": ["NONE"]
数据集级别的可配置统计信息
在结构的 DatasetStatisticsConfiguration 部分,剖析作业支持下表所示的评估。
| 统计数据名称 | 描述 | 支持的数据类型 | 默认状态 | 剖析结果的属性 | 剖析结果的类型 |
|---|---|---|---|---|---|
DUPLICATE_ROWS_COUNT |
数据集中的重复行计数 |
全部 |
启用 |
duplicateRowsCount |
Int |
CORRELATION |
两列之间的 Pearson 相关系数 |
数字 |
启用 |
correlations(在每个选定列中) |
对象 |
在 IncludedStatistics 中,您可以通过添加覆盖来覆盖每个评估的默认设置。每个覆盖项都包括特定评估的名称和参数映射。
在 DatasetStatisticsConfiguration 中,剖析作业支持 CORRELATION 覆盖。此覆盖计算选定列列表中两列之间的 Pearson 相关系数。默认设置是选择前 10 个数字列。您可以指定列数或列选择器列表来覆盖默认设置。
CORRELATION 采用以下参数:
columnNumber– 数字列的数量。剖析作业从数据集中选择前 n 列。此值应大于 1。使用"ALL"可选择所有数字列。columnSelectors:– 列选择器列表。每个选择器可以包含列名或正则表达式。
下面是一个示例。
{ "Statistic": "CORRELATION", "Parameters": { "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]" } }
ColumnStatisticsConfigurations 部分
在结构的 ColumnStatisticsConfigurations 部分,您可以为特定列构建配置。ColumnStatisticsConfigurations 是 ColumnStatisticsConfiguration 设置列表。在 ColumnStatisticsConfiguration 中,有 Selectors(一个列选择器列表)以及用于配置统计信息的 Statistics。下面是一个示例。
{ "Selectors": [{"Name": "example"} ], "Statistics": { "IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"] "Overrides": [ { "Statistic": "VALUE_DISTRIBUTION", "Parameters": { "binNumber": "10" } } ] } }
Selectors 是列选择器列表。与 ProfileColumns 相同,可以在每个列选择器中指定列名或正则表达式。当您指定 Selectors 时,列配置将应用于与 Selectors 中的任何列选择器匹配的列。否则,配置将应用于所有受支持的列。
在 Statistics 中,您可以覆盖选定列的设置。与 DatasetStatisticsConfiguration 相同,Statistics 具有 IncludedStatistics 和 Overrides。
要选择所需的评估,请向 IncludedStatistics 中添加评估名称。
"IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"]
指定 IncludedStatistics 时,只有列表中的评估才会包含在剖析作业中。否则,剖析作业将使用默认设置运行所有受支持的评估。
您可以通过向 IncludedStatistics 中添加 NONE 来排除所有评估。
"IncludedStatistics": ["NONE"]
在某些情况下,在 ColumnStatisticsConfigurations 中可能存在多个不同的配置,它们具有不同的 IncludedStatistics 可应用于同一列。在这些情况下,剖析作业会选择 ColumnStatisticsConfigurations 中的最后一个配置并将其 IncludedStatistics 应用于所选列。新配置将覆盖旧配置。
列级别的可配置统计信息
在 ColumnStatisticsConfigurations 中,剖析作业支持下表所示的评估。
此表中受支持的 number 数据类型意味着该属性的数据类型为以下类型之一:ByteType、ShortType、IntegerTypeLongType、FloatType 或 DoubleType。
| 统计数据名称 | 描述 | 支持的数据类型 | 默认状态 | 剖析结果的属性 | 剖析结果的类型 |
|---|---|---|---|---|---|
– |
列的名称。 |
全部 |
– |
名称 |
字符串 |
– |
列的数据类型。 |
全部 |
– |
类型 |
字符串 |
DISTINCT_VALUES_COUNT |
相异值的数量。相异值是指至少出现一次的值。 |
数字/布尔值/字符串 |
已启用 |
distinctValuesCount |
Int |
ENTROPY |
熵(信息论)。 |
数字/布尔值/字符串 |
已启用 |
entropy |
双精度 |
INTER_QUARTILE_RANGE |
范围介于数字的 25% 和 75% 之间。 |
数字 |
已启用 |
interquartileRange |
双精度 |
KURTOSIS |
列的峰度。 |
数字 |
已启用 |
峰度 |
双精度 |
MAX |
列中的最大值。 |
数字/字符串长度 |
已启用 |
max |
Int/Double |
MAXIMUM_VALUES |
列中的最大值及其计数列表。 |
数字 |
已启用 |
maximumValues |
列表 |
MEAN |
列中值的平均值。 |
数字/字符串长度 |
已启用 |
mean |
双精度 |
MEDIAN |
列中值的中值。 |
数字/字符串长度 |
已启用 |
median |
双精度 |
MEDIAN_ABSOLUTE_DEVIATION |
每个数据点与数值列中值之间绝对差异的中值。 |
数字 |
已启用 |
medianAbsoluteDeviation |
双精度 |
MIN |
列中的最小值。 |
数字/字符串长度 |
已启用 |
min |
Int/Double |
MINIMUM_VALUES |
列中最小值及其计数列表。 |
数字 |
已启用 |
minimumValues |
列表 |
MISSING_VALUES_COUNT |
列中的缺失值数量。Null 和空字符串被视为缺失。 |
全部 |
已启用 |
missingValuesCount |
Int |
MODE |
列中出现频率最高的值。如果经常出现几个值,则模式便是这些值之一。 |
数字/字符串长度 |
已启用 |
mode |
Int/Double |
MOST_COMMON_VALUES |
列中最常见的值列表。 |
数字/布尔值/字符串 |
已启用 |
mostCommonValues |
列表 |
OUTLIER_DETECTION |
通过 Z_score 算法检测列中的异常值。对异常值的数量进行计数,并从检测到的异常值中提取样本列表。 |
数字/字符串长度 |
已启用 |
zScoreOutliersCount、zScoreOutliersSample |
Int/List |
PERCENTILES |
数字列的百分位数值(5%、25%、75%、95%)。 |
数字 |
已启用 |
percentile5、percentile25、percentile75、percentile95 |
双精度 |
RANGE |
列中值的范围。 |
数字 |
已启用 |
range |
Int/Double |
SKEWNESS |
列中值的偏斜。 |
数字 |
已启用 |
skewness |
双精度 |
STANDARD_DEVIATION |
列中值的无偏样本标准差。 |
数字/字符串长度 |
已启用 |
standardDeviation |
双精度 |
SUM |
列中值的总和。 |
数字 |
已启用 |
sum |
Int/Double |
UNIQUE_VALUES_COUNT |
唯一值的数量。唯一值意味着该值仅出现一次。 |
数字/布尔值/字符串 |
已启用 |
uniqueValuesCount |
Int |
VALUE_DISTRIBUTION |
按范围测量列中值的分布。 |
数字/字符串长度 |
已启用 |
valueDistribution |
列表 |
VARIANCE |
列中值的方差。 |
数字 |
已启用 |
variance |
双精度 |
Z_SCORE_DISTRIBUTION |
按范围测量数据点 Z 分数值的分布。 |
数字 |
已启用 |
zScoreDistribution |
列表 |
ZEROS_COUNT |
列中零(0)的数量。 |
数字 |
已启用 |
zerosCount |
Int |
在 IncludedStatistics 中,您可以通过添加覆盖来覆盖每个评估的默认参数。每个覆盖项都包括特定评估的名称和参数映射。
ColumnStatisticsConfigurations 列的参数
在 ColumnStatisticsConfigurations 中,剖析作业支持以下参数。
在某些情况下,在 ColumnStatisticsConfigurations 中可能存在多个不同的配置,它们具有不同的 IncludedStatistics 可应用于同一列。在这些情况下,剖析作业会选择 ColumnStatisticsConfigurations 中的最后一个配置并将其 IncludedStatistics 应用于所选列。新配置将覆盖旧配置。
MAXIMUM_VALUES
列出数值列中的最大值及其计数。默认列表大小为 5。您可以通过指定 sampleSize 的值覆盖列表大小。
设置:
sampleSize:列表的大小,包括数值列中的最大数字和值计数。此值应大于 0。使用 "ALL" 可列出所有值。
示例:
{ "Statistic": "MAXIMUM_VALUES", "Parameters": { "sampleSize": "5" } }
MINIMUM_VALUES
列出数值列中的最小值及其计数。默认列表大小为 5。您可以通过指定 sampleSize 的值覆盖列表大小。
设置:
sampleSize:列表的大小,包括数值列中的最大数字和值计数。此值应大于 0。使用 "ALL" 可列出所有值。
示例:
{ "Statistic": "MINIMUM_VALUES", "Parameters": { "sampleSize": "5" } }
MOST_COMMON_VALUES
列出列中最常见的值及其计数。默认列表大小为 50。您可以通过指定 sampleSize 的值覆盖列表大小。
设置:
sampleSize:列表的大小,包括数值列中的最大数字和值计数。此值应大于 0。使用 "ALL" 可列出所有值。
示例:
{ "Statistic": "MOST_COMMON_VALUES", "Parameters": { "sampleSize": "50" } }
OUTLIER_DETECTION
通过 Z 分数算法检测数值列或字符串列中的异常值(基于字符串长度)。
您的剖析作业会对异常值的数量进行计数,并生成异常值及其 Z 分数的样本列表。该样本列表按 Z 分数的绝对值进行排序。默认列表大小为 50。
当一个值与均值的偏差超过标准差阈值时,Z 分数算法会将其标识为异常值。默认异常值阈值为 3。
您可以再提供一个阈值(即轻度阈值)以获取更多信息。轻度阈值应小于阈值。默认情况下,此功能处于关闭状态。如果指定了轻度阈值,则剖析作业会再返回一个计数,即 zScoreMildOutliersCount。此外,zScoreOutliersSample 在这种情况下可以包括一个轻度阈值异常值样本。
设置:
threshold:要在检测异常值时使用的阈值。此值应大于或等于 0。mildThreshold:要检测异常值时使用的轻度阈值。此值应大于或等于 0 并小于threshold。sampleSize:列中包含异常值的列表的大小。使用"ALL"可列出所有值。
示例:
{ "Statistic": "OUTLIER_DETECTION", "Parameters": { "threshold": "5", "mildThreshold": "3.5", "sampleSize": "20" } }
VALUE_DISTRIBUTION
按值范围测量列中值的分布。剖析作业按数值范围将数值列或字符串列(基于字符串长度)中的值分组到分箱,并生成分箱列表。分箱连续排列,存储桶的上限值是下一个存储桶的下限值。
设置:
binNumber:分箱数量。此值应大于 0。
示例:
{ "Statistic": "VALUE_DISTRIBUTION", "Parameters": { "binNumber": "5" } }
Z_SCORE_DISTRIBUTION
测量值的 Z 分数在数值列中的分布。剖析作业按数值范围将值的 Z 分数分组到分箱中,并生成分箱列表。分箱连续排列,存储桶的上限值是下一个存储桶的下限值。
设置:
binNumber:分箱数量。此值应大于 0。
示例:
{ "Statistic": "Z_SCORE_DISTRIBUTION", "Parameters": { "binNumber": "5" } }
用于配置 PII 的 EntityDetectorConfiguration 部分
在结构 EntityDetectorConfiguration 部分中,您可以为剖析作业配置数据集中希望 DataBrew 将其检测为个人身份信息(PII)的实体类型。
EntityTypes
您为剖析作业配置您希望 DataBrew 检测为 PII 的实体类型。未定义 EntityDetectorConfiguration 时,禁用实体检测。可以在您的数据集中检测到以下实体类型:
USA_SSN
EMAIL
USA_ITIN
USA_PASSPORT_NUMBER
PHONE_NUMBER
USA_DRIVING_LICENSE
BANK_ACCOUNT
CREDIT_CARD
IP_ADDRESS
MAC_ADDRESS
USA_DEA_NUMBER
USA_HCPCS_CODE
USA_NATIONAL_PROVIDER_IDENTIFIER
USA_NATIONAL_DRUG_CODE
USA_HEALTH_INSURANCE_CLAIM_NUMBER
USA_MEDICARE_BENEFICIARY_IDENTIFIER
USA_CPT_CODE
PERSON_NAME
DATE
还支持实体类型组 USA_ALL,它包括除了 PERSON_NAME 和 DATE 之外的所有上述实体类型。
EntityTypes 的类型是一个字符串数组。
AllowedStatistics
配置允许在包含检测到的实体的列上运行的统计信息。如果未定义 AllowedStatistics,则不会对包含检测到的实体的列计算统计信息。有关 AllowedStatistics 参数的有效值列表,请参阅列级别的可配置统计信息。
AllowedStatistics 的类型是一个 AllowedStatistics 对象数组。