AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[graph](dba)

Martin Hope
Misty P
Asked: 2024-02-21 11:58:29 +0800 CST

重启命令行查询界面后,gStore 数据库的更新丢失?

  • 5

我正在使用gStore 的命令行查询模式(gquery)。首先,我使用 创建了一个示例数据库bin/gbuild -db test_db -f test_db.nt,其中 test_db.nt 仅包含一行文本:<a> <b> <c>。然后我在 gStore 的根目录中创建了两个文件,用于更新和查询数据库,分别称为 test_insert.rq 和 test_query.rq。这些文件的内容如下:

  • 测试插入.rq:

    INSERT DATA {<a1> <b1> <c1> .}
    
  • 测试查询.rq:

    SELECT * WHERE {?x <b1> <c1> .}
    

通过 启动命令行查询会话后bin/gquery -db test_db,我执行插入:

> sparql test_insert.rq

然后,在同一个会话中,我执行查询:

> sparql test_query.rq

This returns <a1> as the result for ?x, which is correct. However, if I exit the gquery process by Ctrl + C, restart it with the same command, and execute the query again, no results are returned.

Since the results are correct in the same session, I assume this is not an update bug. Are there any additional steps I should perform to ensure that the updates done in the command line mode of gquery are preserved after restarts?

graph
  • 1 个回答
  • 11 Views
Martin Hope
Jordan MacLachlan
Asked: 2021-12-10 20:18:57 +0800 CST

大图上的最短路径:Neo4J 还是 OrientDB?

  • 0

起亚奥拉,

我有一个程序经常需要在包含约 50k 个节点的图上找到最快的路径(节点序列和总成本/长度)。每次运行,我需要数百万个最短路径请求。我刚刚完成了一个 OrientDB 实现,与我最初的非 graphDB 尝试(简单地崩溃)相比,它显着改善了计算时间。为了执行测试,我在一系列分布式机器上本地运行服务器。

但是,理论上,Neo4J 或其他类似平台会再次变得更快吗?我可以期望获得什么收益?例如,我可以在线主持这个过程吗?

恩加米希。

graph distributed-databases
  • 1 个回答
  • 83 Views
Martin Hope
User12547645
Asked: 2019-02-04 01:41:30 +0800 CST

为什么图数据库不擅长 CRUD 操作?

  • 0

我听说图形数据库在 CRUD 操作方面天生就比关系数据库差。这是真的?如果是,那是为什么?

一些想法:

要在真实数据库中执行 crud 操作,您基本上必须处理一行(最好的情况)。只要它不是面向列的格式 (OLAP),这应该是非常有效的。

据我所知,有两种流行的方式来存储图形:

要么实际存储“指向彼此的对象”。这将是图形的自然表示。

或者存储一个表,其中列出了关系。这将是图形的非自然表示。

在第二种情况下,我理解为什么 crud 操作很慢:您可能必须接触很多表来表示关系模式中单行的更新。

为什么在第一种情况下它很慢?要更新或删除,您可能只需要创建/读取/更新/删除单个对象。

graph
  • 1 个回答
  • 495 Views
Martin Hope
Michael Green
Asked: 2018-07-21 02:59:45 +0800 CST

图多态性设计

  • 1

我有一个具有多种边缘类型的图形数据库。例如

create table Person(Name varchar(50)) as node;
create table Friend as edge;
create table Manager as edge;

insert Person(Name) values ('Alice'), ('Bob'), ('Chris');

insert Friend($from_id, $to_id)
select
    (select $node_id from Person where Name = 'Alice'),
    (select $node_id from Person where Name = 'Bob');

insert Manager($from_id, $to_id)
select
    (select $node_id from Person where Name = 'Alice'),
    (select $node_id from Person where Name = 'Chris');

我可以通过 UNION 查询找到连接到给定节点(图多态性)的所有节点:

select
    b.Name
from Person a, Person b, Friend f
where a.Name = 'Alice'
and match(a-(f)->b)

union

select
    b.Name
from Person a, Person b, Manager m
where a.Name = 'Alice'
and match(a-(m)->b);

然而,这很快变得很麻烦。SQL Server没有内置于语法中的更优雅的解决方案。

是否有允许多态性的设计模式?

graph sql-server-2017
  • 1 个回答
  • 302 Views
Martin Hope
Lance
Asked: 2018-06-30 14:48:10 +0800 CST

图数据库如何在磁盘上存储数据

  • 3

我看过这些论文:

  • 涡轮图
  • 图池
  • BiShard 并行处理器
  • G-商店
  • NX图形
  • 网格图

