DSE Graph Loaderの概要

DSE Graph Loaderは、グラフ・データセットをさまざまな入力ソースからDSE Graphに読み込むための、カスタマイズと高度な調整が可能なコマンドライン・ユーティリティです。

DSE Graph Loaderは、グラフ・データセットをさまざまな入力ソースからDSE Graphに読み込むための、カスタマイズと高度な調整が可能なコマンドライン・ユーティリティです。DataStax Enterpriseと一緒にインストールされないため、別途インストールする必要があります。

DSE Graph Loaderは、数億(10^8)の頂点と数十億(10^9)のエッジを含んだデータセットを読み込むように構築されています。DSE Graph Loaderは、並列読み込みと永続的なキャッシュを使用して頂点を効率よく格納します。ただし、プログラムを実行できるだけの十分なマシンを使用した場合に限ります。

データは、CSVファイル、JSONファイル、区切りテキスト(フィールドを識別するためのヘッダー行を含むCSV)、正規表現で解析されたテキスト、およびバイナリーGryoファイルから読み込むことができます。Hadoop分散ファイル・システム(HDFS)およびAWS S3ソースから入力ファイルを読み取るために、分散型ファイルシステムがサポートされています。また、JDBC互換データベースやNeo4Jデータベースからの入力データの直接読み取りもサポートしています。入力ファイルは非圧縮ファイルまたは圧縮ファイルにすることができます。すべてのデータを読み取り時に変換して、グラフに読み込まれたデータを操作できます。

入力ソース・ファイルからのデータをマップして、頂点またはエッジをその両方のプロパティとともに定義できます。マッピング・スクリプトは、読み込みパラメーターを構成し、入力パラメーターを定義して、各入力レコードからグラフ要素へのマッピングを識別します。頂点とエッジのプロパティは両方とも、読み込まれるデータに含めることができます。

DSE Graph Loaderで入力データを処理する場合は、以下の3つの段階に分けられます。
準備
入力データ全体を読み取って、グラフのスキーマの適合性を確認します。グラフのスキーマを更新するよう提案します。有効な場合は、グラフのスキーマを変更します。データの読み込み時にグラフに追加されるデータ量についての統計を出します。この段階で読み込み処理を停止するには、dryrun構成オプションを使用できます。
頂点の読み込み
入力データ内のすべての頂点を追加または取得し、その後のエッジの読み込み時間を短縮するためにローカルでキャッシュします。
load_newでデータが新規データとして識別されていない限り、頂点の検証は有効になっています。データが新規の場合、検証は実行されず、パフォーマンスが向上します。
エッジとプロパティの読み込み
すべてのエッジとプロパティを入力データからグラフに追加します。
load_newでデータが新規データとして識別されていない限り、エッジの検証は有効になっています。データが新規の場合、検証は実行されず、パフォーマンスが向上します。新規データと既存のデータが混在したものを処理するもう一つの方法としては、isNew()およびexists()を使用する方法があります。
エッジを重複させる必要がある場合は、isNew()を使用して、既に存在するエッジに加えてこれらのエッジを指定する必要があります。
注: 複数のカーディナリティ入力データでは、グラフのスキーマを作成してから、データを読み込む必要があります。

DSE Graph Loaderを使用する際に覚えておきたい重要な特徴は、基盤となるDSEデータベースのupsertという性質です。頂点が既に存在する場合、DSE Graph Loaderは、選択した構成に応じて、格納されているデータを新しいプロパティ値で更新します。構成を使用して、読み込まれたデータが新しいかどうか、または現時点で存在するデータをオーバーライドするかどうかを識別できます。同じエッジが複数回にわたって読み込まれ、エッジ・ラベルが複数のカーディナリティのデフォルトに設定されている場合は、エッジが複製されます。

DSE Graph Loaderを使用してデータを読み込む前に、グラフのスキーマを作成することを強くお勧めします。スキーマを作成しないと、データの正しいデータ型が指定されません。インデックスの作成は、読み込みプロセスの時間を大幅に短縮し、受け入れ可能な読み込みのパフォーマンスを達成するのに必要です。