The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
SQL server
Dapr 在保存和检索状态时不会转换状态值。 Dapr 要求所有的状态存储实现都要遵守特定的密钥格式 (参见Dapr 状态管理规范)。 您可以直接与底层存储进行交互以操作状态数据,例如查询状态、创建聚合视图和进行备份。
1. 连接到 SQL Server
连接到 SQL Server 实例的最简单方法是使用 Azure Data Studio(Windows、macOS、Linux)或 SQL Server Management Studio(Windows)。
**注意:**以下示例使用 Azure SQL。 为 Dapr 配置 Azure SQL 数据库时,需要明确指定要使用的表名。 下面的示例假设你已经连接到了正确的数据库,并有一个名为 “states” 的表:
2. 通过 App ID 列出键
执行下面的查询,以获得与应用程序 “myapp” 相关的所有状态键:
SELECT * FROM states WHERE [Key] LIKE 'myapp||%'
上面的查询返回所有id,也就是状态键前缀为 “myapp||” 的记录。
3. 获取特定状态数据
执行下面的查询,以通过键 “balance” 获取应用程序 “myapp” 的状态数据:
SELECT * FROM states WHERE [Key] = 'myapp||balance'
然后,读取返回行的 Data 字段。
要获取状态 version/ETag ,请使用以下命令:
SELECT [RowVersion] FROM states WHERE [Key] = 'myapp||balance'
4. 获取过滤后的状态数据
执行下面的查询,以获取 json 数据中 “color” 值等于 “blue” 的所有状态数据:
SELECT * FROM states WHERE JSON_VALUE([Data], '$.color') = 'blue'
5. 获取 actor 状态
要获取应用 ID 为 “myets”,实例ID为 “leroy”,actor 类型为 “cat” 的相关联所有 actor 的状态键,请使用以下命令:
SELECT * FROM states WHERE [Key] LIKE 'mypets||cat||leroy||%'
要获取特定 actor 状态(如 “food”) ,请使用以下命令:
SELECT * FROM states WHERE [Key] = 'mypets||cat||leroy||food'
警告: 您不应该手动更新或删除存储引擎中的状态。 所有的写入和删除操作都应该通过 Dapr 运行时来完成。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.