15.12.1 データベースからのPgxFrameのロード

PgxFrameは、Oracleデータベースのリレーショナル表からロードすることもできます。リレーショナル表の各列は、ロードされたフレーム内の列に対応します。データベースからPgxFrameをロードする場合、デフォルトの動作では、表にある列が検出され、それらがすべてロードされます。明示的に指定しない場合、現在のユーザーおよびセッションの接続詳細が使用され、列が自動的に検出されます。

データベース表からPgxFrameをロードするステップを次に示します。

  1. セッションアナリストを作成します。
    JShellを使用したセッションおよびアナリストの作成
    
    cd /opt/oracle/graph/
    ./bin/opg4j
    // starting the shell will create an implicit session and analyst
    Javaを使用したセッションおよびアナリストの作成
    
    import oracle.pgx.api.*;
    import oracle.pgx.api.frames.*;
    ...
    PgxSession session = Pgx.createSession("my-session");
    Analyst analyst = session.createAnalyst();
    Pythonを使用したセッションおよびアナリストの作成
    
    session = pypgx.get_session(session_name="my-session")
    analyst = session.create_analyst()
  2. PgxFrameをロードします。
    JShellを使用したPgxFrameのロード
    opg4j> var exampleFrame = session.readFrame().
        db().
        name("framename").      // name of the frame
        tablename("tablename"). // 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();
    Javaを使用したPgxFrameのロード
    PgxFrame exampleFrame = session.readFrame()
        .db()
        .name("framename")      // name of the frame
        .tablename("tablename") // 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();
  3. 列のサブセットのみをロードする必要がある場合は、FrameReader.columns()で列を指定する必要があります。
    JShellを使用した列のサブセットに対するPgxFrameのロード
    // You must specify jdbc connection, keystore and the columns to load
    opg4j> session.registerKeystore("keystore", pathToKeystore, keystorePassword)
    opg4j> var exampleFrame = session.readFrame().
        db().
        name("framename").
        tablename("tablename").      // name of the table from where the data must be loaded
        jdbcUrl("jdbcUrl").
        username("user").
        keystoreAlias("keytore").
        owner("owner").              // necessary if the table is owned by another user
        connections(16).             // indicates that 16 connections can be used to load in parallel
        columns(exampleFrameSchema). // columns to load
        load();
    Javaを使用した列のサブセットに対するPgxFrameのロード
    import oracle.pgx.api.frames.schema.datatypes.DataTypes;
    import oracle.pgx.api.frames.schema.ColumnDescriptor;
    // You must specify jdbc connection, keystore and the columns to load
    session.registerKeystore("keystore", pathToKeystore, keystorePassword)
    PgxFrame exampleFrame = session.readFrame()
        .db()
        .name("framename")
        .tablename("tablename")      // name of the table from where the data must be loaded
        .jdbcUrl("jdbcUrl")
        .username("user")
        .keystoreAlias("keytore")
        .owner("owner")              // necessary if the table is owned by another user
        .connections(16)             // indicates that 16 connections can be used to load in parallel
        .columns(exampleFrameSchema) // columns to load
        .load();