...和其他一些人。我是数据库的新手(除了在不了解其内部结构的情况下将它们用于 Web 应用程序之外),因此我对如何使用磁盘进行存储没有太多基础。

我想大致了解这些论文在文件系统上存储图形的目的。在简要浏览它们时,他们提到将相关子图从磁盘加载到内存中以进行高效更新/查询。其中一些将边存储在一组文件中(称为“碎片”),将顶点存储在另一组文件中(称为“间隔”)。有些有多个不同的ID,比如TurboGraph中的“记录ID(RID)”和“顶点ID” (下图1)。

但是,我还没有看到所有部分如何组合在一起的完整概述。想知道是否有人可以解释这一点。

具体来说:

  1. 如何将数据结构化为图形数据库的文件(高级别)。
  2. 在高层次上将内容加载到内存中进行查询/更新时必须发生什么。

到目前为止我还不清楚什么需要加载到内存中,以及这些 ID 的具体用途。我不确定每个页面(通常>= 1MB)是否被加载到内存中并以某种方式解析,或者逐行扫描,或类似的东西(基本上不确定文件是如何解析/扫描的,如果它是解析成某种内存数据结构,或者如果您可以直接在文件字节上进行图形遍历)。而且我不确定 ID 的用途。在 RDBMS 中,ID 有时是每个表的递增整数,没有其他含义。在这些论文中,ID 似乎更多地与页面中顶点的位置加上某种偏移量等有关。此外,一些论文为一个顶点及其所有边(邻接列表)存储一条大单线(看起来),但我想知道如果每个顶点有数千或数百万条边该怎么办。如果可以指出要寻找的相关特征,那么进行进一步研究将有助于使这一点更加清晰。

非常感谢您抽出宝贵时间,我希望这是有道理的。


图1。

在此处输入图像描述

graph storage
  • 1 个回答
  • 1105 Views
Martin Hope
Tiago Stapenhorst Martins
Asked: 2018-06-09 17:15:05 +0800 CST

如何从 PostgreSQL 10 中的时间序列表创建连接前驱和后继的图形?

  • 0

我有下表:

╔════╦═══════════╦═════════════════════╦═══════╗
║ id ║ sensor_id ║        time         ║ value ║
╠════╬═══════════╬═════════════════════╬═══════╣
║  1 ║         1 ║ 2018-01-01 00:00:01 ║     1 ║
║  2 ║         1 ║ 2018-01-01 00:00:02 ║     2 ║
║  3 ║         1 ║ 2018-01-01 00:00:03 ║     3 ║
║  4 ║         1 ║ 2018-01-01 00:00:03 ║     4 ║
║  5 ║         1 ║ 2018-01-01 00:00:04 ║     3 ║
║  6 ║         2 ║ 2018-01-01 00:00:01 ║     1 ║
║  7 ║         2 ║ 2018-01-01 00:00:01 ║     2 ║
║  8 ║         2 ║ 2018-01-01 00:00:02 ║     3 ║
║  9 ║         2 ║ 2018-01-01 00:00:03 ║     4 ║
║ 10 ║         2 ║ 2018-01-01 00:00:04 ║     5 ║
╚════╩═══════════╩═════════════════════╩═══════╝

CREATE TABLE sensor_time_series
(
    id SERIAL PRIMARY KEY,
    "time" TIMESTAMP NOT NULL,
    sensor_id INTEGER NOT NULL,
    value NUMERIC NOT NULL,
);

它是一个时间序列表,表示传感器在特定时间的值。是的,我知道奇怪的是“时间”在每个“sensor_id”中都不是唯一的,这是数据集中的错误。

我想要的是制作一个具有图形结构的新表/视图,将每个“sensor_id”样本连接到它在“时间”中的后继者。该表应如下所示:

╔════════════╦══════════════╗
║ current_id ║ successor_id ║
╠════════════╬══════════════╣
║          1 ║           2  ║
║          2 ║           3  ║
║          2 ║           4  ║
║          3 ║           5  ║
║          4 ║           5  ║
║          6 ║           8  ║
║          7 ║           8  ║
║          8 ║           9  ║
║          9 ║          10  ║
╚════════════╩══════════════╝

CREATE TABLE sensor_time_series_graph
(
    current_id INTEGER,
    successor_id INTEGER,
    FOREIGN KEY (current_id) REFERENCES sensor_time_series(id),
    FOREIGN KEY (successor_id) REFERENCES sensor_time_series(id)
);

