public BloomCoarseGrainDataMapFactory(CarbonTable carbonTable, DataMapSchema dataMapSchema) throws MalformedDataMapCommandException { super(carbonTable, dataMapSchema); Objects.requireNonNull(carbonTable); Objects.requireNonNull(dataMapSchema); this.dataMapName = dataMapSchema.getDataMapName(); List<CarbonColumn> indexedColumns = carbonTable.getIndexedColumns(dataMapSchema); this.bloomFilterSize = validateAndGetBloomFilterSize(dataMapSchema); this.bloomFilterFpp = validateAndGetBloomFilterFpp(dataMapSchema); this.bloomCompress = validateAndGetBloomCompress(dataMapSchema); List<ExpressionType> optimizedOperations = new ArrayList<ExpressionType>(); // todo: support more optimize operations optimizedOperations.add(ExpressionType.EQUALS); optimizedOperations.add(ExpressionType.IN); this.dataMapMeta = new DataMapMeta(this.dataMapName, indexedColumns, optimizedOperations); LOGGER.info(String.format("DataMap %s works for %s with bloom size %d", this.dataMapName, this.dataMapMeta, this.bloomFilterSize)); try { this.cache = CacheProvider.getInstance() .createCache(new CacheType("bloom_cache"), BloomDataMapCache.class.getName()); } catch (Exception e) { LOGGER.error(e); throw new MalformedDataMapCommandException(e.getMessage()); } }
public LuceneDataMapFactoryBase(CarbonTable carbonTable, DataMapSchema dataMapSchema) throws MalformedDataMapCommandException { super(carbonTable, dataMapSchema); Objects.requireNonNull(carbonTable.getAbsoluteTableIdentifier()); Objects.requireNonNull(dataMapSchema); this.tableIdentifier = carbonTable.getAbsoluteTableIdentifier(); this.dataMapName = dataMapSchema.getDataMapName(); // validate DataMapSchema and get index columns indexedCarbonColumns = carbonTable.getIndexedColumns(dataMapSchema);; flushCacheSize = validateAndGetWriteCacheSize(dataMapSchema); storeBlockletWise = validateAndGetStoreBlockletWise(dataMapSchema); // add optimizedOperations List<ExpressionType> optimizedOperations = new ArrayList<ExpressionType>(); // optimizedOperations.add(ExpressionType.EQUALS); // optimizedOperations.add(ExpressionType.GREATERTHAN); // optimizedOperations.add(ExpressionType.GREATERTHAN_EQUALTO); // optimizedOperations.add(ExpressionType.LESSTHAN); // optimizedOperations.add(ExpressionType.LESSTHAN_EQUALTO); // optimizedOperations.add(ExpressionType.NOT); optimizedOperations.add(ExpressionType.TEXT_MATCH); this.dataMapMeta = new DataMapMeta(indexedCarbonColumns, optimizedOperations); // get analyzer // TODO: how to get analyzer ? analyzer = new StandardAnalyzer(); }