набор данных
Этот случай подходит для мониторинга качества данных на основе пакетных данных, таких как 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