Can I JOIN directly on a SOURCE in RisingWave or must I materialize the source first?
I am wondering if I can perform a JOIN directly on a SOURCE in RisingWave or if I need to materialize the source in order for the data to be available for future JOIN operations.
Yes, you can create a JOIN on a SOURCE in RisingWave without the need to materialize the source first.
When you create a JOIN in a materialized view, RisingWave will ingest historical data from the source and maintain the view with future data from the source.
The historical data will be ingested into the system only once.
New data streamed to the source will trigger updates on the materialized views that include the JOIN operation.
RisingWave has dependencies on materialized views, ensuring consistent refresh of dependent MVs.
Currently, RisingWave does not support predicates on creating sources directly, but you can create a source first and then apply a time filter in a materialized view.