THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!

Apache Kylin : Analytical Data Warehouse for Big Data

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Render Macro
aligncenter
titleQuery Engine Diagram


'============================================================

'============================================================

' Schema/Connection Related


class QueryConnection {

    Connection getConnection(String project);

}



class OLAPSchemaFactory <<SchemaFactory>> {

    Schema create(SchemaPlus parentSchema, String schemaName, Map<String, Object> operand);

}


class OLAPSchema <<AbstractSchema>> {

    Map<String, Table> getTableMap(); // OLAPTable


}


class OLAPTable <<AbstractQueryableTable, TranslatableTable>>{

    RelNode toRel(ToRelContext context, RelOptTable relOptTable) // return OLAPTableScan

     <T> Queryable<T> asQueryable(QueryProvider queryProvider, SchemaPlus schema, String tableName); // OLAPQuery // OLAPEnumerator

}


class OLAPQuery << AbstractEnumerable<Object[]>, Enumerable<Object[]> >> {

    Enumerator<Object[]> enumerator() ; // return OLAPEnumerator

}



QueryConnection -- OLAPSchemaFactory : "Register factory method to prepare all schema" >

OLAPSchemaFactory -- OLAPSchema

OLAPSchema -- OLAPTable

OLAPTable -- OLAPQuery : "asQueryable" >

OLAPTable -- OLAPTableScan : "toRel" >

OLAPQuery -- OLAPEnumerator : "enumerator" > 


'============================================================

'============================================================

' Storage Related Code


interface IStorageQuery {

    ITupleIterator search(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo);

}



interface ITupleIterator  << Iterator<ITuple> >> {

}



abstract class GTCubeStorageQueryBase implements IStorageQuery {


}






'============================================================

'============================================================

' Calcite Related Code



class OLAPEnumerator  << Enumerator<Object[]> >> {


}


...