28.13.8 ベクトル・プロパティのロードと格納
PgxFrameを使用して、グラフ・サーバー(PGX)のPgxML機能の基礎であるベクトル・プロパティをロードまたは格納できます。
ベクトル・プロパティを含むPgxFrameをロードするには、次に示すステップに従います。
- 次のようにセッションとアナリストを作成します。
cd /opt/oracle/graph/ ./bin/opg4j 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.* opg4j> var session = Pgx.createSession("my-session") opg4j> var analyst = session.createAnalyst()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スキーマを作成し、次に示すように列を定義します。opg4j> var vecFrameSchema = List.of( columnDescriptor("intProp", DataTypes.INTEGER_TYPE), columnDescriptor("intProp2", DataTypes.INTEGER_TYPE), columnDescriptor("vectProp", DataTypes.vector(DataTypes.FLOAT_TYPE, 3)), columnDescriptor("stringProp", DataTypes.STRING_TYPE), columnDescriptor("vectProp2", DataTypes.vector(DataTypes.FLOAT_TYPE, 2)) ).toArray(new ColumnDescriptor[0])ColumnDescriptor[] vecFrameSchema = { columnDescriptor("intProp", DataTypes.INTEGER_TYPE), columnDescriptor("intProp2", DataTypes.INTEGER_TYPE), columnDescriptor("vectProp", DataTypes.vector(DataTypes.FLOAT_TYPE, 3)), columnDescriptor("stringProp", DataTypes.STRING_TYPE), columnDescriptor("vectProp2", DataTypes.vector(DataTypes.FLOAT_TYPE, 2)) };vec_frame_schema = [ ("intProp", "INTEGER_TYPE"), ("intProp2", "INTEGER_TYPE"), ("vectProp", "VECTOR_TYPE(FLOAT_TYPE, 3)"), ("stringProp", "STRING_TYPE"), ("vectProp2", "VECTOR_TYPE(FLOAT_TYPE, 2)") ]- 指定したパスから、指定したスキーマで
PgxFrameをロードします。opg4j> var vecFrame = session.readFrame(). db(). name("vector PgxFrame"). //name of the PgxFrame tablename("tablename"). // name of the table from where the data must be loaded jdbcUrl("<jdbcUrl>"). username("<username>"). password("<password>"). 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(vecFrameSchema). // columns to load load()PgxFrame vecFrame = session.readFrame() .db() .name("vector PgxFrame") //name of the PgxFrame .tablename("tablename") // name of the table from where the data must be loaded .jdbcUrl("<jdbcUrl>") .username("<username>") .password("<password>") .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(vecFrameSchema) // columns to load .load();>>> vec_frame = ( ... session.read_frame(). ... name('vector PgxFrame'). # name of the PgxFrame ... db(). ... table_name("FRAME_TBL"). # name of the table from where the data must be loaded ... jdbc_url("<jdbc_url>"). ... username("<username>"). ... password("<password>"). ... connections(16). # indicates that 16 connections can be used to load in parallel ... columns(vec_frame_schema). # columns to load ... load() ... )PgxFrame内の最終結果は、次のようになります。+-----------------------------------------------------------+ | intProp | intProp2 | vectProp | stringProp | vectProp2 | +-----------------------------------------------------------+ | 0 | 2 | 0.1;0.2;0.3 | testProp0 | 0.1;0.2 | | 1 | 1 | 0.1;0.2;0.3 | testProp10 | 0.1;0.2 | | 1 | 2 | 0.1;0.2;0.3 | testProp20 | 0.1;0.2 | | 2 | 3 | 0.1;0.2;0.3 | testProp30 | 0.1;0.2 | | 3 | 1 | 0.1;0.2;0.3 | testProp40 | 0.1;0.2 | +-----------------------------------------------------------+
親トピック: PgxFrameの表形式データ構造