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

Apache Kylin : Analytical Data Warehouse for Big Data

Page tree

Welcome to Kylin Wiki.


Query Engine Diagram QueryConnection Connection getConnection(String project); «SchemaFactory»OLAPSchemaFactory Schema create(SchemaPlus parentSchema, String schemaName, Map<String, Object> operand); «AbstractSchema»OLAPSchema Map<String, Table> getTableMap(); // OLAPTable «AbstractQueryableTable, TranslatableTable»OLAPTable RelNode toRel(ToRelContext context, RelOptTable relOptTable) // return OLAPTableScan<T> Queryable<T> asQueryable(QueryProvider queryProvider, SchemaPlus schema, String tableName);Enumerable<Object[]> executeOLAPQuery(DataContext optiqContext, int ctxSeq) «AbstractEnumerable<Object[]>, Enumerable<Object[]>»OLAPQuery Enumerator<Object[]> enumerator() ; // return OLAPEnumerator OLAPTableScan «Enumerator<Object[]>»OLAPEnumerator Object[] current()boolean moveNext()void convertCurrentRow(ITuple tuple) // Here, ITuple is converted into Object arrayITupleIterator queryStorage() IStorageQuery ITupleIterator search(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo); «Iterator<ITuple>»ITupleIterator SQLDigest GTCubeStorageQueryBase GTCubeStorageQueryRequest getStorageQueryRequest(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo) IGTStore GTInfo getInfo();IGTWriter rebuild() throws IOException;IGTWriter append() throws IOException;IGTScanner scan(GTScanRequest scanRequest) throws IOException; IGTScanner GTInfo getInfo();Iterator<GTRecord> iterator(); Iterable_GTRecord GTScanRequest GTRecord ByteArray[] cols;GTInfo info; Comparable_GTRecord CuboidToGridTableMapping GTAggregateScanner Tuple «IEvaluatableTuple»ITuple List<TblColRef> getAllColumns();Object[] getAllValues(); IEvaluatableTuple Object getValue(TblColRef col); TupleFilter TupleInfo Map<String, Integer> fieldMap;Map<TblColRef, Integer> columnMap; Baz // Generated code call OLAPEnumerator#moveNext Register factory method to prepare all schema asQueryable() toRel() enumerator() Connect Point from Calcite side to Storage Layer side Return GridRecord into Calcite moveNext and process


  • No labels