問題タブ [pyorient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - 分散モードで Orientdb でデータベースを開く
分散モードで構成および開始された orientdb で pyorient を使用してデータベースを開こうとしています。ただし、プロセスが完了しておらず、エラーもスローされていないため、データベースのオープンは行われていません。HTTP ポート (2480) を使用してノードを開いてアクセスできます。しかし、バイナリ ポート (2424) を使用しようとすると、この問題が発生します。
import pyorient
client = pyorient.OrientDB("localhost", 2424)
session_id = client.connect( "xxxx", "xxxxx")
client.db_open( "orient_poc", "xxxx", "xxxx")
これを解決するには?
orientdb - 分散型の OrientDB は ConcurrentModificationException を取得し続けます
私は orientdb community edition 2.2.9 を pyorient のバイナリ シリアライザー (開発ブランチ) と共に使用しています。
AWS で 3 つのノードを実行しています。
書き込み/読み取り用のマスターとして 1 つのノードのみを使用し、読み取りとレプリケーション用に他のノードを使用しています。
次のようにノードを構成しました。
私は Java を使用していないので、ドキュメントの MVCC の例はあまり役に立ちません。
私もトランザクションを使用しておらず、次のパラメーターを使用してサーバーを起動しています。
mvcc をこれ以上無効にできないというドキュメントを読んだので、mvcc の設定は役に立たないと思います。
タスクをキューに入れるためにrabbitmqとセロリを使用しています。通常モードでorientDBを実行しているときに「ConcurrentModificationException」エラーが発生すると、セロリはそのタスクを再試行するだけで、通常は成功します。分散モードで実行すると、頂点のバージョンが一致しないように見えるため、そのタスクは失敗し続けます。
何をしても、「ConcurrentModificationException」が発生し続けます。
mvccがまだ有効になっていることが構成でわかります。
ドキュメントで提案されていることはすべて試したと思いますが、分散モードでの実行のすべてのニュアンスは、1 か所ではなく、ドキュメント全体に散らばっています。何かを見逃すのはとても簡単です:(
この問題を回避するにはどうすればよいですか?
python - Pyorient で問題を引き起こす一般的な Python Unicode / ASCII キャストの問題
更新: Ivan Mainetti の提案に基づいて、github で問題を開きました。そこに重きを置きたい場合は、https ://github.com/orientechnologies/orientdb/issues/6757 です。
私は OrienDB に基づいたデータベースに取り組んでおり、Python インターフェイスを使用しています。私はそれでかなり幸運でした.
データベースにアップロードするデータ構造は次のようになります。
OrientDB / pyorient で文字通り何百ものレコードを完璧に作成しました。問題が必ずしも pyorient 固有の質問であるとは思いませんが、特定のレコードで失敗する理由は、Ono.absolute_address 要素に pyorient が何とか窒息している Unicode 文字があるためだと思います。
作成したいレコードの Abs_address は /u/c/2/a1–2 ですが、上記の my データ構造に値を渡すと得られるノードは次のとおりです。
どういうわけか私の問題は、pythonがユニコードとASCII文字列/文字を混在させていることだと思いますか? 私はPythonに少し慣れていないので、型を宣言していません. それとも、これはユニコードを好まない pyorient のインスタンスですか? 私はこれで髪を引き裂いています。どんな助けでも大歓迎です。
エラーが何らかのテキスト エンコーディングではなく pyorient から発生している場合は、pyorient 関連の情報を次に示します。このコードを使用してレコードを作成しています:
そして、これは私が得ているエラーです:
バックエンド データベースがアドレスに対して null オブジェクトを取得していることを示唆しているため、このエラーは奇妙です。どうやらこの「アドレス」のエントリを作成したようですが、それは私がやりたいことではありません。ユニコードを含むアドレス文字列がデータベースで null になる理由がわかりません... new_Node データ構造に入力した正確な文字列を使用して、orientDB スタジオで作成できます...しかし、python を使用して行うことはできません同じこと。
誰か助けて?
編集:
Laurent のおかげで、問題を unicode オブジェクトと pyorient に関係するものに絞り込むことができました。渡す変数が unicode 型の場合は常に、pyorient アダプターは null 値を OrientDB データベースに送信します。問題の原因となっている値は ndash 記号であると判断し、Laurent はこのコードを使用してそれをマイナス記号に置き換えるのを手伝ってくれました
ただし、それを行うと、pyorient は unicode オブジェクトを取得し、それを null 値として渡します...これは良くありません。str(...) を使用して文字列を再キャストすることで、この短期間を修正できます。これにより、差し迫った問題が解決するようです。
. 問題は、DB データに記号やその他の異常な文字が含まれることがわかっていることです。データベースがユニコード文字列をサポートしていることはわかっています。手動で追加したり、SQL 構文を使用して pyorient や Python では実行できないことを実行したりできるためです。 . これは、この問題と非常によく似ているようです: http://stackoverflow.duapp.com/questions/34757352/how-do-i-create-a-linked-record-in-orientdb-using-pyorient-library
そこにパイオリエントな人はいますか?パイソンの神?ラッキーs0bs?=)
pyorient - PyOrientCommandException: - : while test for a class #221
これは、pyorient github のクローズされた issue#211 の抜粋です。すでに回答がいくつかあるかもしれませんが、エラーは自明ではなく、pyorient を使用してクラスの存在をテストする例を提供するため、ここに投稿しました。したがって、ここに抜粋があります:
クラスの存在を照会する方法をテストしていたので、ここでGRAPHの例として使用されている動物データベースで遊んでいました
次に、db_name 'Animals' を使用してデータベースを照会すると、次の例外応答を受け取りました (これは、ここで説明されていない他の状況でも発生します)。
クラスの存在をテストするための私のクエリ:
完全な出力エラー:
utf8
デコードが認識していない「影」文字を取得するようなものですか? Jupyterノートブック、ANACONDA pythonディストリビューション3.5、pyorient v.1.4.9のコードでUbuntu 16.04を実行しています
何か助けはありますか?
orientdb - pyorient を使用して name = 'Nicole' の User から選択したクエリから @rid 値を取得する方法
@rid
Python 3.5 と pyorient client.command を使用してレコード メタデータから値を取得し、そのような SQL クエリを実行する方法はまだわかりません。
client.command(query)
pyorientで次のクエリを使用して User クラスを作成したとしましょう。簡単にするために、クエリの呼び出しのみをここに示します。
最近作成された頂点のポインタを保持する辞書を作成しましょう
次に頂点を追加します。
の値を見てみましょうrec['Alex']
:
そうは言っても、Alex の @rid を知りたいので、後でそれを使用して他のクラス間で Edge を作成できます。
orientdb studio を使用して quety を実行すると、@rid が表示されます。
しかし、client.command を使用して同じクエリを実行すると、2 つのレコード ポインターを含むリストが取得されます。したがって、次の結果を得ることと同じです。rec['Alex']
したがって、rec['Alex'][0].oRecordData
レコード データを取得する場合は、次の情報のみが返されます。
rid
(1)新しい頂点を作成するときに変数に格納するにはどうすればよいですか?
(2) プロパティとしましょうname
。
lucene - 空間クラスを選択して ST_spatial クエリ ST_Within Orientdb を作成する方法
pyorient を使用して Orientdb 2.2.17 で LUCENE Spatial クエリを使用する方法を理解しようとしています。
別のクラスのポリゴン頂点内にあるポイント頂点クラスのすべてのプロパティを選択する方法をまだ理解していません。
Region Vertex クラスには 2 つのプロパティがあります。
- 名前
座標 (EMBEDDED OPolygon) LUCENE インデックス
CREATE CLASS Region EXTENDS V
CREATE PROPERTY Region.name IF NOT EXISTS STRING
CREATE PROPERTY Region.coordinates IF NOT EXISTS EMBEDDED OPolygon
CREATE INDEX Region.coordinates ON Region(coordinates) SPATIAL ENGINE LUCENE
次の 2 つのプロパティを持つポイント頂点クラス:
- 駅名
座標 (EMBEDDED OPoint) LUCENE インデックス
CREATE CLASS Point EXTENDS V
CREATE PROPERTY Point.station_name IF NOT EXISTS STRING
CREATE PROPERTY Point.coordinates IF NOT EXISTS EMBEDDED OPoint
CREATE INDEX Point.coordinates ON Point(coordinates) SPATIAL ENGINE LUCENE
次に、リージョン ポリゴン ポイントを追加します。
ポイント頂点を追加する:
のようなものとそのバリエーションを試しましたが失敗しました。クエリの例を次に示します。
SELECT from Point WHERE ST_WITHIN(coordinates, ST_AsText(SELECT coordinates FROM Region where name='region01')) = true
次のエラーが発生しました。クエリでさまざまな方法を試しましたが、成功しませんでした。
クエリの解析エラー: SELECT from Point WHERE ST_WITHIN(coordinates, ST_AsText(SELECT 座標 FROM Region where name='region01')) = true ^ 行 1、列 25 で "" が検出されました。次のいずれかが予期されていました: DB name="envlay-デシベル」
予想される結果は、ポリゴンに含まれる station_name=0 のポイントを取得することです。
どんな助けでも大歓迎です。
;)
ヨベル