JetBrains/youtrackdb
GitHub: JetBrains/youtrackdb
JetBrains 开发的通用型面向对象图数据库,支持 Gremlin 与 YQL 查询语言、ACID 事务和原生图关系遍历。
Stars: 362 | Forks: 14
## YouTrackDB
[](https://opensource.org/licenses/Apache-2.0) [](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[](https://bsky.app/profile/youtrackdb.io)
[](https://youtrackdb.zulipchat.com/)
[](https://medium.com/@youtrackdb)
[](https://www.reddit.com/r/youtrackdb/)
[问题追踪器](https://youtrack.jetbrains.com/issues/YTDB) | [入门指南](docs/getting-started.md) ### 什么是 YouTrackDB? YouTrackDB 是一款**通用型**面向对象的图数据库。 YouTrackDB 由 JetBrains 提供支持和开发,并在内部用于生产环境。 YouTrackDB 的主要特性包括: 1. **快速的数据处理**:链接遍历以 O(1) 的复杂度进行处理。没有昂贵的运行时 JOIN 操作。 2. **[面向对象的 API](docs/object-oriented.md)**:该 API 实现了丰富的图和面向对象的数据模型。[继承和多态](docs/yql/YQL-Create-Class.md)的基本概念在数据库层面得到了实现。 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](docs/yql/YQL-Introduction.md) 进行初始数据预取。 5. **[YQL](docs/yql/YQL-Introduction.md) (YouTrackDB 查询语言)**:一种基于 SQL 的查询语言,带有图功能的扩展。YQL 使用直观的点表示法进行链接遍历,而不是使用 JOIN,支持强大的 [MATCH 语句](docs/yql/YQL-Match.md)进行图模式匹配,并包含用于查询优化的自动索引功能。 6. **可扩展的开发工作流**:YouTrackDB 支持 schema-less、schema-mixed 和 schema-full 模式。 7. **[强大的安全性](docs/security.md)**:基于用户、角色和谓词[安全策略](docs/yql/YQL-Create-Security-Policy.md)的强大安全分析系统。 8. **静态数据加密**:可选择加密存储在磁盘上的所有数据。 ### 易于安装和使用 YouTrackDB 可以在任何平台上运行,无需配置和安装。 如果你想体验 YouTrackDB,请查看我们的 REPL [控制台](console/README.md)。 ``` docker run -it youtrackdb/youtrackdb-console ``` 要将 YouTrackDB 作为嵌入式数据库安装,请将以下依赖项添加到你的 Maven 项目中: ```
io.youtrackdb
youtrackdb-embedded
0.5.0-SNAPSHOT
```
`youtrackdb-embedded` 构件是一个 shaded uber-jar,它将所有第三方依赖(Guava、Jackson、Groovy 等)重定位到 `com.jetbrains.youtrackdb.shade` 下,因此它们不会与你应用程序使用的版本发生冲突。
你还需要将 YTDB 快照存储库添加到你的 Maven pom.xml 文件中:
```
Central Portal Snapshots
central-portal-snapshots
https://central.sonatype.com/repository/maven-snapshots/
false
true
```
或者如果你使用的是 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,请参阅[入门指南](docs/getting-started.md)。
有关涵盖服务端和嵌入式部署的更多示例,请查看[示例](examples/src/main/java/io/youtrackdb/examples)项目。
### 贡献
YouTrackDB 的每一项重大变更都要经过结构化的开发工作流:研究、设计、计划审查、逐轨道实现和评审。新的贡献者可以在开发工作流手册中学习如何端到端地运行它,从
[第 1 章 — 工作流一览](docs/workflow-book/chapters/01-workflow-at-a-glance.md)开始。
[问题追踪器](https://youtrack.jetbrains.com/issues/YTDB) | [入门指南](docs/getting-started.md) ### 什么是 YouTrackDB? YouTrackDB 是一款**通用型**面向对象的图数据库。 YouTrackDB 由 JetBrains 提供支持和开发,并在内部用于生产环境。 YouTrackDB 的主要特性包括: 1. **快速的数据处理**:链接遍历以 O(1) 的复杂度进行处理。没有昂贵的运行时 JOIN 操作。 2. **[面向对象的 API](docs/object-oriented.md)**:该 API 实现了丰富的图和面向对象的数据模型。[继承和多态](docs/yql/YQL-Create-Class.md)的基本概念在数据库层面得到了实现。 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](docs/yql/YQL-Introduction.md) 进行初始数据预取。 5. **[YQL](docs/yql/YQL-Introduction.md) (YouTrackDB 查询语言)**:一种基于 SQL 的查询语言,带有图功能的扩展。YQL 使用直观的点表示法进行链接遍历,而不是使用 JOIN,支持强大的 [MATCH 语句](docs/yql/YQL-Match.md)进行图模式匹配,并包含用于查询优化的自动索引功能。 6. **可扩展的开发工作流**:YouTrackDB 支持 schema-less、schema-mixed 和 schema-full 模式。 7. **[强大的安全性](docs/security.md)**:基于用户、角色和谓词[安全策略](docs/yql/YQL-Create-Security-Policy.md)的强大安全分析系统。 8. **静态数据加密**:可选择加密存储在磁盘上的所有数据。 ### 易于安装和使用 YouTrackDB 可以在任何平台上运行,无需配置和安装。 如果你想体验 YouTrackDB,请查看我们的 REPL [控制台](console/README.md)。 ``` docker run -it youtrackdb/youtrackdb-console ``` 要将 YouTrackDB 作为嵌入式数据库安装,请将以下依赖项添加到你的 Maven 项目中: ```
标签:ACID事务, JetBrains, JS文件枚举, 后台面板检测, 域名枚举, 对象关系映射, 数据库, 请求拦截, 风险缓解