27.1.4 プレーン・テキスト形式
グラフ・サーバー(PGX)では、次のプレーン・テキスト形式がサポートされています。
- カンマ区切り値(CSV)
- 隣接リスト(ADJ_LIST)
- エッジ・リスト(EDGE_LIST)
- 2表(TWO_TABLES)
- フラット・ファイル(FLAT_FILE)
バイト順マーク(BOM)を使用せずに、UTF-8でエンコードされたファイルからのグラフのロードのみが、サポートされています。したがって、ファイルからグラフを正常にロードするには、テキストベースのプロバイダ・ファイルがBOMなしでUTF-8でエンコードされていることを確認します。
頂点の解析
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番目の隣接する頂点を示します。