SQL Stream Builder architecture
The SQL Stream Builder (SSB) service is integrated on Cloudera Data Platform (CDP) and connected to Flink and its services. The SSB architecture includes Streaming SQL Console, SQL Stream Engine and Materialized View Engine. These main components within SSB are responsible for executing jobs, populating topics, creating metadata and querying data that happens in the background.
- SQL Stream Engine
- Streaming SQL Console
- Materialized View Engine
When a Materialized View query is submitted, Flink generates the data to the Materialized View database from which the Materialized View Engine queries the required data.
The primary point of user interaction for SQL Stream Builder is the Console component. When you submit a query using the Streaming SQL Console, a Flink job is automatically created in the background on the cluster. SSB also requires a Kafka service on the same cluster. This mandatory Kafka service is used to automatically populate topics for the websocket output. The websocket output is needed for sampling data to the Console, and when no table is added to output the results of the SQL query.
Database management in SSB
- To store metadata of SQL jobs
- To store data for creating Materialized Views
- As a connector for Flink SQL
The Streaming SQL Console and the Materialized Views need databases where the metadata of SQL jobs are stored and from which the Materialized View Engine queries data to create the views. SSB supports MySQL/ MariaDB, PostgreSQL and Oracle as databases. For the Streaming SQL Console, you can choose MySQL/MariaDB, PostgreSQL or Oracle DB. However, you must install PostgreSQL to be able to create Materialized Views.
SSB supports MySQL/ MariaDB, PostgreSQL and Oracle as databases for the Streaming SQL Console. You can only use PostgreSQL for the Materialized View Engine. When using the JDBC connector in Flink SQL, you can use MySQL and PostgreSQL from the supported databases. When configuring the databases for SSB, you only set the databases that are used for metadata management. When you want to use the JDBC connector, you need to add the database information to the CREATE TABLE statement using the jdbc connection parameter.