5

100万件を超えるレコードのMySQLデータベースをグラフデータベースに変換したいのですが、それはネットワーク型のデータが強くリンクされているためです。無料版の Neo4J には、衝突する可能性があると思われるいくつかの制限があったため、OrientDB (Community 2.2.0) (Ubuntu Server 16.04 上) をインストールして動作させました。今は Python (3.5.1+) からアクセスする必要があるので、pyorient (1.5.2) を試しています。(最終的には Gremlin を使用したいので、TinkerPop を試しましたが、gremlin コンソールが OrientDB と通信できませんでした。)

次の単純な Python コードは、OrientDB のテスト グラフの 1 つに接続します。

import pyorient

username="user"
password="password"

client = pyorient.OrientDB("localhost", 2424)
session_id = client.connect( username, password )

print("SessionID=",session_id)

db_name="GratefulDeadConcerts"

if client.db_exists( db_name, pyorient.STORAGE_TYPE_MEMORY ):
    print("Database",db_name,"exists")
    client.db_open( db_name, username, password )
else:
    print("Database",db_name,"doesn't exist")

奇妙なエラーが発生します:

SessionID= 27
Database GratefulDeadConcerts exists
Traceback (most recent call last):
  File "FirstTest.py", line 18, in <module>
    client.db_open( db_name, username, password )
  File "/home/tom/MyProgs/TestingPyOrient/env/lib/python3.5/site-packages/pyorient/orient.py", line 379, in db_open
    .prepare((db_name, user, password, db_type, client_id)).send().fetch_response()
  File "/home/tom/MyProgs/TestingPyOrient/env/lib/python3.5/site-packages/pyorient/messages/database.py", line 141, in fetch_response
    info = OrientVersion(release)
  File "/home/tom/MyProgs/TestingPyOrient/env/lib/python3.5/site-packages/pyorient/otypes.py", line 202, in __init__
    self._parse_version(release)
  File "/home/tom/MyProgs/TestingPyOrient/env/lib/python3.5/site-packages/pyorient/otypes.py", line 235, in _parse_version
    self.build = int( self.build )
ValueError: invalid literal for int() with base 10: '0 (build develop@r79d281140b01c0bc3b566a46a64f1573cb359783; 2016'

それが何であるか、またはどのように修正できるかを誰かが知っていますか? 代わりに本当に TinkerPop を使用する必要がありますか? もしそうなら、私はそれとの闘いについて別の質問を投稿します.

4

1 に答える 1