Received: 7 June 2004 / Accepted: 22 November 2004 / Published online: 22 July 2005 | Arvind Arasu · Shivnath Babu · Jennifer Widom
The paper introduces CQL, a continuous query language supported by the STREAM prototype data stream management system (DSMS) at Stanford. CQL is an expressive SQL-based declarative language for registering continuous queries against streams and stored relations. The authors present an abstract semantics that relies on "black-box" mappings between streams and relations, defining a precise and general interpretation for continuous queries. CQL instantiates this abstract semantics using SQL for relation-to-relation operators, a window specification language derived from SQL-99 for stream-to-relation operators, and three new operators for relation-to-stream operators. The paper details the structure of CQL's query execution plans, including operators, interoperator queues, synopses, and sharing of components among multiple operators and queries. Examples are drawn from the Linear Road benchmark, and a public repository of data stream applications using CQL is curated. The paper also discusses the goals and design principles behind CQL and its query execution engine, emphasizing modularity, efficiency, and ease of experimentation.The paper introduces CQL, a continuous query language supported by the STREAM prototype data stream management system (DSMS) at Stanford. CQL is an expressive SQL-based declarative language for registering continuous queries against streams and stored relations. The authors present an abstract semantics that relies on "black-box" mappings between streams and relations, defining a precise and general interpretation for continuous queries. CQL instantiates this abstract semantics using SQL for relation-to-relation operators, a window specification language derived from SQL-99 for stream-to-relation operators, and three new operators for relation-to-stream operators. The paper details the structure of CQL's query execution plans, including operators, interoperator queues, synopses, and sharing of components among multiple operators and queries. Examples are drawn from the Linear Road benchmark, and a public repository of data stream applications using CQL is curated. The paper also discusses the goals and design principles behind CQL and its query execution engine, emphasizing modularity, efficiency, and ease of experimentation.