DSE Graph Loaderリファレンス
DSE Graph Loaderリファレンス。
構文
graphloader loadingScript [[-option value]...]
構文規則 | 説明 |
---|---|
大文字 | リテラル・キーワード。 |
小文字 | リテラル以外。 |
Italics |
変数値。有効なオプションまたはユーザー定義値と置き換えます。 |
[ ] |
任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。 |
( ) |
グループ。丸かっこ(( ) )は、選択肢を含むグループを示します。丸かっこは入力しないでください。 |
| |
または。縦棒(| )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
'Literal string' |
単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。 |
{ key:value } |
マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。 |
<datatype1,datatype2> |
セット、リスト、マップ、またはタプル。山かっこ(< > )で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型をカンマで区切ります。 |
cql_statement; |
CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。 |
[ -- ] |
コマンドライン・オプションとコマンド引数は、2つのハイフン(-- )で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。 |
' <schema> ...</schema> ' |
検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。 |
@xml_entity='xml_entity_type' |
検索CQLのみ:スキーマ・ファイルおよびsolrconfigファイル内のXML要素を上書きする実体とリテラル値を示します。 |
オプション | データ型 | デフォルト | 説明 |
---|---|---|---|
-abort_on_num_failures | Integer | 100 | 読み込みが中断される障害の回数。 |
-abort_on_prep_errors | Boolean | true | 通常、準備時または中断した頂点の挿入フェーズ中にエラーが発生した場合は、これをfalseに設定すると、許容される障害の最大数に達するまでローダーは動作を続行します。 |
-address | String | 接続先のDSE GraphインスタンスのIPアドレス(およびポート)。必須 | |
-allow_remote_hosts_in_quorum | Boolean | false |
異なるデータ・センターのホストがローカル整合性レベルに参加できるようにし、リモート・データ・センターのノードを使用して、クエリーなどのQUORUMの整合性レベルに到達することができます。選択肢はtrueとfalseです。 |
-batch-size | Integer | 100 | 読み込むバッチのサイズ。 |
-compress | String | none | ファイルの圧縮。選択肢はnone、gzip、およびxzipです。 |
-consistency_level | CL | ONE | 選択肢は以下のとおりです。ANY、ONE、TWO、THREE、QUORUM、ALL、LOCAL_QUORUM、EACH_QUORUM、SERIAL、LOCAL_SERIAL、LOCAL_ONE。 |
-create_graph | Boolean | true | ターゲット・グラフが存在するかどうかを確認し、グラフが存在せず、trueに設定されている場合は作成します。データ・センターに接続できない場合は、このオプションを使用すると、デフォルトのQUORUM整合性レベルで失敗が生じることがあります。 |
-create_schema | Boolean | true | 欠落しているスキーマ要素について、スキーマを更新または作成するかどうか。 注: 正しいデータ型を使用してインデックスが作成されるように、データを読み込む前にスキーマを作成することを強くお勧めします。テストを行う目的にのみ、 create_schema をtrueに設定することをお勧めします。DSE 6.0では、この構成オプションは廃止予定であり、今後のリリースで削除されます。 |
-driver_retry_attempts | Integer | 3 | リトライ試行回数。0より大きい場合、要求はいくつかの回復可能な障害の後に再送信されます。 |
-driver_retry_delay | milliseconds | 1000 | ドライバーのリトライ間隔(ミリ秒単位)。 |
-dryrun | Boolean | false | データ・インテグリティとスキーマ整合性を検証するためだけに試行を行うかどうか。グラフが存在しない場合でも、グラフは作成されません。 注: この構成オプションは、スキーマを検出し、変更を実行せずに欠落しているスキーマを示唆してくれます。DSE 6.0では、このオプションは廃止予定であり、今後のリリースで削除される可能性があります。
|
-filename | String | 頂点データの読み込み元のファイル。マッピング・スクリプトで定義されていない場合は必須。 | |
-graph | String | 読み込み先のグラフの名前。必須 | |
-label | String | データが追加される頂点のラベル。空白のままにした場合は、入力ファイルの名前が頂点ラベル名として使用されます。 | |
-load_failure_log | String | load_failures.txt | 失敗したレコードが格納されるファイルの名前と場所。 |
-load_new | Boolean | false | 読み込まれた頂点が新規で、グラフにまだ存在しないかどうか。 |
-load_edge_threads | Integer | 0 | グラフにエッジおよびプロパティ・データを読み込むために使用するスレッドの数(0を指定すると、値は強制的にDC * 6のノード数になります)。 |
-load_vertex_threads | Integer | 0 | グラフに頂点を読み込むために使用するスレッドの数(0を指定すると、値は強制的にコアの数/2になります)。 |
-preparation | Boolean | true | 必要に応じて、データを分析してスキーマを更新するための準備を行うかどうか。 注: この構成オプションは、 create_schema と組み合わせて使用すると、スキーマを検証し、作成します。デフォルトではfalse に設定されます。このオプションはDSE 6.0で廃止予定です。今後のリリースでは、削除される可能性があります。 |
-preparation_limit | Integer | 0 | 準備段階で、スキーマを更新する必要があるかどうかを判断するために使用するレコード数。0は制限がないことを示します。 |
-queue-size | Integer | 10000 | データ取得キューのサイズ。 |
-read_threads | Integer | 1 | データ入力からデータを読み取るために使用するスレッドの数。 |
-remote_hosts_in_dc | Integer | 2 | クエリーの整合性レベルに参加できるリモート・ノードの数。 |
-reporting_interval | Integer | 1 | ログに書き込まれた各進行状況レポートの間隔(秒単位)。 |
-schema_output | String | proposed_schema.txt | dry-runを実行する際に提案されたスキーマを保存するファイルの名前。無効にする場合は、空白のままにします。 |
-skip_blank_values | Boolean | true | falseの場合、ローダーはCSVファイルのすべての未指定(空/空白)のプロパティ値に空白("")を挿入します。 |
-timeout | Integer | 120000 | 接続がタイムアウトになるまでの時間(ミリ秒単位)。 |
-v | --version | なし | なし | DSE Graph Loaderのバージョンを印刷します。 |
-vertex_complete | Boolean | false | ローダーは、この読み込みでプロパティとエッジによって参照されたすべての頂点が、この読み込みの頂点にも含まれると見なします。エッジ・データやプロパティ・データ・ファイルから新たに頂点が作成されることはありません。 |
-username | String | DSE認証のユーザー名。 | |
-password | String | DSE認証のパスワード。 | |
-ssl | Boolean | false | SSLを有効にします。 |
-kerberos | Boolean | false | kerberosを有効にします。 |
-sasl | String | kerberosとの併用に使用されるオプションのsaslプロトコル名。 |
オプション | データ型 | デフォルト | 説明 |
---|---|---|---|
-kerberos | Boolean | false | kerberosを有効にします。 |
-password | String | DSE認証のパスワード。 | |
-sasl | String | kerberosとの併用に使用されるオプションのsaslプロトコル名。 | |
-ssl | Boolean | false | SSLを有効にします。 |
-username | String | DSE認証のユーザー名。 |
説明
DSE Graph Loaderは、最大1億個の頂点と10億個のエッジを読み込むためのユーティリティです。このユーティリティは、メモリー内のすべての頂点をキャッシュ可能で、読み込みプロセスの並列処理が可能なほどのコアを持つ、十分に強力なコンピューター上で実行されます。負荷がさらに大きい場合は、ユーティリティを別のマシン上で実行する必要があります。
DSE Graph Loaderは、引数としての読み込みスクリプトと、構成オプションと値のペアの変数を持つコマンドラインで呼び出されます。読み込みスクリプトは、読み込まれる入力データと、そのデータをグラフにマップする方法を指定します。読み込みスクリプトによって、オプションと値のペアも構成できます。
- 準備
- 入力データ全体を読み取ります。この段階で、データがグラフ・スキーマに一致するか、指定されたデータ(有効な場合)に従ってグラフ・スキーマが更新されます。この段階が終了すると、グラフに追加されるデータの量に基づいて統計的な推定値が指定されますが、データは読み込まれません。
に設定すると、準備段階は終了し、何らかの変化が生じる前に読み込みプロセスが中断されます。出力を検査し、予想と一致していることを確認します。大きなデータセットの場合は、エラーを見つけるためにdry runを実行することが重要です。-dryrun true
- 頂点の読み込み
- 第2段階では、入力データ内のすべての頂点を追加または取得し、ローカルでキャッシュして、後続のエッジの読み込み時間を短縮します。
- エッジとプロパティの読み込み
- すべてのエッジとプロパティを入力データからグラフに追加します。
読み込みスクリプトまたはマッピング・スクリプトは、入力ファイルからグラフへのデータの読み込みに使用する特定のマッピングを指定するために必要です。DSE Graph Loaderは、CSV、JSON、区切りテキスト、および正規表現で解析されたテキストという4つのファイルベースのデータ入力タイプをサポートしています。ファイルベースの入力形式はすべて、入力データ・ファイルの圧縮をサポートしています。
読み込みプロセス中のロギングは、トラブルシューティングが必要な場合に役立つ情報を提供します。読み込みプロセスの3つの段階は、ログに詳しく記録されます。
例
-help
を使用します。graphloader -help
mymapscript.groovy
を使用して、ファイル/tmp/recipe/all.datのデータをlocalhost上で実行中のグラフtestに読み込みます。データを挿入せずに読み込みをテストするには、dry runを指定します。graphloader mymapscript.groovy -filename /tmp/recipe/all.dat -graph test -address localhost -dryrun true
csv2Vertex.groovy
を使用して、ファイルMyUsers.csvのデータをlocalhost上で実行中のグラフcsvTestに読み込みます。-label
オプションによって、頂点ラベルはファイル名MyUsers
ではなく、User
になるように指定されます。graphloader ./scripts/csv2Vertex.groovy -filename MyUsers.csv -graph csvTest -label User -address 127.0.0.1
// CONFIGURATION
// Configures the data loader to create the schema and set load_vertex_threads to 3
config load_new: true, load_vertex_threads: 3
graphloader
は、graphloader
が実行されるディレクトリーのファイルloader.logにデバッグ情報を記録します。ログの場所は、-load_failure_log
を使用して指定できます。graphloader mymapscript.groovy -graph test -address localhost -load_failure_log /tmp/dgl.log情報を別の形で記録するために、log4jを変更した方が良い場合は、構成ファイルを作成して、
-load_failure_log
と一緒に使用することができます。サンプル構成ファイルは以下のようになります。# Set root logger level to the designated level and its appenders to F1 and stdout
log4j.rootLogger=INFO, WARN, A1, stdout
#/dev/stdout
# Log INFO messages to A1. A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Target=System.out
log4j.appender.A1.Threshold=INFO
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct INFO log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=INFO
# stdout uses PatternLayout.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
また、サンプルのgraphloader
コマンドは、java -Dlog4j.configuration=file:./lib/log4j.properties -jar graphLoaderJar mymapscript.groovy -graph test -address localhost -load_failure_log /dev/stdoutログ情報を
stdout
に書き込みます。準備段階には、追加のオプションがあります。入力データを使用してスキーマを検出するには、-preparation true
を使用します。準備においてスキーマに欠落している要素が見つかった場合、-create_schema true
であれば要素を追加することができます。-create_schema false
の場合は、必要であれば準備を行うことができますが、スキーマ作成は手動で行う必要があります。-preparation true
とせずに-create_schema true
を設定すると、ジョブが停止します。データで記述されるスキーマを検出するデータをサンプリングしないと、スキーマの方法がわからないため、graphloader
でスキーマを作成することができません。要約すると、スキーマを手動で作成する際には、-preparation true -create_schema false
を使用します。graphloader
でスキーマを自動作成するには、-preparation true -create_schema true
を使用します。
-user
と-password
を使用してgraphloader
を構成します。graphloader mymapscript.groovy -graph test -address localhost -username myName -password myPasswd
graphloader
を構成するには、以下のようにします。java -Djavax.net.ssl.trustStore=<TRUSTSTORE_PATH> -Djavax.net.ssl.trustStorePassword=<PASSWORD> -Djavax.net.ssl.keyStore=<KEYSTORE_PATH> \ -Djavax.net.ssl.keyStorePassword=<PASSWORD> -jar dse-graph-loader-5.0.3-uberjar.jar -kerberos true -sasl dsename -graph new -address localhost mymapscript.groovyトラストストアとキーストアのjavaオプションをcassandra-env.shで設定すると、コマンドが簡素化されます。
java -jar dse-graph-loader.jar -kerberos true -sasl dsename -graph new -address localhost mymapscript.groovy
実行時パラメーター
特定の条件を設定する必要がある場合は、一部を変更する必要があります。たとえば、JARファイルを直接実行してJava修飾子を使用したり、graphloaderスクリプトを変更して、追加のパラメーターを設定できるようにすることができます。
java -Xmx10g -jar dse-graph-loader.jar
LOADER_TMP_DIR
を使用します。LOADER_TMP_DIR=/home/user ./graphloader -graph new -address localhost mymapscript.groovy
読み込みに成功した場合
2017-02-09 23:27:22 INFO Reporter:97 - Current total additions: 1155735 vertices 1982536 edges 6583940 properties 0 anonymous