dremio ce kernel 提供的一些配置类
dremio ce kernel 包提供了不少对于dremio的扩展类,比如规则,parquet 读取,以及反射处理的,以下是一个简单说明
参考配置
标准的sabot-module.conf 文件
dremio: {
classpath.scanning {
packages += "com.dremio.extra.exec.store.dfs"
packages += "com.dremio.exec.planner.acceleration.substitution"
}
plugins : {
dfs.rulesfactory: com.dremio.extra.exec.store.dfs.FileVectorizedRulesFactory
parquet.factory: com.dremio.extra.exec.store.dfs.parquet.VectorizedReaderFactory
parquet.input_stream_factory: com.dremio.extra.exec.store.dfs.parquet.SmartStreamFactory
iceberg.manifests.input_stream_factory: com.dremio.extra.exec.store.dfs.iceberg.AsyncSeekableInputStreamFactory
}
exec: {
substitution.factory: "com.dremio.exec.planner.acceleration.substitution.DremioSubstitutionProviderFactory"
}
reflection {
planning.node-stripper.class: "com.dremio.exec.planner.acceleration.normalization.AdvancedNodeStripper"
materialization.descriptor.factory: "com.dremio.reflection.AdvancedMaterializationDescriptorFactory"
}
}
配置类的加载
使用了typesafe 的配置加载,以及动态类创建
// 比如InputStreamProviderFactory 的加载
this.factory = context.getConfig().getInstance(InputStreamProviderFactory.KEY, InputStreamProviderFactory.class, InputStreamProviderFactory.DEFAULT);
说明
ce-kernel 中的一些包还是比较重要的,尤其是在分析dremio 执行的时候,了解一些类的分布还是比较重要的,可以方便了解内部机制