プログラミング
YouTrackDBは汎用的なオブジェクト指向グラフデータベースです
YouTrackDB is a general-use object-oriented graph database (github.com)
要約
JetBrainsが開発・サポートするYouTrackDBは、汎用的なオブジェクト指向グラフデータベースです。O(1)のリンク走査による高速なデータ処理、継承やポリモーフィズムをサポートするオブジェクト指向API、デフォルトでのスナップショット分離、TinkerPop APIおよびGremlinクエリ言語との互換性などが特徴です。SQLベースのYQL(YouTrackDB Query Language)も提供され、グラフ機能拡張やパターンマッチングに対応しています。
全文翻訳
YouTrackDB Issue tracker | はじめに Zulipコミュニティにご参加ください! YouTrackDBにご興味がある方は、ぜひZulipコミュニティにご参加ください。あなたが構築しているエキサイティングなアプリケーションについて教えていただいたり、助けを求めたり、単に友人とチャットしたりしてください😃
YouTrackDBとは?
YouTrackDBは汎用的なオブジェクト指向グラフデータベースです。YouTrackDBはJetBrainsによってサポートおよび開発されており、社内で本番環境で使用されています。
YouTrackDBの主な特徴は以下の通りです:
高速なデータ処理:リンクの走査はO(1)の複雑さで処理されます。高コストな実行時JOINはありません。
オブジェクト指向API:このAPIはリッチなグラフおよびオブジェクト指向データモデルを実装しています。継承とポリモーフィズムの基本概念がデータベースレベルで実装されています。
デフォルトでスナップショット分離:すべてのトランザクションはスナップショット分離下で実行されます。各トランザクションは開始時点のデータベースの安定したスナップショットを参照するため、ダーティリード、非再現可能リード、ファントムリードを排除します。
TinkerPop APIおよびGremlinクエリ言語の実装:Gremlinクエリ言語とTinkerPop APIをすぐにお使いいただけます。Gremlinとのシームレスな統合によるGQLのサポートも進行中です。クエリパフォーマンスを最大化するために、初期データプリフェッチにはYQLの使用をお勧めします。
YQL(YouTrackDB Query Language):グラフ機能拡張を備えたSQLベースのクエリ言語です。YQLはJOINの代わりにリンク走査に直感的なドット表記を使用し、グラフパターンマッチングのための強力なMATCHステートメントをサポートし、クエリ最適化のための自動インデックス使用を含みます。
スケーラブルな開発ワークフロー:YouTrackDBはスキーマレス、スキーマミックス、スキーマフルモードで動作します。
強力なセキュリティ:ユーザー、ロール、述語セキュリティポリシーに基づいた強力なセキュリティプロファイリングシステムです。
保存データの暗号化:オプションでディスクに保存されるすべてのデータを暗号化します。
インストールと使用が簡単
YouTrackDBは、設定やインストールなしでどのプラットフォームでも実行できます。YouTrackDBを試したい場合は、REPLコンソールを確認してください。
```docker
docker run -it youtrackdb/youtrackdb-console
```
YouTrackDBを組み込みデータベースとしてインストールするには、Mavenプロジェクトに以下の依存関係を追加してください:
```xml
<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の下にリロケートするシェードされたuber-jarであり、アプリケーションが使用するバージョンと競合しません。また、Maven pom.xmlファイルにYTDBスナップショットリポジトリを追加する必要があります:
```xml
<repositories>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
```
またはGradleの場合:
```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
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ファイルにデータベースのルートパスワードを提供します。
YouTrackDBにはJDK 21以上が必要です。YouTrackDBの使用方法については、「はじめに」ガイドを参照してください。サーバーと組み込みデプロイメントの両方をカバーするその他の例については、examplesプロジェクトを確認してください。
貢献
YouTrackDBは、すべての非自明な変更を、リサーチ、設計、計画レビュー、トラックごとの実装、レビューという構造化された開発ワークフローを通じて実行します。新規貢献者は、開発ワークフローブックの第1章「ワークフローの概要」から始めて、エンドツーエンドで実行する方法を学ぶことができます。