g2glab / pg

PG Tools
MIT License
6 stars 1 forks source link

PGX 形式で string 型の node ID がロードできない #16

Closed ryotayamanaka closed 3 years ago

ryotayamanaka commented 5 years ago

PGX の Flat File 形式ではもともと string 型の node ID をサポートしていない(DB の表に入れられる形式としてつくられていて、node ID の列は NUMBER 型であることが想定されている)

https://docs.oracle.com/cd/E56133_01/latest/reference/loader/index.html

PGX 2.7 まではそれでもファイルからロードする場合は string 型の node ID を扱うことができたが("node_id_type": "string" オプション指定)PGX 19.1 では以下のようなエラーとなりロードできない。

pgx> g = session.readGraphWithProperties("graphs/c360_files.json") ERROR: oracle.pgx.runtime.LoaderException: ParallelError of 1 oracle.pgx.runtime.LoaderException: error when parsing file file:///Users/ryotayamanaka/Documents/01_Oracle/20190408_KL_Banks/quickstart/pg_quickstart-3.0/property_graph/pgx/graphs/c360/all.pgx.nodes at line 1, value 1: For input string: "a01"

これを回避するためには、node ID で string がサポートされている、例えば CSV 形式などを使う必要がある。

一方、PGX を Oracle Database / Apache HBase と連携させる際には、依然 Flat File 形式が必要であり、その場合の変換の際は node ID は string ではないという制限を付ける必要がある。

ryotayamanaka commented 5 years ago

訂正:

PGX 19.1 では以下のようなエラーとなりロードできない。

このエラーは node ID の型とは関係なく、PGX 19.1 でも string 型の node ID はロードできる模様。

ただし、PGX Flat File 形式が本来は string 型の node ID をサポートしていないことに変わりはないので、代替として CSV 形式などの利用を検討する必要がある。

ryotayamanaka commented 3 years ago

pg2pgx will be replaced to pg2csv, then it will be solved.