-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle when ignite data schema is different from VUU table schema #1167
Comments
Currently we are experimenting with different ways of specifying the data (entity) schema on Ignite server side.
Looks like the fields defined using QueryEntity has api for getting the field name and values |
It would be good if the table schema we define for this can be used for all other usecases #853 (comment) Started some spikes for ideas here https://github.com/naleeha/vuu/tree/table_ignite_schema_spike |
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - potential design/performance tradeoff: inside IgniteOrderStore.findChilOrder method toChildOrder can be a performance hit, can keep as raw list as we convert back to a list anyways when mapping to row data. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- uses SchemaMapper to build the schema mappings b/w external and internal. - potential design/performance tradeoff: inside IgniteOrderStore.findChilOrder method toChildOrder can be a performance hit, can keep as raw list as we convert back to a list anyways when mapping to row data. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider.
- convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated.
- convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated.
- convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated.
- convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated.
- convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated.
- both does essentially the same lazy eval, the difference is that the Iterator is only for single traversal whereas the other memoises the results. Using Iterator as its simpler and works for our use-cases.
- both does essentially the same lazy eval, the difference is that the Iterator is only for single traversal whereas the other memoises the results. Using Iterator as its simpler and works for our use-cases.
) * #1167 handle when external data schema is different from internal - uses SchemaMapper to build the schema mappings b/w external and internal. - potential design/performance tradeoff: inside IgniteOrderStore.findChilOrder method toChildOrder can be a performance hit, can keep as raw list as we convert back to a list anyways when mapping to row data. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider. * #1167 suggestions from PR review + clean-ups - convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated. * #1167 use Iterator instead of LazyList for lazy eval - both does essentially the same lazy eval, the difference is that the Iterator is only for single traversal whereas the other memoises the results. Using Iterator as its simpler and works for our use-cases.
- allows for cleaner flow of code
- allows for cleaner flow of code
- allows for cleaner flow of code
…invalid indexes
…pper validation
- IgniteEntitySchema's invalid index exception to check for and include all invalid indexes - SchemaMapper validation to not check for missing columns in fields map since there's a use-case (basket constituents) where it makes sense to not specify all internal columns in the fields map.
- allows for cleaner flow of code
- allows for cleaner flow of code
- allows for cleaner flow of code
- IgniteEntitySchema's invalid index exception to check for and include all invalid indexes - SchemaMapper validation to not check for missing columns in fields map since there's a use-case (basket constituents) where it makes sense to not specify all internal columns in the fields map.
- uses SchemaMapper to build the schema mappings b/w external and internal. - potential design/performance tradeoff: inside IgniteOrderStore.findChilOrder method toChildOrder can be a performance hit, can keep as raw list as we convert back to a list anyways when mapping to row data. - Sort + Filters to use the mapper to build SQL queries instead of internal table def. - refactors and improves the flow of IgniteOrderDataProvider. * finos#1167 suggestions from PR review + clean-ups - convert map->filter pipeline to simply a flatMap in SchemaMapper - SchemaMapper to take in separate tableColumns & fields map (external->internal) to allow better separation of concerns around DataModule & DataProvider. - clean-up validation logic for SchemaMapper & IgniteEntitySchemaBuilder - Small refactoring in DataProvider to define vals for HOFs - ExternalStoreEntitySchema to use val instead of def since we're assuming that schemaFields will stay the same once schema's instantiated. * finos#1167 use Iterator instead of LazyList for lazy eval - both does essentially the same lazy eval, the difference is that the Iterator is only for single traversal whereas the other memoises the results. Using Iterator as its simpler and works for our use-cases.
- allows for cleaner flow of code
- IgniteEntitySchema's invalid index exception to check for and include all invalid indexes - SchemaMapper validation to not check for missing columns in fields map since there's a use-case (basket constituents) where it makes sense to not specify all internal columns in the fields map.
- changes mainly around better naming and types, resulting in easier to use API.
- invloves related refactoring and clean-ups in apache-ignite example.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
- changes mainly around better naming and types, resulting in easier to use API.
- invloves related refactoring and clean-ups in apache-ignite example.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
- changes mainly around better naming and types, resulting in easier to use API.
- invloves related refactoring and clean-ups in apache-ignite example.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
- changes mainly around better naming and types, resulting in easier to use API.
- invloves related refactoring and clean-ups in apache-ignite example.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
- changes mainly around better naming and types, resulting in easier to use API.
- invloves related refactoring and clean-ups in apache-ignite example.
- a new apply method without a field->column map param, helpful when there are too many fields and a user wants a simple one-one mapping. - add documentation where required for improved DevEx. - also now we use Array DS for SchemaMapper.toInternalRowMap for constant time access.
Places where we currently need to know the Ignite field names/types are
The text was updated successfully, but these errors were encountered: