了解Apache Age中的删除条款
#postgres #database #apache #apacheage

Apache Age是一个基于PostgreSQL的图形数据库,它提供了一个强大的工具集来管理和分析数据,同时确保隐私。其关键功能之一是REMOVE子句,该子句允许用户从其数据集中选择性删除敏感信息。
在这篇文章中,我们将深入研究Apache时代的REMOVE子句的功能。


删除子句

Apache Age中的“删除子句”使用户可以在保留其余数据的同时从图形中删除特定的属性或整个顶点。它提供了一种细粒的控制机制,可以消除敏感信息,而不会影响图的整体结构和完整性。


使用删除子句执行查询

给定具有以下属性的图;

demo=# SELECT * FROM create_graph('persons');
NOTICE:  graph "persons" has been created
 create_graph
--------------

(1 row)

demo=# SELECT * FROM cypher('persons', $$ CREATE (:Person {name: 'Peter', age: 30}),
demo$# (:Person {name: 'Jamie', age: 23}), (:Person {name: 'Grace', age: 21}) $$)
demo-# as (a agtype);
 a
---
(0 rows)

demo=# SELECT * FROM cypher('persons', $$ MATCH (u)
demo$# RETURN u $$) as (a agtype);
                                               a
------------------------------------------------------------------------------------------------
 {"id": 844424930131969, "label": "Person", "properties": {"age": 30, "name": "Peter"}}::vertex
 {"id": 844424930131970, "label": "Person", "properties": {"age": 23, "name": "Jamie"}}::vertex
 {"id": 844424930131971, "label": "Person", "properties": {"age": 21, "name": "Grace"}}::vertex
(3 rows)

我们可以决定从'Peter'删除age属性

demo=# SELECT * FROM cypher('persons', $$ MATCH (peter {name: 'Peter'})
demo$# REMOVE peter.age RETURN peter $$) as (peter agtype);
                                        peter
-------------------------------------------------------------------------------------
 {"id": 844424930131969, "label": "Person", "properties": {"name": "Peter"}}::vertex
(1 row)

您可以看到“彼得”的age属性现在缺少。


可以做到的另一种方法是使用WHERE子句过滤搜索。

demo=# SELECT * FROM cypher('persons', $$ MATCH (peter)
WHERE peter.name = 'Peter' REMOVE peter.age
RETURN peter $$) as (peter agtype);
                                        peter
-------------------------------------------------------------------------------------
 {"id": 844424930131969, "label": "Person", "properties": {"name": "Peter"}}::vertex
(1 row)

返回节点,并且没有属性age

如果您想知道如何从图形数据库中删除顶点和边缘查找此帖子 How to Perform DELETE and DETACH DELETE in Apache AGE


结论

Apache Age的删除子句是用于管理和保护图形数据库中敏感数据的强大工具,并通过有效地利用删除子句,可以选择性地删除特定属性或整个顶点,从而保留隐私并确保遵守数据保护法规。


参考