How To Integrate SCQL System#
Overview#
As shown in FIG, SCQL System needs to work with Client and GRM:
Client: user interface designed for query submission and result retrieval.
GRM: help to manage schema information and identify parties.
Note
please read Global Resource Manager to know more about GRM.
Therefore the platform should support Client and GRM to integrate SCQL System.
Specifically, the Client interact with SCDB through Query API, while GRM interact with SCDB through GRM API.
Query API#
For SQL query, SCDB support services:
Submit: async API, just submit SQL query and return, server listen on
${SCDBHost}/public/submit_queryFetch: async API, try to get the result of a SQL query, server listen on
${SCDBHost}/public/fetch_resultSubmitAndGet: sync API, submit query and wait to get the query result, server listen on
${SCDBHost}/public/submit_and_get
Please refer to SCQL API for details.
Note
Client can choose to support either async or sync API according to business scenarios:
If the SQL query task might take too much time, it is recommended to use the async API, otherwise use the sync API for simplicity.
In a word, the custom Client should construct HTTP request for user’s SQL, post to SCDB and parse the response from SCDB.
GRM API#
SCQL uses rpc API to communicate with GRM:
GetTableMeta: fetch metadata of table, GRM server should listen on
${GRMServerHost}/GetTableMetaGetEngines: get endpoints for specific SCQLEngines(parties), GRM server should listen on
${GRMServerHost}/GetEnginesVerifyTableOwnership: check whether user has ownership of table, GRM server should listen on
${GRMServerHost}/VerifyTableOwnership
Please refer to Global Resource Manager for details.
The custom GRM Server needs to support above services corresponding to the GRM API.