機械翻訳について

データベースへのPgxFrameの格納

PgxFrame出力をリレーショナル・データベース表に格納できます。

propertyグラフの機械学習アルゴリズムの出力はPgxFrame(s)で、このデータ構造はデータベースに格納できます。 PgxFrameの列および行は、データベース表の列および行に対応しています。

次の例では、PGQL結果セットをPgxFrameに変換し、表としてデータベースに格納されます。

var g = session.readGraphByName("BANK_GRAPH", GraphSource.PG_VIEW)
var query = "SELECT s.acct_id FROM MATCH (s) LIMIT 10"
var rs = g.queryPgql(query)
if (rs != null) {
  rs.toFrame().write().db()
    .tablename("accounts") // name of the DB table
    .overwrite(true)
    .store();
}
g = session.read_graph_by_name("BANK_GRAPH", "pg_view")
query = "SELECT s.acct_id FROM MATCH (s)"
rs = g.execute_pgql(query)
if (rs != None):
    rs.to_frame().write().db().table_name("accounts").overwrite(True).store()

ノートブックの段落を実行すると、PgxFrameデータが適切なデータベース表に挿入されます。 これを確認するには、データベース・アクションを使用してデータベース表を表示および問い合せます。 データベース・アクションでのSQL文の実行の詳細は、「データベース・アクションのSQLページ」を参照してください。

また、次の点にも注意してください。

  • 生成された表名と列名は大/小文字が区別されます。 前述のコード例では、"acct_id"という名前の列を含む小文字名"accounts"を持つデータベース表を作成します。
    ただし、問合せは次のようになります:
     "SELECT s.acct_id as ACCT_ID FROM MATCH (s) limit 10"
    表名がtablename("ACCOUNTS")として指定されている場合、データベース表には大文字の名前"ACCOUNTS"と列名が"ACCT_ID"になります。
  • 同じ名前のデータベース表がすでに存在する場合は、前述の例に示すようにoverwrite(true)を設定して上書きモードを使用できます。 前の表が切り捨てられ、データが挿入されます。 デフォルトでは、値はfalseに設定されています。
  • Always Free Autonomous Databaseインスタンス(つまり、1つのOCPUと20GBのストレージのみを含むインスタンス)を使用している場合は、Java (PGX)ノートブック段落の表へのPgxFrameの書込み時に、1つの接続のみを使用する必要も指定する必要があります。 たとえば、次のようにwrite()を起動する必要があります:
    rs.toFrame().write().db().connections(1).tablename("accounts").overwrite(true).store();