GraphSONファイルのインポートによるPGビューの作成
GraphImporterBuilder
APIを使用すると、GraphSONファイルからグラフ・データをインポートすることで、プロパティ・グラフ・ビュー(PGビュー)を作成できます。
このインポート機能は、次のステップで構成されています:
- データ構造に対するGraphSONの解析。
- データ構造からのSQL表の作成とデータの挿入。
CREATE PROPERTY GRAPH
文の生成および実行。
次の例に、GraphImporterBuilder
APIを使用してGraphSONファイルからPGビューを作成する方法を示します。
opg4j> import oracle.pg.imports.*
opg4j> var importer = new GraphImporter.Builder().
...> setFilePath("<path_to_graphson_file>").
...> setBatchSize(2).
...> setInputFormat(GraphImportInputFormat.GRAPHSON).
...> setOutputFormat(GraphImportOutputFormat.PG_VIEW).
...> setThreads(4).
...> setDbJdbcUrl("<jdbc_url>").
...> setDbUsername("<username>").
...> setDbPassword("<password>").
...> setGraphName("mygraph").
...> build()
importer ==> oracle.pg.imports.GraphImporter@5d957cf0
opg4j> var ddl = importer.importGraph()
import oracle.pg.imports.*;
GraphImporter importer = new GraphImporter.Builder()
.setFilePath("<path_to_graphson_file>")
.setBatchSize(2)
.setInputFormat(GraphImportInputFormat.GRAPHSON)
.setOutputFormat(GraphImportOutputFormat.PG_VIEW)
.setThreads(4)
.setDbJdbcUrl("<jdbc_url>")
.setDbUsername("<username>")
.setDbPassword("<password>")
.setGraphName("mygraph")
.build();
>>> from opg4py.graph_importer import GraphImporter
>>> config = {
... 'jdbc_url' : '<jdbc_url>',
... 'username' : '<username>',
... 'password' : '<password>',
... 'file_path' : '<path_to_graphson_file>',
... 'graph_name' : 'mygraph',
... 'output_format': 'pg_view',
... 'input_format' : 'graphson'
... }
>>> importer = GraphImporter(config)
>>> importer.import_graph()
前述の例では、データベースに必要なSQL表を設定し、DDL文を生成および実行してmygraphを作成しています。たとえば、この例では、次のCREATE PROPERTY GRAPH
DDL文を生成します:
"CREATE PROPERTY GRAPH mygraph
VERTEX TABLES (
software
KEY (id)
LABEL software
PROPERTIES ARE ALL COLUMNS,
person
KEY (id)
LABEL person
PROPERTIES ARE ALL COLUMNS
)
EDGE TABLES (
created
KEY (id)
SOURCE KEY (sid) REFERENCES person (id)
DESTINATION KEY (did) REFERENCES software (id)
LABEL created
PROPERTIES ARE ALL COLUMNS,
knows
KEY (id)
SOURCE KEY (sid) REFERENCES person (id)
DESTINATION KEY (did) REFERENCES person (id)
LABEL knows
PROPERTIES ARE ALL COLUMNS
) OPTIONS ( pg_view )"
あるいは、次の例に示すように、データ・ソースを使用してデータベースに接続することで、データベースへの接続を作成することもできます。
opg4j> import oracle.pg.imports.*
opg4j> import oracle.jdbc.pool.OracleDataSource
opg4j> var ds = new OracleDataSource() // setup the data source
ds ==> oracle.jdbc.pool.OracleDataSource@4154ecd3
ds.setURL("<jdbc_url>")
ds.setUser("<username>")
ds.setPassword("<password>")
opg4j> var importer = new GraphImporter.Builder().
...> setFilePath("<path_to_graphson_file>").
...> setBatchSize(2).
...> setInputFormat(GraphImportInputFormat.GRAPHSON).
...> setOutputFormat(GraphImportOutputFormat.PG_VIEW).
...> setThreads(4).
...> setDataSource(ds).
...> setGraphName("mygraph").
...> build()
importer ==> oracle.pg.imports.GraphImporter@5d957cf0
opg4j> var ddl = importer.importGraph()
import oracle.pg.imports.*;
import oracle.jdbc.pool.OracleDataSource;
//Setup the datasource
var ds = new OracleDataSource();
ds.setURL(<jdbc_url>)
ds.setUser(<username>);
ds.setPassword(<password>);
//Setup the GraphImporter
GraphImporter importer = new GraphImporter.Builder()
.setFilePath("<path_to_graphson_file>")
.setBatchSize(2)
.setInputFormat(GraphImportInputFormat.GRAPHSON)
.setOutputFormat(GraphImportOutputFormat.PG_VIEW)
.setThreads(4)
.setDataSource(ds)
.setGraphName("mygraph")
.build();
var ddl = importer.importGraph();
また、次の点にも注意してください。
GraphImporterBuilder
APIは、GraphSONファイル形式バージョン3.0のみをサポートしています。- 表7-6に示されているGraphSONデータ型のみがサポートされています。
次の各項では、GraphImporter
のパラメータおよびGraphSONとOracle Databaseの間のデータ型マッピングについて詳しく説明します。
- GraphImporterのパラメータの追加情報
GraphImporter
で使用されるパラメータの詳細について学習します。 - GraphSONの型からOracle Databaseのデータ型へのマッピング
GraphSONのデータ型は、対応するOracle Databaseのデータ型にマップできます。
親トピック: プロパティ・グラフ・ビューについて