投稿者

Training Sales Engineer at InterSystems Japan
お知らせ Mihoko Iijima · 3月 26, 2024

バージョン2024.1:新機能紹介ウェビナー開催決定!(4月~6月)

開発者の皆さん、こんにちは。

(2024/5/30:6月の日時、ウェビナー内容を更新しました)

InterSystems IRIS、InterSystems IRIS for Healthの新バージョン2024.1がリリースされました。

様々な機能の追加や実験的機能としての追加が行われましたが、その中から以下3種類の内容についてウェビナーを開催します!📣

✅4月23日(火)13時半~14時:IRIS 2024.1の管理用Webサーバ(PWS)廃止に備えて

YouTube公開しました👉https://youtu.be/bVwWZt1oNws?list=PLzSN_5VbNaxCeC_ibw2l-xneMCwCVf-Or

✅5月30日(木)13時半~14時:ベクトル検索機能のご紹介

YouTube公開しました👉https://youtu.be/v0G7K2et_Yk?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz

✅6月25日(火)13時半~14時:FHIR新機能のご紹介~2024.1~

オンデマンド配信はこちら👉https://event.on24.com/wcc/r/4597704/ADA161B6446E6BA01623C875CF596FD0
(資料PDFもオンデマンド配信画面よりダウンロードいただけます)
 

ご参考:リリース案内記事

ウェビナーでご案内する機能以外にも実験的機能も含め多くの機能が追加されていますので、以下簡単に概要をご紹介します。

現在日本語ドキュメントは鋭意翻訳中のため、仕上がるまでの間は英語ドキュメント(IRISリリースノートIRIS for Healthリリースノート)をご参照ください。


管理系

✔ マルチボリュームデータベース: スケーラビリティとストレージ管理の強化

