paul-rogers commented on a change in pull request #2026: DRILL-7330: Implement
metadata usage for all format plugins
URL: https://github.com/apache/drill/pull/2026#discussion_r392623969
##########
File path:
exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/easy/EasyGroupScan.java
##########
@@ -124,13 +127,16 @@ public EasyGroupScan(
// use file system metadata provider without specified schema and
statistics
metadataProviderManager = new FileSystemMetadataProviderManager();
}
- SimpleFileTableMetadataProviderBuilder builder =
- (SimpleFileTableMetadataProviderBuilder)
metadataProviderManager.builder(
- MetadataProviderManager.MetadataProviderKind.SCHEMA_STATS_ONLY);
+ DrillFileSystem fs =
+
ImpersonationUtil.createFileSystem(ImpersonationUtil.resolveUserName(userName),
formatPlugin.getFsConf());
- this.metadataProvider = builder.withLocation(selection.getSelectionRoot())
+ this.metadataProvider =
tableMetadataProviderBuilder(metadataProviderManager)
+ .withSelection(selection)
+ .withFileSystem(fs)
.build();
+ this.usedMetastore = metadataProviderManager.usesMetastore();
initFromSelection(selection, formatPlugin);
+ checkMetadataConsistency(selection, formatPlugin.getFsConf());
Review comment:
This has been nagging at me. For Parquet, metadata includes both partition
information and information about the insides of files (row groups, etc.) But,
for files other than Parquet, there is no useful information in metadata about
file contents. As a result, all of the benefit of metadata is to assist with
partition pruning. Metadata avoids the need to walk the directory tree.
However, in order to ensure that the metadata is consistent we... walk the
directory tree.
So, for files other than Parquet, are we gaining anything (other than more
complexity) by using metadata if we must check the tree on each query?
There *is* a gain if we can trust the metadata and avoid the walk of the
directory tree. (See comments elsewhere which no longer appear in this code
view since my comments overlapped with your next round of changes.)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services