天天看点

Dremio使用数据反射提高查询响应

1.描述

Dremio的数据反射是基于Apache Parquet和Apache Arrow的高性能柱状数据结构,用来维护源数据的物理优化,可直观理解为关系数据库中的索引;Data Reflections使用列化,压缩,排序,分区和聚合数据等技术,组织和优化Dremio查询执行引擎的数据;所以的反射数据都存在于Dremio的Reflection Store中,及如下配置项:

## 可配置本地或HDFS等远程存储

paths: {
  # the local path for dremio to store data.
  local: ${DREMIO_HOME}"/data"

  # the distributed path Dremio data including job results, downloads, uploads, etc
  #dist: "pdfs://"${paths.local}"/pdfs"
}           

2.数据反射的类型

a).Raw reflections(原始反射)

原始反射包括Raw数据集中的一个或多个字段,按特定字段排序,分区和分布

b).Aggregation reflections(聚合反射)

聚合反射包括Raw数据集中的一个或多个维度和度量字段,按指定字段排序,分区和分布

c).External reflections(外部反射)

外部反射是一种非托管反射,允许用户利用外部系统中内置的现有数据集和汇总表作为Dremio中的反射

3.创建数据反射

a).选择数据源

Dremio使用数据反射提高查询响应

b).配置反射

Dremio使用数据反射提高查询响应

c).反射执行任务

任务概括

Dremio使用数据反射提高查询响应

任务执行明细

Dremio使用数据反射提高查询响应

任务资源

Dremio使用数据反射提高查询响应

4.验证反射

a).反射前聚合查询

Dremio使用数据反射提高查询响应
Dremio使用数据反射提高查询响应

b).反射后聚合查询

Dremio使用数据反射提高查询响应
Dremio使用数据反射提高查询响应

c).数据反射结果

数据反射可以明细提高聚合查询的响应时间,但同时配置了数据反射会增加反射数据的磁盘占用;这也是一种以空间换时间的业务理念。