Azure Cosmos DB

ArcGIS Velocity 中的 Azure Cosmos DB 数据源类型将从存储在 Azure Cosmos DB 中的数据库集合中读取记录。

示例

一位研究人员希望将存储在 Azure Cosmos DB 中的数据库集合中的数据加载到 Velocity 中以执行分析。

用法说明

  • 主密钥将在首次保存分析时加密,并以加密状态存储。
  • 可以指定 where 子句以限制从 Azure Cosmos DB 容器集合加载的记录。
  • 可以在 Where 子句参数中指定分析运行时变量,以便每次运行时仅从 Azure Cosmos DB 容器集合加载新要素。

参数

参数描述数据类型

端点

Azure Cosmos DB 的端点 URL,例如,https://yourCosmosDBAccountName.documents.azure.com:443/

字符串

主密钥

Azure Cosmos DB 的主密钥。

字符串

数据库

包含要读取的数据集合的 Azure Cosmos DB 容器的名称。

字符串

集合

包含数据的指定容器中 Azure Cosmos DB 集合的名称。

字符串

Where 子句(可选)

限制从 Azure Cosmos DB 容器集合加载的要素。

使用简单查询格式。 例如,如果数据集中存在名为 course 的数值字段,则可以指定 where 子句 course = 49.5845184;如果数据集中存在名为 user_id 的字符串字段,则可以指定 where 子句 user_id = 'pete1234'

Azure Cosmos DB 界面中,这些查询看起来类似于 SELECT * FROM c WHERE c.user_id = 'pete1234';但是,您必须在 Velocity 中针对此参数指定 user_id = 'pete1234'

在查询字符串字段时,请在作为查询一部分的文本两边使用单引号,例如 road_type = 'asphalt'

可以指定分析运行时变量,以仅为循环大数据分析中的每次运行加载新要素。 这些变量将被替换为相关的分析计划开始时间,用于查询 Azure Cosmos DB 中的 ISO 8601 字符串字段。 可用的分析运行时变量为 $analytic.AnalyticLastSuccessfulRunScheduledStartTime$analytic.AnalyticScheduledStartTime。 对于启动计划大数据分析后的第一次运行,系统将以 1970 年 1 月 1 日为 ISO 8601 原始时间提供 $feature.AnalyticLastSuccessfulRunScheduledStartTime 变量,因此将会加载此时间之后的所有要素。 为了适应这种情况,请指定 where 子句查询的其他部分,以便返回循环分析的预期首次运行时之后的要素。

例如,可以如下指定 where 子句,其中分析于 UTC 时间 2021 年 6 月 6 日 12:01:01 开始:

yourISO8601StringTimestampField > '$analytic.AnalyticLastSuccessfulRunScheduledStartTime' and yourISO8601StringTimestampField <= '$analytic.AnalyticScheduledStartTime' and yourISO8601StringTimestampField > '2021-06-04T12:01:01.0Z'

字符串

注意事项和限制

  • 在指定 where 子句以过滤字符串值时,请将文本值括于单引号中。
  • 指定日期字段时,此数据源仅支持以下配置:
    • 新纪元秒,例如 1616673883
    • 新纪元毫秒,例如 1616673883000
    • ISO 8601 日期时间格式(无时区),例如 2021-03-25T12:05:34
    • ISO 8601 日期时间格式(有时区),例如 2021-03-25T12:05:34+0000
    • 字符串日期格式(毫秒为可选)yyyy-MM-dd HH:mm:ss[.fffffffff],例如 2021-03-25 12:05:34 或 2021-03-25 12:05:34.435
  • 可以使用 Where 子句参数来指定分析运行时变量,以将分析的每次循环限制为仅加载自上次运行分析以来的最新要素。 上面还提供了其他详细信息。