在 Azure 流分析 SQL 中,如何将子查询的结果传递给 GeoJSON 创建函数?



我正在尝试使用流分析从写入 Blob 存储的一堆对象创建空间数据。我正在创建流分析作业,并且已将 Blob 集合添加为输入。Blob 具有常规结构,包含纬度和经度属性。

我想按原始传感器对传入记录进行分组(这由一个字符串标识,该字符串实际上是主键(,并将每个组的坐标集转换为 GeoJSON 线字符串。

我有一个大致如下的查询:

WITH points AS (
SELECT GeoJSON.CreatePoint(longitude, latitude) as point, sensorId, time
FROM SensorEvents)
SELECT GeoJSON.CreateLineString(???)
INTO youroutputalias
FROM SensorEvents

我必须传递给GeoJSON.CreateLineString什么才能让它获取一组点并将其制作成单个 LineString?

1- 此 blob 信息是参考数据,还是会随着时间的推移而变异?

2-如果此发生突变,则需要指定将发生此聚合的时间边界。ASA 将随时间推移进行聚合并按 ID 分组,您不能仅按 ID 进行聚合。ASA 是一个临时引擎。

CreateLineString 需要一个静态的点列表来构造对象,这里我们在每次调用 CreateLineString 时都有一个动态的点数。

• 如果 blob 数据是动态的,最好的选择是使用 UDF 按时间聚合,然后按 ID 分组,并让 UDF 函数创建 geojson 线串对象。

• 如果 blob 是静态的,最好的选择是 blob geojson,并将其作为字段传递给 ASA。

最新更新