第一个表中的两列(current_id 和 successor_id)FOREIGN KEY's id我如何在 PostgreSQL 10 中创建这样的东西?

我正在研究 PostgreSQL 窗口函数,我认为它们可以帮助我,但还没有意识到如何。

postgresql graph
  • 2 个回答
  • 94 Views
Martin Hope
user123215
Asked: 2018-04-14 04:30:48 +0800 CST

密码查询以查找具有所有技能的员工节点

  • 0

我正在尝试编写一个密码查询来查找“拥有”所有技能的“员工”节点的名字(与具有“技能”标签的所有节点都有关系)。这是我的数据模型:

在此处输入图像描述

我设法获得了所有与技能节点至少有一种关系的员工节点,但我不希望这样。这是密码查询:

:match (a:employee)-[r:Has_Skill]->(b:profession) return a,r,band

我不能用ALL()函数来写它。有人可以帮我吗?

neo4j graph
  • 1 个回答
  • 562 Views
Martin Hope
dangerousdave
Asked: 2017-08-29 04:18:11 +0800 CST

有没有基于单文件的图数据库管理系统?

  • 9

我正在考虑使用图形数据库管理系统(简称 DBMS)作为我的单用户桌面应用程序的应用程序文件格式。

是否有基于单文件的图形 DBMS(图形 DBMS的 SQLite 的“等效”)?

graph graph-dbms
  • 1 个回答
  • 1426 Views
Martin Hope
castarco
Asked: 2014-03-27 08:56:27 +0800 CST

如何在同一台机器上使用 TitanDB (+Cassandra) 创建多个图?

  • 2

我正在试验 TitanDB(使用 Cassandra 作为存储)+ Rexter。

我几个小时一直在阅读文档并尝试在同一台机器上创建多个图形数据库,但我没有找到方法。

我发现两个主要问题:

  • 在 TitanDB 文档中,Cassandra 部分讲述了如何在 Cassandra 上创建图表,但他们评论的唯一参数是主机和端口,没有任何对图表名称的引用:s)。
  • 在 Rexter 部分,我们遇到了基本相同的问题。我们可以定义一个命名图的列表,但每个图只能映射到一个三元组(后端类型、主机和端口)。

我能想象的唯一方法是实例化多个 Cassandra 服务器,并让每个 Cassandra 服务器监听不同的端口。然后,配置 Rexter 以将每个图映射到不同的 cassandra 实例。

有没有一种方法可以使用同一个 Cassandra 实例创建多个图形?

cassandra graph
  • 3 个回答
  • 2526 Views
Martin Hope
user20398
Asked: 2013-02-21 12:06:35 +0800 CST

具有“非图形”数据的图形数据库

  • 5

--- 更新 ---
感谢到目前为止的评论和帮助。我很抱歉没有进一步说明这个问题。我已经更新了下面的问题。
- - 更新 - -

目前,我被要求为大量数据开发数据库结构。我在实现图形数据库而不是“普通”关系数据库之间进行辩论,并且想知道如果数据不一定包含任何关系有什么缺点?可以像表中的表/行一样使用单独的、未连接的节点吗?

我问这个是因为到目前为止不需要关系,但我正试图在未来证明数据库(预期关系)以扩展数据的能力。如果有任何帮助,我正在 OrientDB/Neo4j 或 mySQL/postgreSQL 之间进行辩论。

一个例子:
假设我们有一个充满股票的数据库。任何人几乎可以在任何时间/一天买卖股票(只要市场开放)。现在这个数据库可以是一个普通的关系数据库:Table 1: IDs | Products | Prices | Sizes | Dates. 但也可能被组织为关系数据库Node 1: Stock A | Node 2: Stock B。
如果我只是使用数据库来存储股票信息,在我看来,一个普通的数据库会更好。但这是真的吗?它会对我使用关系数据库产生负面影响/使用普通数据库会更好吗?在节点而不是行中组织我的数据是否有缺点?

一张图说明一切:

该数据库将主要用于买卖类似股票的产品,但它们也有其他信息,例如附加的位置。我试图预测功能的实现,例如推荐产品,甚至预测某人将购买的下一个产品。

来自数据库的大多数查询将针对每个产品。
从数据库中提取:每天 100 到 1000 次。
推送到数据库:每天 20.000。

一个可能揭示缺点的附加问题:
从关系到图或从图到关系有多容易。有锁定危险吗?

感谢所有的帮助,到目前为止评论都很棒!R

mysql graph
  • 1 个回答
  • 3157 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve