< back

Neo4j Sandbox Backups

Neo4j が提供する開発環境・デモ・学習用のグラフデータベースとして、Neo4j Sandbox が提供されています。

本ブログでは、Neo4j Sandbox のバックアップ機能について紹介します。

"New Feature: Neo4j Sandbox Backups"

バックアップ方法

Neo4j Sandbox は、3 日間の有効期限しかありません。しかし、バックアップをリクエストすることで、その後 30 日間ダウンロード可能なリンクが発行され、ダンプファイルを取得できます。

ダウンロードしたダンプファイルは、以下に利用できます。

  • Neo4j AuraDB
  • Neo4j Desktop
  • Neo4j Docker image
  • 他の Neo4j インスタンス

ただし、Neo4j Sandbox の実質永久利用を防ぐため、もちろん Neo4j Sandbox にはインポートできません。

仕組みについて

Neo4j Sandbox は AWS の Fargate 上で可動しています。

実際のデータは、EC2 の Instance store (a.k.a. ephemeral storage) 上に保存されています。Instance store は、インスタンスが持続している間のみ利用できる非永久的なストレージです。

今まで、バックアップを作成するためには、neo4j-admin ツールを利用することがありました。しかし、neo4j-admin が作成するファイルはダンプファイルではありません

ダンプファイルを作成するには、オフライン状態の Neo4j データベースが必要でした。先述したとおり Instance store を使っているため、オフライン状態にするとデータが消失してしまう問題を抱えていました。

それを、以下の方法で解決しました。

  1. まずはオンラインバックアップを作成
    • neo4j-admin backup --from <sandbox> --backup-dir <backup_dir>
  2. データベースをローカルに復元
    • neo4j-admin restore --from <backup_dir + "/neo4j"> --database <backup_id>
  3. ダンプファイルをローカルデータベースから作成
    • neo4j-admin dump --database <sandbox_id> --to <backup_id>.dump
  4. S3 にアップロード

また、すべての処理は非同期で行われます。ユーザーが GUI からバックアップをリクエストしたとき、Celery と呼ばれる非同期ジョブ実行サービスのジョブ情報を Amazon SQS にキューイングします。別のバックアップサービスが、Amazon SQS からキューを取り出し、上記バックアップ処理を実行します。

最後に

以上、Neo4j Sandbox のバックアップ機能とその裏側の仕組みについて紹介しました。

Neo4j Aura に気軽にダンプファイルをアップロードできるようになったのは、検証していたデータセットを長く使いたくなったり、時間をかけて Neo4j について学習したくなったりしたときに活きてくるでしょう。

October 18, 2021

Recommended

  1. Neo4j を VectorDB として使う

    Neo4j は v5.13 で Vector search index を実装した。使い方は他の VectorDB と同様で、ベクタライズしたデータを Vector Index に格納する。Cypher クエリを通じて近似解を導出する。 この記事では、Vector Index の使い方について紹介する。具体例では、ノ…
  2. Neo4j Causal Clustering 紹介

    本記事では、Neo4j における Causal Clustering (因果クラスタリング) について説明します。 クラスタリングの目的 データベースを運用する場合、単一のインスタンスを稼働させるか、Causal Clustering を用いてクラスター構成を組むか(クラスタリング)のいずれかを選択することになるでし…
  3. Neo4j Bolt Handshake Protocol Introduced

    Bolt Protocol において、サーバーとクライアントが接続を開始するためのプロトコルとして、Bolt Handshake Protocol Specification の仕様が策定されています。 本記事では、Bolt Handshake Protocol の概要について説明します。 Handshake Wor…