Skip to main content
Version: v2

SQL Query Process

SQL Query execution process

arc sql process

Canner Enterprise consists of four subsystems: ' SQL Engine, Web Service, Object Storage, and SSO Service`.

  1. SQL Engine: A distributed system that performs SQL operations. It is developed based on Trino with two types of servers, a coordinator and workers. The coordinator parses the SQL statement, cuts it into tasks, and assigns it to different workers for processing.
  2. Web Service: Responsible for user operation screen to browser, providing Restful API for clients.
  3. Object Storage: Store externally uploaded files, Query results in Canner Enterprise, and Materialized Views data. If you use the cloud version of Canner Enterprise, the Storage will use the services provided by the cloud; for example, the AWS environment uses S3, and the Azure environment will use Azure Blob.
  4. SSO Service: responsible for Identity and Access Management such as login/user authentication/rights management.

How Canner Enterprise transmits data between subsystems (modules) when executing Query:

  1. Create Query: Starting from the far right, the Client/BI initiates a SQL Query request, goes to the Authentication Layer (SSO Service) to do a permission check, and after confirming the identity and permission of the request, the Web Service will Log/ Audit the records required for tracking, then go to the SQL Engine and start executing the SQL Query.
  2. Execute Query: The Coordinator in the SQL Engine parses the SQL statement, divides it into multiple Tasks, and assigns it to multiple Workers for processing.
  3. Cache Result: SQL Engine will obtain data from different data sources through the internal Connector, stream to the pipeline composed of internal Workers for calculation, and stream the results to Object Storage for Cache.
  4. Get Result: Client/BI obtains the address of the calculation result in Object Storage from the Web Service (the address is processed through signed tokens and cannot be directly accessed to ensure the security of access), and Client/BI obtains the address from Object Storage and gets the result.