16.1.4 プレーン・テキスト形式
グラフ・サーバー(PGX)では、次のプレーン・テキスト形式がサポートされています。
- カンマ区切り値(CSV)
- 隣接リスト(ADJ_LIST)
- エッジ・リスト(EDGE_LIST)
- 2表(TWO_TABLES)
- フラット・ファイル(FLAT_FILE)
頂点の解析
PGXでは、integer
、long
およびstring
の3つの型の頂点識別子(ID)がサポートされています。型のデフォルトはinteger
ですが、グラフ構成のvertex_id_type
オプションを使用して構成できます。
エッジの解析
グラフ・サーバー(PGX)でサポートされている様々な形式およびプロトコルのうち、CSVおよびフラット・ファイル解析でのみエッジ識別子がサポートされています。他のすべてのデータソースについては、エッジのIDはPGXの内部IDであり、これはゼロからnum_edges - 1
までの整数です。
プロパティの解析
string
プロパティ、空間プロパティ(現時点ではpoint2d
のみ)およびTemporalプロパティ(date
、local_date
、time
、timestamp
、time_with_timezone
およびtimestamp_with_timezone
)を引用符で囲む("<string>
")必要があるのは、それらにセパレータ文字(通常、CSVの場合は,
、エッジ・リストと隣接リストの場合は' '
)が含まれている場合、またはそれらに"
あるいは\n
が含まれている場合のみです。
date
プロパティは、JavaのSimpleDateFormatユーティリティを使用して解析され、グラフ構成で特に指定されていないかぎり、書式文字列yyyy-MM-dd HH:mm:ss
でインスタンス化されます。他の型のTemporalプロパティはすべて、JavaのDateTimeFormatterユーティリティを使用して解析されます。
point2d
は、経度の後に、スペースで区切って緯度を続けることによって指定できます。経度と緯度の両方がdoubleです。たとえば、-74.0445 40.6892
は、自由の女神の場所を表すpoint2dインスタンスの表現です。
値がtrue
(大/小文字を無視)、Y
(大/小文字を無視)または1
である場合、ブール値は真として解釈され、それ以外の場合は偽として解釈されます。偽の推奨表記は、false
(大/小文字を無視)、N
(大/小文字を無視)または0
です。他の型はすべて、対応するJava型のparseXXX()
関数(たとえば、integer型の場合はInteger.parseInt(...)
)を使用して解析されます。
ベクトル・プロパティは、隣接リスト(ADJ_LIST)、カンマ区切り値(CSV)、エッジ・リスト(EDGE_LIST)および2表(TWO_TABLES)のテキスト形式でサポートされています。型integer
、long
、float
およびdouble
のベクトル・コンポーネントを持つベクトル・プロパティを、これらの形式からロードできます。頂点またはエッジ・プロパティがベクトル・プロパティであることを指定するには、グラフ・プロパティ構成のdimension
フィールドをベクトルの次元に設定し、厳密な正の整数値にする必要があります。ベクトル値は、サポートされているテキスト形式で、ベクトル・コンポーネント・デリミタで区切られたベクトル・コンポーネントの値のリストによって表されます。デフォルトでは、ベクトル・コンポーネント・デリミタは;
ですが、vector_component_delimiter
グラフ構成エントリを変更することにより、このデリミタを変更できます。したがって、ベクトル・コンポーネント・デリミタが;
である場合、たとえば、doubleの3次元ベクトルは、テキスト・ファイルでは0.1;0.0004;3.14
のようになります。
セパレータ
単一ファイル形式を使用する場合、IDとプロパティは、デフォルトでtab
または1つのシングル・スペース(\t
)で区切られ、複数ファイル形式の場合は、かわりにカンマ(,
)が使用されます。ただし、PGXではセパレータ文字列を構成できます。
パラレル・ロード
次の形式では、複数のファイルからのパラレル・ロードがサポートされています。
- CSV (vertex_urisまたはedge_uris、あるいはその両方で複数のファイルを指定)
- 隣接リスト(urisで複数のファイルを指定)
- エッジ・リスト(urisで複数のファイルを指定)
- 2表(vertex_urisまたはedge_uris、あるいはその両方で複数のファイルを指定)
- フラット・ファイル(vertex_urisまたはedge_uris、あるいはその両方で複数のファイルを指定)
凡例
テキスト形式を指定するために、次の省略形が使用されます。
- V = 頂点キー
- VG = 隣接する頂点
- VL = 頂点ラベル
- VP = 頂点プロパティ
- VPK = 頂点プロパティ・キー
- VPT = 頂点プロパティ・タイプ
- EL = エッジ・ラベル
- EP = エッジ・プロパティ
- EPK = エッジ・プロパティ・キー
- EPT = エッジ・プロパティ・タイプ
たとえば、<V-2, VG-4>
または<V-2, VG-4>
は、2番目の頂点の4番目の隣接する頂点を示します。