public DimensionDictionary getDimensionDictionary() { return dictionaries.getDimensionDictionary(); }
/** * The dictionary of configured dimensions. * * @return A dictionary of dimensions */ default DimensionDictionary getDimensionDictionary() { return getResourceDictionaries().getDimensionDictionary(); }
/** * Load the Dimensions, Metrics, and Tables. */ public void load() { dimensionLoader.loadDimensionDictionary(dictionaries.getDimensionDictionary()); // metric loader might dependent on dimension dictionary, so load dimension first metricLoader.loadMetricDictionary(dictionaries.getMetricDictionary(), dictionaries.getDimensionDictionary()); tableLoader.loadTableDictionary(dictionaries); LOG.info("Initialized ConfigurationLoader"); LOG.info(dictionaries.toString()); }
@Override public ConfigPhysicalTable build(ResourceDictionaries dictionaries, DataSourceMetadataService metadataService) { try { Map<ConfigPhysicalTable, Set<String>> tableMetricNamesMap = getTableToMetricsMap(dictionaries); validateDependentMetrics(tableMetricNamesMap); return new BaseCompositePhysicalTable( getName(), getTimeGrain(), buildColumns(dictionaries.getDimensionDictionary()), tableMetricNamesMap.keySet(), getLogicalToPhysicalNames(), MetricUnionAvailability.build( tableMetricNamesMap.keySet(), tableMetricNamesMap.entrySet().stream() .collect(Collectors.toMap( entry -> entry.getKey().getAvailability(), Map.Entry::getValue ))) ); } catch (IllegalArgumentException e) { String message = String.format(VALIDATION_ERROR_FORMAT, e.getMessage()); LOG.error(message); throw new IllegalArgumentException(message); } }
Set<Column> columns = buildColumns(dictionaries.getDimensionDictionary()); Set<String> metricNames = Utils.getSubsetByType(columns, MetricColumn.class).stream() .map(MetricColumn::getName)
@Override public ConfigPhysicalTable build(ResourceDictionaries dictionaries, DataSourceMetadataService metadataService) { Map<ConfigPhysicalTable, DataSourceFilter> availabilityFilters = tablePartDefinitions.entrySet().stream() .collect(Collectors.toMap( entry -> dictionaries.getPhysicalDictionary().get(entry.getKey().asName()), entry -> new DimensionIdFilter(toDimensionValuesMap( entry.getValue(), dictionaries.getDimensionDictionary() )) )); return new BaseCompositePhysicalTable( getName(), getTimeGrain(), buildColumns(dictionaries.getDimensionDictionary()), availabilityFilters.keySet(), getLogicalToPhysicalNames(), PartitionAvailability.build(availabilityFilters) ); }
@Override public ConfigPhysicalTable build( ResourceDictionaries dictionaries, DataSourceMetadataService metadataService ) { return new PermissivePhysicalTable( getName(), getTimeGrain(), buildColumns(dictionaries.getDimensionDictionary()), getLogicalToPhysicalNames(), metadataService ); } }
@Override public ConfigPhysicalTable build(ResourceDictionaries dictionaries, DataSourceMetadataService metadataService) { return new StrictPhysicalTable( getName(), getTimeGrain(), buildColumns(dictionaries.getDimensionDictionary()), getLogicalToPhysicalNames(), metadataService, getExpectedStartDate(), getExpectedEndDate() ); } }
@Override public ConfigPhysicalTable build(ResourceDictionaries dictionaries, DataSourceMetadataService metadataService) { return new SqlPhysicalTable( getName(), getTimeGrain(), buildColumns(dictionaries.getDimensionDictionary()), getLogicalToPhysicalNames(), new EternalAvailability(DataSourceName.of(getName().asName()), metadataService), schemaName, timestampColumn ); }