AWS Glue 데이터 품질은 AWS Glue의 미리 보기 릴리스이므로 변경될 수 있습니다. |
패키지: com.amazonaws.services.glue.dq
object EvaluateDataQuality
def apply
def apply(frame: DynamicFrame,
ruleset: String,
publishingOptions: JsonOptions = JsonOptions.empty): DynamicFrame
DynamicFrame
을 기준으로 데이터 품질 규칙 세트를 평가하고 새 DynamicFrame
을 평가 결과와 함께 반환합니다. AWS Glue 데이터 품질에 대한 자세한 내용은 AWS Glue Data Quality 섹션을 참조하세요.
-
frame
- 데이터 품질을 평가하려는DynamicFrame
입니다. -
ruleset
- 문자열 형식의 DQDL(데이터 품질 정의 언어) 규칙 세트입니다. DQDL에 대한 자세한 내용은 데이터 품질 정의 언어(DQDL) 참조 안내서를 참조하세요. -
publishingOptions
- 평가 결과 및 지표를 게시하기 위해 다음 옵션을 지정하는 사전입니다.-
dataQualityEvaluationContext
- AWS Glue가 Amazon CloudWatch 지표와 데이터 품질 결과를 게시할 네임스페이스를 지정하는 문자열입니다. 집계된 지표는 CloudWatch에 표시되고 전체 결과는 AWS Glue Studio 인터페이스에 표시됩니다.-
필수 항목 여부: 아니요
-
기본 값:
default_context
-
-
enableDataQualityCloudWatchMetrics
- 데이터 품질 평가 결과를 CloudWatch에 게시할지 여부를 지정합니다.dataQualityEvaluationContext
옵션을 사용하여 지표의 네임스페이스를 지정합니다.-
필수 항목 여부: 아니요
-
기본값: False
-
-
enableDataQualityResultsPublishing
- AWS Glue Studio 인터페이스의 Data Quality(데이터 품질) 탭에 데이터 품질 결과를 표시할지 여부를 지정합니다.-
필수 항목 여부: 아니요
-
기본값: True
-
-
resultsS3Prefix
- AWS Glue가 데이터 품질 평가 결과를 기록할 수 있는 Amazon S3 위치를 지정합니다.-
필수 항목 여부: 아니요
-
기본값: ""(빈 문자열)
-
-
예
다음 예제 코드는SelectFields
변환을 수행하기 전에 DynamicFrame
의 데이터 품질을 평가하는 방법을 보여줍니다. 스크립트는 변환을 시도하기 전에 모든 데이터 품질 규칙이 통과하는지 확인합니다.
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.MappingSpec
import com.amazonaws.services.glue.errors.CallSite
import com.amazonaws.services.glue.util.GlueArgParser
import com.amazonaws.services.glue.util.Job
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.spark.SparkContext
import scala.collection.JavaConverters._
import com.amazonaws.services.glue.dq.EvaluateDataQuality
object GlueApp {
def main(sysArgs: Array[String]) {
val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
// @params: [JOB_NAME]
val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray)
Job.init(args("JOB_NAME"), glueContext, args.asJava)
// Create DynamicFrame with data
val Legislators_Area = glueContext.getCatalogSource(database="legislators", tableName="areas_json", transformationContext="S3bucket_node1").getDynamicFrame()
// Define data quality ruleset
val DQ_Ruleset = """
Rules = [ColumnExists "id"]
"""
// Evaluate data quality
val DQ_Results = EvaluateDataQuality.apply(frame=Legislators_Area, ruleset=DQ_Ruleset, publishingOptions=JsonOptions("""{"dataQualityEvaluationContext": "Legislators_Area", "enableDataQualityMetrics": "true", "enableDataQualityResultsPublishing": "true"}"""))
assert(DQ_Results.filter(_.getField("Outcome").contains("Failed")).count == 0, "Failing DQ rules for Legislators_Area caused the job to fail.")
// Script generated for node Select Fields
val SelectFields_Results = Legislators_Area.selectFields(paths=Seq("id", "name"), transformationContext="Legislators_Area")
Job.commit()
}
}