blob: 31afd34665900a470b81398e4d7cc71829ac783d [file] [view]
# DataMap Developer Guide
### Introduction
DataMap is a data structure that can be used to accelerate certain query of the table. Different DataMap can be implemented by developers.
Currently, there are two 2 types of DataMap supported:
1. IndexDataMap: DataMap that leveraging index to accelerate filter query
2. MVDataMap: DataMap that leveraging Materialized View to accelerate olap style query, like SPJG query (select, predicate, join, groupby)
### DataMap provider
When user issues `CREATE DATAMAP dm ON TABLE main USING 'provider'`, the corresponding DataMapProvider implementation will be created and initialized.
Currently, the provider string can be:
1. preaggregate: one type of MVDataMap that do pre-aggregate of single table
2. timeseries: one type of MVDataMap that do pre-aggregate based on time dimension of the table
3. class name IndexDataMapFactory implementation: Developer can implement new type of IndexDataMap by extending IndexDataMapFactory
When user issues `DROP DATAMAP dm ON TABLE main`, the corresponding DataMapProvider interface will be called.