16.1.4 プレーン・テキスト形式

グラフ・サーバー(PGX)では、次のプレーン・テキスト形式がサポートされています。

  • カンマ区切り値(CSV)
  • 隣接リスト(ADJ_LIST)
  • エッジ・リスト(EDGE_LIST)
  • 2表(TWO_TABLES)
  • フラット・ファイル(FLAT_FILE)

頂点の解析

PGXでは、integerlongおよびstringの3つの型の頂点識別子(ID)がサポートされています。型のデフォルトはintegerですが、グラフ構成のvertex_id_typeオプションを使用して構成できます。

エッジの解析

グラフ・サーバー(PGX)でサポートされている様々な形式およびプロトコルのうち、CSVおよびフラット・ファイル解析でのみエッジ識別子がサポートされています。他のすべてのデータソースについては、エッジのIDはPGXの内部IDであり、これはゼロからnum_edges - 1までの整数です。

プロパティの解析

stringプロパティ、空間プロパティ(現時点ではpoint2dのみ)およびTemporalプロパティ(datelocal_datetimetimestamptime_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)のテキスト形式でサポートされています。型integerlongfloatおよび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番目の隣接する頂点を示します。