YouTrackDB 是一个通用的面向对象图数据库

Hacker News Top 工具

摘要

JetBrains 已将 YouTrackDB 开源,这是一个通用的面向对象图数据库,具有 O(1) 链接遍历、快照隔离、支持 TinkerPop/Gremlin 以及基于 SQL 的自定义查询语言 YQL 等特性。它已在生产环境中内部使用,并根据 Apache 2.0 许可证提供。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/14 07:14

JetBrains/youtrackdb 来源:https://github.com/JetBrains/youtrackdb

YouTrackDB 许可证 (https://opensource.org/licenses/Apache-2.0) 官方 JetBrains 项目 (https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) Bluesky (https://bsky.app/profile/youtrackdb.io) Zulip (https://youtrackdb.zulipchat.com/) Medium (https://medium.com/@youtrackdb) Reddit (https://www.reddit.com/r/youtrackdb/)


问题跟踪 (https://youtrack.jetbrains.com/issues/YTDB) | 入门指南

加入我们的 Zulip 社区!

如果您对 YouTrackDB 感兴趣,欢迎加入我们的 Zulip (https://youtrackdb.zulipchat.com/) 社区。告诉我们您正在构建的令人兴奋的应用程序,寻求帮助,或只是与朋友聊天 😃

什么是 YouTrackDB?

YouTrackDB 是一种通用的面向对象图数据库。YouTrackDB 由 JetBrains 支持和开发,并在内部生产环境中使用。

YouTrackDB 的主要特性包括:

  1. 快速数据处理:链接遍历以 O(1) 复杂度处理,无需昂贵的运行时 JOIN 操作。
  2. 面向对象 API:该 API 实现了丰富的图和面向对象数据模型。继承和多态的基本概念在数据库层面实现。
  3. 默认快照隔离:所有事务在快照隔离下运行。每个事务看到的是其启动时刻数据库的稳定快照,从而消除脏读、不可重复读和幻读。
  4. TinkerPop API 和 Gremlin 查询语言 (https://tinkerpop.apache.org/) 的实现:您可以直接使用 Gremlin 查询语言进行查询,也可以开箱即用地使用 TinkerPop API。对 GQL 的支持以及与 Gremlin 的无缝集成正在开发中 (https://youtrackdb.zulipchat.com/#narrow/channel/511446-dev/topic/GQL.20.20implementation/with/567918479)。为获得最佳查询性能,我们建议使用 YQL 进行初始数据预取。
  5. YQL(YouTrackDB 查询语言):一种基于 SQL 的查询语言,并扩展了图功能。YQL 使用直观的点表示法进行链接遍历,无需 JOIN,支持强大的 MATCH 语句 进行图模式匹配,并自动使用索引进行查询优化。
  6. 可扩展的开发工作流:YouTrackDB 支持无模式、混合模式和全模式三种工作模式。
  7. 强安全性:基于用户、角色和谓词 安全策略 的强大安全分级系统。
  8. 静态数据加密:可选择加密磁盘上存储的所有数据。

易于安装和使用

YouTrackDB 无需配置和安装即可在任何平台上运行。如果您想尝试 YouTrackDB,请查看我们的 REPL 控制台

docker run -it youtrackdb/youtrackdb-console

要将 YouTrackDB 作为嵌入式数据库安装,请在 Maven 项目中添加以下依赖:

<dependency>
    <groupId>io.youtrackdb</groupId>
    <artifactId>youtrackdb-embedded</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

youtrackdb-embedded 是一个打包了所有第三方依赖(Guava、Jackson、Groovy 等)并移动到 com.jetbrains.youtrackdb.shade 包下的 shaded uber-jar,因此不会与您的应用程序使用的版本冲突。

您还需要将 YTDB 快照仓库添加到 Maven pom.xml 文件中:

<repository>
    <id>central-portal-snapshots</id>
    <name>Central Portal Snapshots</name>
    <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
    </snapshots>
</repository>

如果使用 Gradle,则如下所示:

dependencies {
    implementation 'io.youtrackdb:youtrackdb-embedded:0.5.0-SNAPSHOT'
}

并且:

repositories {
    maven {
        url = uri("https://central.sonatype.com/repository/maven-snapshots/")
        mavenContent {
            snapshotsOnly()
        }
    }
}

如果您想使用 YouTrackDB 服务器,可以使用 Docker 镜像启动它:

docker run -p 8182:8182 \
    -v $(pwd)/secrets:/opt/ytdb-server/secrets \
    -v $(pwd)/databases:/opt/ytdb-server/databases \
    -v $(pwd)/conf:/opt/ytdb-server/conf \
    -v $(pwd)/log:/opt/ytdb-server/log \
    youtrackdb/youtrackdb-server

并在 secrets/root_password 文件中提供数据库的 root 密码。

YouTrackDB 至少需要 JDK 21。

要学习如何使用 YouTrackDB,请参阅入门指南。更多关于服务器和嵌入式部署的示例,请查看示例项目

贡献

YouTrackDB 对所有重要变更都采用结构化开发流程:研究、设计、计划评审、逐项实现和评审。新贡献者可以在开发工作流程手册中学习如何端到端运行,从第 1 章 — 工作流程概览开始。

相似文章

Fluree DB(GitHub 仓库)

TLDR AI

Fluree DB 是一个开源的时间图数据库,具有类似 Git 的分支、集成的向量/文本/地理搜索、细粒度的访问控制,并支持 SPARQL、JSON-LD 和 Open Cypher。它针对 AI 代理记忆进行了优化,在十亿级图上实现了高性能。

tursodatabase/turso

GitHub Trending (daily)

Turso Database 是一个用 Rust 编写的进程内 SQL 数据库,兼容 SQLite,具备 MVCC、变更数据捕获、向量支持以及多语言绑定功能。

Tracea

Product Hunt

Tracea 是一款新产品,为AI代理提供类似Datadog的可观测性,具备追踪、根本原因分析和团队记忆等功能。

Show HN: HelixDB – 基于对象存储的图数据库

Hacker News Top

HelixDB 是一个用 Rust 构建的图-向量数据库,专为知识图谱和 AI 记忆设计,提供统一平台支持图、向量、键值、文档和关系型数据模型,并配有便于本地和云端部署的工具。