4. Мониторинг качества Apache Griffin на основе пакетных данных Hive.

визуализация данных

набор данных

Этот случай подходит для мониторинга качества данных на основе пакетных данных, таких как hive и HDFS, в качестве источников данных.

Предположим, у нас есть набор данных (demo_src), разделенный по часам, и мы хотим знать, как выглядят данные за каждый час.

Для простоты предположим, что оба набора данных имеют одинаковую схему:

id                      bigint                                      
age                     int                                         
desc                    string                                      
dt                      string                                      
hour                    string 

dt и час - оба раздела,

Поскольку каждый день у нас есть ежедневный раздел dt (например, 20180912),

Каждый день у нас есть 24-часовые разделы (например, 00, 01, 02, ..., 23).

Подготовка окружающей среды

Подготовьте среду для измерительного модуля Apache Griffin, включая следующие компоненты:

  • JDK (1.8+)
  • Hadoop (2.6.0+)
  • Spark (2.2.1+)
  • Hive (2.2.0)

Подробный процесс настройки вышеуказанных компонентов см.griffin/griffin-doc/deploy, В этой статье предполагается, что указанная выше среда настроена. Информацию о сопоставлении версий см.GitHub.com/Apache/повседневная служба…

Создание модуля измерения Apache Griffin

1. ВздесьЗагрузите исходный пакет Apache Griffin. 2. Разархивируйте исходный пакет.

unzip griffin-0.4.0-source-release.zip
cd griffin-0.4.0-source-release

3. Создайте банку Apache Griffin

mvn clean install

и переместите встроенный пакет apache griffin jar в путь к проекту

mv measure/target/measure-0.4.0.jar <work path>/griffin-measure.jar

подготовка данных

Чтобы быстро приступить к работе, мы создадим таблицу данных куста demo_src.

--create hive tables here. hql script
--Note: replace hdfs location with your own path
CREATE EXTERNAL TABLE `demo_src`(
  `id` bigint,
  `age` int,
  `desc` string) 
PARTITIONED BY (
  `dt` string,
  `hour` string)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '|'
LOCATION
  'hdfs:///griffin/data/batch/demo_src';

Формат данных примерно такой:

1|18|student
2|23|engineer
3|42|cook
...

можно скачатьдемонстрационные данныеи выполните ./gen_demo_data.sh, чтобы получить файл источника данных. Затем мы загружаем данные в таблицу кустов каждый час.

Определение показателей качества данных

Конфигурация среды Apache GriffinФайл конфигурации среды: env.json

{
  "spark": {
    "log.level": "WARN"
  },
  "sinks": [
    {
      "type": "console"
    },
    {
      "type": "hdfs",
      "config": {
        "path": "hdfs:///griffin/persist"
      }
    },
    {
      "type": "elasticsearch",
      "config": {
        "method": "post",
        "api": "http://es:9200/griffin/accuracy"
      }
    }
  ]
}

Определение качества данных грифона (DQ)Файл конфигурации DQ: dq.json

{
  "name": "batch_prof",
  "process.type": "batch",
  "data.sources": [
    {
      "name": "src",
      "baseline": true,
      "connectors": [
        {
          "type": "hive",
          "version": "1.2",
          "config": {
            "database": "default",
            "table.name": "demo_tgt"
          }
        }
      ]
    }
  ],
  "evaluate.rule": {
    "rules": [
      {
        "dsl.type": "griffin-dsl",
        "dq.type": "profiling",
        "out.dataframe.name": "prof",
        "rule": "src.id.count() AS id_count, src.age.max() AS age_max, src.desc.length().max() AS desc_length_max",
        "out": [
          {
            "type": "metric",
            "name": "prof"
          }
        ]
      }
    ]
  },
  "sinks": ["CONSOLE", "HDFS"]
}

Качество данных измерений

Отправьте задание измерения в Spark с путем к файлу конфигурации в качестве параметра.

spark-submit --class org.apache.griffin.measure.Application --master yarn --deploy-mode client --queue default \
--driver-memory 1g --executor-memory 1g --num-executors 2 \
<path>/griffin-measure.jar \
<path>/env.json <path>/dq.json

Метрики качества данных отчетов

Журнал расчета можно получить в консоли, а индикатор результата можно распечатать после завершения задания. Метрики также будут сохранены в hdfs: hdfs:///griffin/persist///_METRICS.

Оптимизация отчетов о качестве данных

Показатели качества данных также могут быть дополнительно уточнены на основе результатов, а также фактических потребностей бизнеса.

Подробное значение каждого параметра конфигурации метрик см.griffin/griffin-doc/measure