Class ExternalSourceResolver
java.lang.Object
org.elasticsearch.xpack.esql.datasources.ExternalSourceResolver
Resolver for external data sources (Iceberg tables, Parquet files, etc.).
This runs in parallel with IndexResolver to resolve external source metadata.
Following the same pattern as IndexResolver, this resolver:
- Takes a list of external source paths to resolve
- Performs I/O operations to fetch metadata (from S3/Iceberg catalogs)
- Returns ExternalSourceResolution containing resolved metadata
- Runs asynchronously to avoid blocking
Registry-based resolution: This resolver iterates the ExternalSourceFactory
instances collected by DataSourceModule to find the first factory that can handle
a given path. File-based sources (Parquet, CSV) are handled by the framework-internal
FileSourceFactory registered as a catch-all fallback.
Configuration handling: Query parameters are converted to a generic Map<String, Object>
instead of source-specific classes like S3Configuration. This allows the SPI to remain generic
while source-specific implementations can interpret the configuration as needed.
-
Constructor Summary
ConstructorsConstructorDescriptionExternalSourceResolver(Executor executor, DataSourceModule dataSourceModule) ExternalSourceResolver(Executor executor, DataSourceModule dataSourceModule, Settings settings) ExternalSourceResolver(Executor executor, DataSourceModule dataSourceModule, Settings settings, ExternalSourceCacheService cacheService) -
Method Summary
Modifier and TypeMethodDescriptionvoidresolve(List<String> paths, Map<String, Map<String, Expression>> pathParams, Map<String, List<PartitionFilterHintExtractor.PartitionFilterHint>> filterHints, ActionListener<ExternalSourceResolution> listener) voidresolve(List<String> paths, Map<String, Map<String, Expression>> pathParams, ActionListener<ExternalSourceResolution> listener)
-
Constructor Details
-
ExternalSourceResolver
-
ExternalSourceResolver
public ExternalSourceResolver(Executor executor, DataSourceModule dataSourceModule, Settings settings) -
ExternalSourceResolver
public ExternalSourceResolver(Executor executor, DataSourceModule dataSourceModule, Settings settings, @Nullable ExternalSourceCacheService cacheService)
-
-
Method Details
-
resolve
public void resolve(List<String> paths, Map<String, Map<String, Expression>> pathParams, ActionListener<ExternalSourceResolution> listener) -
resolve
public void resolve(List<String> paths, Map<String, Map<String, Expression>> pathParams, @Nullable Map<String, List<PartitionFilterHintExtractor.PartitionFilterHint>> filterHints, ActionListener<ExternalSourceResolution> listener)
-