- プロパティ・グラフのグラフ開発者ガイド
- グラフ・サーバー(PGX)上級ユーザー・ガイド
- PGXプログラミング・ガイド
- PgxFrameの表形式データ構造
- データベースからのPgxFrameのロード
26.13.13 データベースからのPgxFrameのロード
Oracleデータベースのリレーショナル表から
PgxFrame
をロードできます。リレーショナル表の各列は、ロードされたフレーム内の列に対応します。データベースからPgxFrame
をロードする場合、デフォルトの動作では、表の列が検出され、それらがすべてロードされます。明示的に指定しない場合、現在のユーザーおよびセッションの接続詳細が使用され、列が自動的に検出されます。
データベース表からPgxFrame
をロードするステップを次に示します。
- 次のようにセッションとアナリストを作成します。
cd /opt/oracle/graph/ ./bin/opg4j // starting the shell will create an implicit session and analyst opg4j> import static oracle.pgx.api.frames.functions.ColumnRenaming.renaming opg4j> import static oracle.pgx.api.frames.schema.ColumnDescriptor.columnDescriptor opg4j> import oracle.pgx.api.frames.schema.* opg4j> import oracle.pgx.api.frames.schema.datatypes.*
import oracle.pgx.api.*; import oracle.pgx.api.frames.*; import oracle.pgx.api.frames.functions.*; import oracle.pgx.api.frames.schema.*; import oracle.pgx.api.frames.schema.datatypes.*; import static oracle.pgx.api.frames.functions.ColumnRenaming.renaming; import static oracle.pgx.api.frames.schema.ColumnDescriptor.columnDescriptor; PgxSession session = Pgx.createSession("my-session"); Analyst analyst = session.createAnalyst();
session = pypgx.get_session(session_name="my-session") analyst = session.create_analyst()
PgxFrame
をロードします。この例では、現在ログインしているスキーマからPgxFrame
をロードすることを前提としています。opg4j> var exampleFrame = session.readFrame(). ...> db(). ...> name("Transfers"). // name of the frame ...> tablename("T1"). // name of the table from where the data must be loaded ...> connections(16). // indicates that 16 connections can be used to load in parallel ...> load()
PgxFrame exampleFrame = session.readFrame() .db() .name("Transfers") .tablename("T1") .connections(16) .load();
>>> example_frame = session.read_frame() \ ... .name('Transfers') \ ... .db() \ ... .table_name('T1') \ ... .load()
- 列のサブセットのみをロードする必要がある場合は、次の例に示すように列を指定できます。次の例では、別のスキーマから
PgxFrame
をロードしていることに注意してください。opg4j> session.registerKeystore(<pathToKeystore>, <keystorePassword>) opg4j> var exampleFrame = session.readFrame(). ...> db(). ...> name("Transfers"). ...> tablename("T1"). // name of the table from where the data must be loaded ...> jdbcUrl("<jdbcUrl>"). ...> username("<username>"). ...> keystoreAlias("<keystore_alias>"). ...> connections(16). // indicates that 16 connections can be used to load in parallel ...> columns( ...> columnDescriptor("FROM_ACCT_ID", DataTypes.INTEGER_TYPE), ...> columnDescriptor("TO_ACCT_ID", DataTypes.INTEGER_TYPE) ...> ). // columns to load ...> load()
session.registerKeystore(<pathToKeystore>, <keystorePassword>) PgxFrame exampleFrame = session.readFrame() .db() .name("Transfers") .tablename("T1") // name of the table from where the data must be loaded .jdbcUrl("<jdbcUrl>") .username("<username>") .keystoreAlias("<keystore_alias>") .connections(16) // indicates that 16 connections can be used to load in parallel .columns( columnDescriptor("FROM_ACCT_ID", DataTypes.INTEGER_TYPE), columnDescriptor("TO_ACCT_ID", DataTypes.INTEGER_TYPE) ) // columns to load .load();
>>> example_frame = session.read_frame() \ ... .name('Transfers1') \ ... .db() \ ... .table_name('T1') \ ... .jdbc_url('jdbc:oracle:thin:@localhost:1521/orclpdb') \ ... .username('graphuser') \ ... .keystore_alias('database3') \ ... .columns( ... [ ... ('FROM_ACCT_ID', 'INTEGER_TYPE'), ... ('TO_ACCT_ID', 'INTEGER_TYPE') ... ] ... )\ ... .load()
PgxFrame
からグラフを作成することもできます。詳細は、複数のPgxFrameオブジェクトからのグラフの作成を参照してください。
親トピック: PgxFrameの表形式データ構造