✅ Azure 流分析 ✅ 构造事件流

指定 WITH 子句中关联的输入流或步骤名称。 任何 SELECT 语句始终需要 FROM 子句。

语法

FROM <input_source> [<PARTITION BY clause>] [<TIMESTAMP BY clause>]
  
<PARTITION BY clause> ::== PARTITION BY <key_spec>

<TIMESTAMP BY clause> ::== TIMESTAMP BY scalar_expression [OVER <key_spec>]

<input_source> ::=   
    {   
      *   
      | { input_name |  input_alias }.*   
      | {  
          [ { input_name | input_alias }. ]  
               { column_name }  
     | expression [ [ AS ] column_alias ]  
         }  
      | column_alias = expression   
    }

<key_spec> ::== { column_name | expression } [,... n]

论据

*

指定应返回 FROM 子句中所有输入流中的所有列。 列由输入源返回,如 FROM 子句中指定的,以及它们存在于传入流中的顺序。

input_name |input_alias.*

将 * 的范围限制为指定的输入名称。

column_name

要返回的列的名称。 限定column_name以防止不明确引用,例如,当 FROM 子句中的两个输入源具有重复名称的列时发生。

expression

是一个常量、函数、由运算符或子查询连接的列名、常量和函数的任意组合。

Column_alias

替换查询结果集中的列名的替代名称。 例如,可以为名为 Quantity 的列指定别名,或“数量到日期”或“数量”等别名。 别名还用于指定表达式结果的名称。 column_alias不能在 WHERE、GROUP BY 或 HAVING 子句中使用。

PARTITON BY <key_spec>

根据 <key_spec>将数据分区为子集。 这样,作业就可以并行使用和写入不同的分区。 有关详细信息,请参阅利用 Azure 流分析中的查询并行化

TIMESTAMP BY scalar_expression [OVER <key_spec>]

允许事件按 scalar_expression 而不是到达时间进行时间戳。 OVER 子句可用于为每个非重复键创建独立的时间线。 有关详细信息,请参阅 有关 TIMESTAMP BY 的文档。

示例:

SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime