View a markdown version of this page

Qualidade de dados do Amazon EMR - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Qualidade de dados do Amazon EMR

O Amazon EMR Data Quality, desenvolvido pela AWS Glue Data Quality, permite medir e monitorar a qualidade dos dados que suas cargas de trabalho do Amazon EMR Spark leem e gravam sem sair do aplicativo Spark. O Amazon EMR Data Quality usa o mesmo mecanismo Deequ de código aberto do Glue Data Quality. AWS Começando com o tempo de execução da AWS para Apache Spark (emr-spark-8.1.0) no Amazon EMR, você pode avaliar a qualidade dos dados diretamente nos aplicativos do Amazon EMR Spark adicionando a transformação ao seu script do Spark. EvaluateDataQuality A transformação executa um conjunto de regras declarativo em relação a você DataFrame e retorna o resultado por regra em andamento, para que seu aplicativo possa agir de acordo com o resultado (por exemplo, abortando uma gravação posterior quando uma regra falha). Cada avaliação também é publicada no AWS Glue Data Quality, para que você possa revisar o histórico de suas corridas e alertá-las junto com as execuções do AWS Glue ETL e do AWS Glue Data Catalog.

Usar o Amazon EMR Data Quality requer um aplicativo Spark e um conjunto de regras escritos em Data Quality Definition Language (DQDL). Nenhuma outra programação é necessária além do fluxo de trabalho existente do Spark.

A qualidade de dados do Amazon EMR está disponível em todos os três modos de implantação do Amazon EMR: Amazon EMR no EC2, Amazon EMR no EKS e Amazon EMR Serverless. Ele é compatível somente com o Apache Spark.

Como funciona a qualidade de dados

A qualidade de dados do Amazon EMR é uma transformação do Spark. Você passa um conjunto de regras DQDL DataFrame e um; ele avalia as regras e retorna um dos resultados. DataFrame Cada avaliação também é publicada no AWS Glue Data Quality para que você possa consultar o resultado posteriormente por meio das APIs ou do console do AWS Glue. AWS O Glue ETL e o AWS Glue Data Catalog são publicados na mesma loja, para que você possa comparar execuções do Amazon EMR com execuções de qualquer um desses mecanismos.

Você define suas expectativas de qualidade de dados como um conjunto de regras declarativo escrito na referência da Data Quality Definition Language (DQDL). Um conjunto de regras é um conjunto de regras que descrevem as propriedades esperadas de um conjunto de dados. Por exemplo, o conjunto de regras a seguir verifica se uma tabela tem mais de 100 linhas, se sua customer_id coluna é completa e exclusiva e se a country coluna foi extraída de um conjunto fixo de valores.

Rules = [ RowCount > 100, IsComplete "customer_id", IsUnique "customer_id", ColumnValues "country" in ["US", "CA", "MX"] ]

Em tempo de execução, a EvaluateDataQuality transformação lê sua DataFrame, avalia cada regra com o mesmo mecanismo Deequ usado pelo AWS Glue Data Quality e pelo AWS Glue Data Catalog e retorna o resultado (PassedFailed, ouError) de cada regra. As regras com falha incluem o valor observado para que você possa fazer a triagem delas sem executar novamente o aplicativo. O resultado é um Spark no qual DataFrame seu aplicativo pode se ramificar, registrar ou persistir.

O Data Quality também publica cada avaliação no serviço AWS Glue Data Quality. A partir daí, você pode:

  • Consulte resultados históricos com as APIs AWS Glue Data Quality (GetDataQualityResultV2ListDataQualityResultsV2,,BatchGetDataQualityResultV2) ou com o AWS CLI console AWS Glue.

  • Veja a execução no console do AWS Glue na tabela do Catálogo de Dados do AWS Glue, validada quando seu aplicativo é publishToDataCatalogTarget configurado. A execução aparece na guia Qualidade de dados do banco de dados e da tabela especificados, junto com as execuções do AWS Glue ETL que têm como alvo a mesma tabela.

  • Ative a detecção de anomalias ao longo da série temporal das estatísticas produzidas por cada execução.

Como os resultados podem ser publicados na mesma loja usada pelo AWS Glue Data Quality, você pode correlacionar as execuções nos mecanismos de computação. As execuções que compartilham um EvaluationContext (um identificador de string que você passa para a transformação) aparecem como um único conjunto de dados lógico no console e no treinamento de detecção de anomalias, independentemente de terem vindo de um aplicativo Amazon EMR Spark ou de uma tarefa do Glue ETL. AWS

Conceitos e terminologia

