Zuora, Inc.
Multi-tenant system for providing arbitrary query support
Last updated:
Abstract:
Receive, by an arbitrary query user interface, a user request to perform a query associated with user data, wherein the user data includes first data and second data. Partition, by a coordinator node of an arbitrary query engine, the query into at least a first sub-query and a second sub-query. Assign, by the coordinator node of the arbitrary query engine, the first sub-query to a first query node of the arbitrary query engine. Identify, by a first service connector associated with the first query node of the arbitrary query engine, a first service provider interface (SPI) integrated into a first service, the first service being capable of processing the first sub-query, the first SPI being configured to operate on the first data in a first datastore associated with the first service, the first SPI including a common interface component configured to facilitate communication between the arbitrary query engine and the first SPI, and the first SPI including a first service interface component configured based on a uniform access specification. Provide, by the first service connector associated with the first query node of the arbitrary query engine, the first sub-query to the first service provider interface. Obtain, by the first service using the first SPI, at least a portion of the first data from the first datastore associated with the first service, the at least a portion of the first data being formatted according to a first service data specification. Transform, by the first SPI based on the uniform access specification, the at least a portion of the first data, thereby generating transformed first data formatted according to the uniform access specification. Provide, by the first service using the first SPI, the transformed first data to the arbitrary query engine.
Utility
4 Jun 2019
9 Nov 2021