下図はデータベース新規作成の画面ですが、設定項目に [New Volume Threshold Size] の項目が追加されました。
(ドキュメント:Configuring a Multivolume Database

この値を 0 より大きい値に設定した場合、DATが指定サイズを超えると指定フォルダ内に IRIS-000x.VOL というデータベースを作ります。(拡張ファイルとして指定サイズで区切ったデータベースファイルが作成できるようになりました)

✔ ファスト・オンライン・バックアップ(実験的機能): バックアッププロセスの合理化

以前より、外部バックアップ(Backup.GeneralクラスのExternalFreeze()/ExternalThaw()を利用する方法)と、オンラインバックアップを提供していますが、このリリースの実験的機能追加は「オンラインバックアップ」に対しての高速化とクラスAPIの用意です。(Bakcup.Onlineクラスが追加されました)

現段階では、Backup.Onlineクラスを利用したバックアップに対しての高速化が行われています。管理ポータルメニューからの実行やDBACKルーチンを利用した実行には影響がありません。お試しいただく場合は、Early Access Program(EAP)へのお申込みをどうそよろしくお願いします。

✔ 複数のスーパーサーバポート: ネットワーク構成の柔軟性を提供

お馴染みの1972番以外のポート番号をスーパーサーバポートとして追加できるようになりました。(JDBC/ODBC経由のアクセスがある時は別ポートでアクセス、など柔軟に対応できるようになりました)

設定は、管理ポータル > [システム管理] > [セキュリティ] > [Superservers] から行えます。
(ドキュメント:Managing SuperServers

52774のポートを追加した例:

 

JDBCでの接続の例

import java.sql.*;
import java.util.Scanner;
import com.intersystems.jdbc.*;
publicclassJDBCTest{
    publicstaticvoidmain(String[] args)throws Exception {
        //接続文字列
        String url = "jdbc:IRIS://localhost:52774/USER";
        Class.forName("com.intersystems.jdbc.IRISDriver").newInstance();

        //com.intersystems.jdbc.IRISDataSource を使用し、java.sql.Connectionオブジェクトを作成
        IRISDataSource ds = new IRISDataSource();
        ds.setURL(url);
        ds.setUser("SUPERUSER");
        ds.setPassword("SYS");
        Connection connection = ds.getConnection();
       
        //SELECT実行
        String query = "SELECT ID,Name,Email FROM Test.Person";
	    PreparedStatement statement = connection.prepareStatement(query);
        ResultSet resultSet = statement.executeQuery();
        System.out.println("\n*** SELECTの結果 ****");
        while (resultSet.next()) {
            System.out.println(resultSet.getString(1) + " - " + resultSet.getString(2)+ " - " + resultSet.getString(3));
        }

        resultSet.close();
        statement.close();
        connection.close();    
    }
}

 

SQL

✔ JSON_TABLE関数、With句のサポート追加

(ドキュメント:JSON_TABLE (SQL)WITH (SQL))​​​​

JSON_TABLE()関数では、%Net.GetJson()を利用して外部サイトからの結果をそのまま使用することもできます。

例)zipcloudのAPIを使用した例です。

〒0790177で取得できる結果のJSONを使用しています(https://zipcloud.ibsnet.co.jp/api/search?zipcode=0790177

メモ:httpsを使用するため、%Net.GetJson()の第2パラメータに予め管理ポータルで設定したSSL/TLS構成名を指定しています。​

設定は、 [システム管理] > [セキュリティ] > [SSL/TLS構成] メニューを開き、「構成名」に任意名を設定し、「保存」ボタンをクリックします(そのほかの構成パラメータは、デフォルト値で作成します)。

例では、”test” の名称で作成した構成名を指定しています。({"SSLConfigration":"test"})

SELECT address1,address2,address3,kana1,kana2,kana3,zipcode
  FROM JSON_TABLE(%Net.GetJson('https://zipcloud.ibsnet.co.jp/api/search?zipcode=0790177','{"SSLConfiguration":"test"}')
,
  '$.content.results'COLUMNS ( address1 VARCHAR(100) PATH'$.address1',
              address2 VARCHAR(100) PATH'$.address2',
              address3 VARCHAR(100) PATH'$.address3',
              kana1 VARCHAR(100) PATH'$.kana1',
              kana2 VARCHAR(100) PATH'$.kana2',
              kana3 VARCHAR(100) PATH'$.kana3',
              zipcode VARCHAR(10) PATH'$.zipcode')
  ) as jt
  ORDERBY address3

《結果》

✔ 安全なクエリ中止(CANCEL QUERY)

このリリースでInterSystems SQL に実行中のステートメントを中止し、実行により使用されていたメモリや一時領域などを安全に開放する新しいコマンド CANCEL QUERY が追加されました。

クエリパフォーマンスを向上させる機能強化

  • グローバルイテレータでは、ObjectScriptを使用せずに、インデックスおよびデータマップを参照する処理の多くをカーネル内部モジュールで実行します。
  • Adaptive Parallel Execution (APE; アダプティブ並列実行) フレームワークでカラムナーストレージを含むクエリに初めて対応しました。APEでは個別の並列サブクエリをプリペアして実行するのではなく、メインクエリとして同じクエリキャッシュクラスを並列ワーカーコードとして生成します。

Embedded Python

✔ Pythonランタイムが選択可能に(Windowsを除く)

Linuxベースの環境限定となりますが、管理ポータルでPythonランタイムを指定できるようになりました。(ドキュメント:Flexible Python Runtime Feature

管理ポータル > [システム管理] > [構成] > [追加の設定] > [メモリ詳細] > [PythonRuntimeLibrary]

PythonRuntimeLibrary構成設定詳細(英語)

✔ BPLエディタ内でPythonの記述が可能に

Interoprabilityで使用するビジネス・プロセスのエディタの1つであるBPLエディタ内のCodeアクティビティにEmbedded Pythonが記述できるようになりました。

✔ Python WSGI標準準拠のWebアプリが作成可能に(実験的機能)

IRISのインスタンス内部でEmbedded Pythonを使用して flask や Django などの WSGI 準拠フレームワークを実行することができるようになりました。

(ドキュメント:Creating WSGI Applications

WSGIのWebアプリの実行を指定するために、管理ポータルの以下メニューや用意されました。

管理ポータル > [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]

図の設定では、http://Webサーバ/flaskapp が指定されるとFlaskで記述している flasktest アプリケーションが呼び出されます。

メモ:例では、パスを通過した後に付与されるアプリケーション・ロールを指定しています。本来であれば適切なロールを用意し付与しますが簡易的に試すためフルアクセスできる%Allを付与しています)

この例のWebサーバ(localhost:8080)に対してパスを指定すると以下の画面が表示されます。画面でID番号を入力すると、指定IDを条件にIRISにあるテーブルに対してSELECT文が実行されレコードの中身が表示されます。

以下ご参考(コード例):

 

Pythonのコード

from flask import Flask, render_template, request

## Embedded Python ここから ##import sys
sys.path+=['/usr/irissys/mgr/python','/usr/irissys/lib/python']

defgetOnePerson(id):import iris

    sql="select ID,Name,Email,TOCHAR(DOB,'YYYY-MM-DD') from Test.Person WHERE ID=?"
    stmt=iris.sql.prepare(sql)

    rset=stmt.execute(id)

    reco=rset.__next__()

    return reco
### Embedded Python ここまで ##### Flask ##
app = Flask(__name__)

@app.route('/',methods=['GET'])defperson() -> str:return render_template("start.html",post="")

@app.route('/', methods=['POST'])defpersonsearch():
    pid=request.form['pid']
    post=getOnePerson(pid)
    #print(post)return render_template("start.html",post=post)
    
if __name__ == '__main__':
    app.run(debug=True,host="0.0.0.0",port=8090)

 

 

使用しているHTML

<!DOCTYPE html><htmllang="ja"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"rel="stylesheet"integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM"crossorigin="anonymous"><title>IRISのデータ参照する</title></head><body><navclass="navbar navbar-light"style="background-color: #e3f2fd;""><aclass="navbar-brand pl-3"href="/flasktest/"style="font-size: 2rem;">Person検索!</a></nav><h2>情報入力</h2><divclass="form"><formaction="/flasktest/"method='POST'><labelfor="title">PersonのIDを入力してください:
            </label><inputtype="text"name="pid"value={{post[0] }}><inputtype="submit"value="Person検索"></form>
        {% if post != "" %}
        <div><tableclass="table table-light table-striped"><tr><th>名前</th><td>{{post[1]}}</td></tr><tr><th>Email</th><td>{{post[2]}}</td></tr><tr><th>誕生日</th><td>{{post[3]}}</td></tr></table></div>
        {% endif %}
    </div></body></html>

 

Comments

Mihoko Iijima · 4月 24, 2024

新機能紹介ウェビナー第2段、5月開催詳細が決定しました!

✅5月30日(木)13時半~14時:ベクトル検索機能のご紹介

お申し込みは👉https://event.on24.com/wcc/r/4571564/A10293B27D767898A19C5B73188BF7DE

4月開催分のオンデマンド視聴開始しました。ぜひご覧ください。

✅4月ウェビナー:IRIS 2024.1の管理用Webサーバ(PWS)廃止に備えて

オンデマンド視聴できます👉https://event.on24.com/wcc/r/4515226/1323ED7EECDC5A18B293BC2BCFDD3A9C

0
Mihoko Iijima · 5月 30, 2024

新機能紹介ウェビナー第3弾、6月開催詳細が決定しました!

✅6月25日(火)13時半~14時:FHIR新機能のご紹介~2024.1~

お申し込みは👉https://event.on24.com/wcc/r/4597704/ADA161B6446E6BA01623C875CF596FD0

5月開催分のオンデマンド視聴開始しました。ぜひご覧ください。

✅5月30日(木)13時半~14時:ベクトル検索機能のご紹介

https://event.on24.com/wcc/r/4571564/A10293B27D767898A19C5B73188BF7DE

0