Os termos a seguir aparecem ao longo deste capítulo e nas APIs e no console do AWS Glue Data Quality.

Regra

Uma única afirmação declarativa sobre um conjunto de dados, escrita em DQDL. Por exemplo, RowCount > 1000 ou IsUnique "order_id". Cada regra é avaliada comoPassed,Failed, ouError.

Conjunto de regras

Uma coleção nomeada de regras que são avaliadas em conjunto em uma única chamada paraEvaluateDataQuality.

Analyzer do MongoDB

Uma estatística que é calculada para um conjunto de dados sem declarar um resultado positivo ou reprovado, por exemplo. Mean "order_total" Os analisadores aceleram os limites das regras e treinam o modelo de detecção de anomalias. Consulte Analisadores.

Pontuação de qualidade de dados

A porcentagem de regras em um conjunto de regras que foi aprovada em uma determinada execução, calculada como. rules passed / (rules passed + rules failed) Regras de que erros e observações não contribuem para a pontuação. A pontuação é retornada pelas APIs AWS Glue Data Quality e, quando seu aplicativo é configuradopublishToDataCatalogTarget, aparece no console do AWS Glue na guia Qualidade de dados da tabela de catálogo atribuída.

Observação

Um valor sinalizado pela detecção de anomalias como fora da faixa prevista. As observações não reduzem a pontuação de qualidade dos dados. Consulte Detecção de anomalias.

EvaluationContext

Um identificador de sequência de caracteres que agrupa execuções do mesmo conjunto de dados lógico nos mecanismos de computação. Execuções que compartilham e EvaluationContext alimentam o mesmo modelo de detecção de anomalias e aparecem juntas no console AWS Glue. Consulte Comparando execuções no Amazon EMR e AWS União.

Publicação

A etapa que grava o resultado de uma EvaluateDataQuality execução no serviço AWS Glue Data Quality para que ele possa ser lido posteriormente por meio das APIs AWS Glue Data Quality e do console AWS Glue. A publicação é ativada por padrão e controlada pela enableDataQualityResultsPublishing chave de entradapublishing_options. Cada publicação é codificada porEvaluationContext, o identificador que a detecção de anomalias e a comparação entre mecanismos usam para agrupar execuções. Quando o aplicativo também é configuradopublishToDataCatalogTarget, a execução é atribuída a uma tabela de catálogo e aparece na guia Qualidade de dados dessa tabela no console AWS Glue.

DQDL

Linguagem de definição de qualidade de dados, a linguagem declarativa usada para criar conjuntos de regras de qualidade de dados. Consulte Avaliação de regras e DQDL.

Onde validar em seu funil

Você pode invocar em EvaluateDataQuality qualquer lugar em um script do Spark. Os três padrões comuns são:

  • Pre-validation. Avalie a entrada bruta imediatamente após a leitura. Use isso para falhar rapidamente em problemas iniciais (arquivos ausentes, desvio de esquema, tabelas vazias) antes de gastar a computação no resto do aplicativo.

  • Validação em linha. Avalie um intermediário DataFrame entre as transformações. Use isso para verificar a saída de uma etapa específica (por exemplo, após uma junção ou agregação).

  • Post-validation. Avalie o final DataFrame antes de escrever na pia. Use isso para bloquear uma publicação posterior do resultado: ramifique na Outcome coluna e aborte a gravação se alguma regra falhar.

O PySpark trecho a seguir contém uma descrição do resultado de uma avaliação pós-validação.

results = EvaluateDataQuality.apply( frame=final_df, ruleset=ruleset, publishing_options={ "dataQualityEvaluationContext": "orders_daily", "enableDataQualityResultsPublishing": True, }, ) failed = results.filter("Outcome in ('Failed', 'Error')").count() if failed > 0: raise RuntimeError(f"{failed} data quality rules failed or errored; aborting write") final_df.write.mode("overwrite").parquet("s3://amzn-s3-demo-bucket/orders_curated/")

Limites

  • Um único conjunto de regras pode conter até 2.000 regras.

  • A fonte DQDL serializada de um conjunto de regras não deve ser maior que 65 KB.

  • A Qualidade de Dados coleta estatísticas quando você cria uma regra ou um analisador. Não há custo associado ao armazenamento dessas estatísticas. No entanto, há um limite de 100.000 estatísticas por conta, e essas estatísticas serão mantidas por no máximo dois anos.

  • A qualidade de dados é compatível com aplicativos Apache Spark somente no Amazon EMR. Ele não funciona em Hive, Trino, Flink ou outros mecanismos que não sejam do Spark compatíveis com o Amazon EMR.