#InterSystems IRIS for Health

0 フォロワー · 943 投稿

InterSystems IRIS for Health™は、世界で最も重要なデータを管理する医療アプリケーションの迅速な開発を目的に特別に設計された世界初、かつ唯一のデータプラットフォームです。 トランザクションの処理と分析、拡張可能な医療データモデル、FHIRベースのソリューション開発、医療情報の相互運用性に関わる標準規格への対応など、すぐに使える強力な機能を搭載しています。 これらすべての機能により、開発者は価値を実現し、画期的なアプリケーションをすばやく構築することができます。 詳細はこちらをご覧ください

記事 Mihoko Iijima · 12月 8, 2020 1m read

これは、InterSystems FAQサイトの記事です。

$SYSTEM.Process.TerminalPrompt() を使用してターミナルのプロンプトを変更できます。

プロンプトの表示形式は、以下情報の組み合わせで指定できます。

  1.  ホスト名
  2. 現在のネームスペース
  3. 構成名
  4. 現在の時刻
  5. PID: オペレーティングシステム上でのプロセスID
  6. ユーザーネーム
  7. 最後のコマンドを実行してからの経過時間

例えば、Do $SYSTEM.Process.TerminalPrompt(1,3) ではホスト名と構成名をターミナルのプロンプトとして表示します。 

*実行例は、ホスト名="HOST1"、構成名="IRIS"*

USER>Do $SYSTEM.Process.TerminalPrompt(1,3)
HOST1:IRIS>
0
0 241
記事 Mihoko Iijima · 12月 7, 2020 2m read

これは、InterSystems FAQサイトの記事です。

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

上記のようなSQL文は、下記のSQL文で代替可能です。

0
0 515
お知らせ Mihoko Iijima · 12月 4, 2020

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

第8回 Analytics コンテスト続報 📣 の「テクノロジーボーナス」について紹介します。

  • InterSystems IRIS BI(旧DeepSee)
  • InterSystems IRIS NLP
  • IntegratedML
  • 実データの利用
  • ZPM を利用したパッケージの開発
  • Docker コンテナの利用

ボーナス詳細は以下ご参照ください。

InterSystems IRIS BI - 1 point 

InterSystems IRIS BI(旧DeepSee)は、IRIS の分析機能で、IRIS に格納されたデータに対して BI キューブやピボットを作成し、インタラクティブなダッシュボードを使用してユーザーに情報を提供することができます。

InterSystems IRIS BI のドキュメントはこちらからご参照いただけます。

開発環境のテンプレート(IRIS-Analytics-template)には、IRIS BI のキューブ、ピボット、ダッシュボードの例が含まれています。
使い方の日本語解説ビデオ付き記事もあります。ぜひご活用ください!

0
0 133
記事 Toshihiko Minamoto · 12月 2, 2020 3m read

皆さん、こんにちは。
ストリームデータをデータベースに格納する場合、ファイルなどから読み取る際に漢字コード変換を行い、Unicode形式で%GlobalCharacterStreamに格納されるかと思いますが、時々、バイナリのままで読み込んでしまい、漢字コード変換を行わないといけない状況があるかと思います。


ファイルストリームでしたら%FileCharacterStreamクラスのTranslateTableプロパティに元の漢字コードを指定すれば、以下のようにコード変換しながら読みだすことは可能です。

 変数binは%FileBinaryStreamクラスのインスタンス
USER>zzdump bin.Read()
0000: E6 97 A5 E6 9C AC E8 AA 9E E3 82 92 E5 90 AB E3         æ.¥æ.¬èª.ã.å.«ã
0010: 82 80 E6 96 87 E5 AD 97 E5 88 97 E3 81 8C E3 81         .æ.å­.å.ã.ã.
0020: A9 E3 81 AE E3 82 88 E3 81 86 E3 81 AB E8 A1 A8         ©ã.
0
1 498
記事 Mihoko Iijima · 12月 1, 2020 2m read

これは、InterSystems FAQサイトの記事です。

以下の例では Test.Class2 クラスの Images プロパティに画像ファイルが保存できるように定義しています。
input() メソッドを利用して画像ファイルを Images プロパティに登録し、データベースに保存したとします。

Class Test.Class2 Extends %Persistent
{

Property Images As %Stream.GlobalBinary;

///引数には画像ファイルのフルパスを指定
ClassMethod input(in As %StringAs %Status
{
 //画像ファイル格納用ストリームのインスタンスを用意
 set filestream=##class(%Stream.FileBinary).%New()
 //画像ファイルをストリームのインスタンスにリンクさせる
 do filestream.LinkToFile(in)
 //Test.Class2クラスのインスタンス生成
 set o=..%New()
 //画像のストリームをTest.Class2のインスタンスにコピー
 do o.Images.CopyFrom(filestream)
 //インスタンスをデータベースに保存
 quit o
0
0 461
記事 Mihoko Iijima · 12月 1, 2020 2m read

これは、InterSystems FAQサイトの記事です。

プログラムでロック情報を取得するには以下2種類の方法があります。

  1. %SYS.LockQuery クラス を使用する方法
  2. SSVN(構造化システム変数)を使用する方法

1.  %SYS.LockQuery クラス を使用する方法

 #dim rset As %SQL.StatementResult
 set stmt=##class(%SQL.Statement).%New()
 set st=stmt.%PrepareClassQuery("%SYS.LockQuery","List")
 set rset=stmt.%Execute()
 while rset.%Next() {
   write !,rset.%Get("FullReference")
   write !,rset.%Get("Owner")
   write !,rset.%Get("DelKey"),!
 }

より詳細なロック情報を取得する場合には List クエリではなく Detail クエリを使用します。

set st=stmt.%PrepareClassQuery("%SYS.LockQuery","List")  を

set st=stmt.%PrepareClassQuery("%SYS.

0
0 402
お知らせ Mihoko Iijima · 11月 26, 2020

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

この投稿では、第8回 InterSystems IRIS Analytics コンテスト の 開発テンプレート(IRIS Analytics Template) の使い方をご紹介します。

開発テンプレートは、Gitからソースコードをダウンロードし、コンテナを開始するだけで Johns Hopkins repository で公開されている COVID-19 のデータを使用した InterSystems BI(旧DeepSee)での分析環境が準備できます(サンプルデータが入ったテーブル、モデル定義、ピボットテーブル、ダッシュボードが準備されます)。

コンテストでは、開発テンプレートをベースとし、コードを追加しながらオリジナルアプリケーションを開発いただいたり、新規で作成いただいたり、自由に開発いただけます。

InterSystems BI を使ったアプリケーションでチャンレンジされる場合は、ぜひ、ここで紹介している開発テンプレートをご利用ください!

この他、サンプルアプリケーションの例は、コンテスト告知ページをご参照ください!

メモ:開発テンプレートはコンテスト以外の目的にもご活用いただけます!

以下、事前準備についてご説明します。

開発テンプレートをご利用いただくために、以下 3 つのソフトウェアのインストールが必要です。

2
0 331
記事 Megumi Kakechi · 11月 24, 2020 2m read

これはInterSystems FAQ サイトの記事です。
InterSystemsの製品には同時ユーザー数でライセンスの容量を決定する製品とサーバーのCPUコア数で容量を決定する製品の2種類があります。

同時ユーザー数ライセンスタイプの場合、CPUコア数により使用可能なライセンスのグレードに制限があります。

物理サーバーの場合には、そのサーバーが保持しているCPUコア数の総数をカウントします。

そして、その総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

サーバー仮想化ソフトウェア(VMWare、Hyper-Vなど)を利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。

同様にその総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

CPUコア数ライセンスタイプの場合、コア数によりライセンスの容量が決まります。

CPUコア数の数え方は、同時ユーザーライセンスタイプと同じです。

物理サーバーの場合は、そのサーバーが保持しているCPUコア数の総数をカウントします。

サーバー仮想化ソフトウェアを利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。

0
0 340
記事 Megumi Kakechi · 11月 24, 2020 1m read

これは、InterSystems FAQサイトの記事です。
 

以下に当てはまる場合、差分バックアップではなくフルバックアップが取られます。

・リストの中に1つでもフルバックアップを取っていないデータベース(DB)が含まれるとき
・リストの中に読み込み専用のDBが含まれるとき
 →読込専用DBはバックアップが取れないため、対象リストのDBは毎回フルバックアップが取られます

ReadOnlyマウントしたDBをバックアップしようとすると、以下のようなログが出力されます。

WARNING - the following directories could not be backed up 
 c:\intersystems\ensemble\mgr\xxx\ (Database is readonly)


読込専用DBはバックアップリストから除く必要があります。

もし、読込専用DBをバックアップする場合は、別途バックアップする必要があります。

0
0 200
お知らせ Mihoko Iijima · 11月 24, 2020

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 第7回の勝者が発表されたばかりですが、第8回のテーマが発表されました!

今回のコンテストのテーマは 🏆 InterSystems Analytics Contest 🏆 です!

さぁ、年内最後のコンテストです!日本からのご応募お待ちしております!

応募期間は 2020年12月7日~20日 です!

(投票期間は 2020年12月21日~27日、勝者発表は 12月28日を予定しています)

優勝特典

1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。

🥇 1位 - $2,000 

🥈 2位 - $1,000 

🥉 3位 - $500

2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。

🥇 1位 - $1,000 

🥈 2位 - $500 

複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。

参加資格

どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)

コンテストのスケジュール

12月7日~20日 応募期間Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。

0
0 221
記事 Tomoko Furuzono · 11月 24, 2020 2m read

これは、InterSystems FAQサイトの記事です。
[管理ポータル] > [システムオペレーション] > [ライセンス使用量] ページで表示される各項目の意味は以下のとおりです。
 ① 現在使用中のライセンス数:現時点のライセンスユニット使用数です。

② 最大ライセンス使用:インスタンスが起動した後、現在に至るまでで最もライセンス使用の大きかった時点の
            "現在使用中のライセンス数"です。

③ 許可されたライセンス数(Cache.Key/iris.keyの値):該当システムで許可されている最大ライセンスユニット数です。

④ 現在の接続:現時点のクライアントからの接続数です。

⑤ 最大接続:インスタンスが起動した後、現在に至るまでで最も接続数の大きかった時点の"現在の接続"です。
(A) ローカル:表示しているサーバのインスタンスで消費しているライセンスの情報です。

(B) リモート:マルチサーバライセンスを使用して複数インスタンスでライセンス共有している場合の、共有している全インスタンスで消費しているライセンスの合計値の情報です。
 

※ライセンス共有を行うには、ライセンスサーバの設定が必要です。詳細は下記トピックをご参考になさってください。
複数インスタンスでライセンスを共有する場合に必要な設定

0
0 662
記事 Tomoko Furuzono · 11月 24, 2020 1m read

これは、InterSystems FAQサイトの記事です。

IRISTempデータベースのサイズを小さくする方法は2つあります。

一つは、IRISTempデータベースを再作成する方法です。
手順としては、下記を実行します。

  1. IRISの停止
  2. IRISTempデータベースファイルの削除
  3. IRISの起動

これにより、3.のIRIS起動時に、IRISTempデータベースが初期サイズ(1024KB)で再作成されます。
 

もう一つの方法は、構成パラメータの設定による方法です。
構成パラメータ「MaxIRISTempSizeAtStart」を設定することにより、IRIS起動時のIRISTempデータベースの最大サイズを設定できます。

システムは、設定後、次のIRIS起動時に、設定された値(MB)にIRISTempの切り捨てを行います。 指定した MaxIRISTempSizeAtStart よりも現在のサイズが小さい場合は、切り捨ては行われません。
また、0 を指定すると切り捨てが行われないため、サイズは変わらないまま起動します。(デフォルト)

設定は、以下メニューから行います。

管理ポータル
[システム管理]>[構成]>[追加の設定]>[開始]>"MaxIRISTempSizeAtStart"

詳細は下記ドキュメントページをご確認ください。
MaxIRISTempSizeAtStart

0
1 309
記事 Tomoko Furuzono · 11月 24, 2020 2m read

これは、InterSystems FAQサイトの記事です。

IRISおよびIRISforHealthのランチャーからドキュメントをポイントすると、Web上の英語ドキュメントを参照します。

以下の設定ファイルを下記のように修正することにより、ランチャーから日本語ドキュメントを参照できるようになります。

<インストールディレクトリ>\httpd\conf\httpd-doc.conf

【IRIS】
[変更前]
Redirect /csp/docbook/ http://docs.intersystems.com/iris20201/csp/docbook/&nbsp;
[変更後]
Redirect /csp/docbook/ https://docs.intersystems.com/iris20201/csp/docbookj/&nbsp;

【IRIS for Health】
[変更前]
Redirect /csp/docbook/ http://docs.intersystems.com/irisforhealth20201/csp/docbook/
[変更後]
Redirect /csp/docbook/ https://docs.intersystems.

0
0 244
お知らせ Mihoko Iijima · 11月 24, 2020

開発者の皆さんこんにちは!

第7回 InterSystems IRIS プログラミングコンテスト(Interoperabilityコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。

今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

🏆  審査員賞 -特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。

🥇 1位 - $2,000 は Open API Client Gen を開発された Lorenzo Scalese さんに贈られました!

🥈 2位 - $1,000 は OCR Service を開発された YURI MARX GOMES さんに贈られました!

🥉 3位 - $250 は IRIS Interoperability Message Viewer を開発された Henrique Gonçalves Dias さんに贈られました!

🥉 3位 - $250 は interoperability-integratedml-adapter を開発された José Roberto Pereira さんに贈られました!

🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。

0
0 107
記事 Hiroshi Sato · 11月 23, 2020 2m read

これはInterSystems FAQ サイトの記事です

 1. エクスポートAPI

a. ルーチンを個別に指定してエクスポートする場合は、$system.OBJ.Export() を使用します。

例: 

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

指定する形式は ルーチン名.拡張子 で、拡張子は mac,bas,int,inc,obj を指定します。

エクスポート中のエラーは errors に格納されます。

$system.OBJ.Export() の詳細はクラスリファレンス %SYSTEM.OBJ を参照してください。

b. ワイルドカードを使用してエクスポートする場合にも、$system.OBJ.Export() を使用します。
例: 

do $system.OBJ.Export("*.mac",c:\temp\allmacroutines.xml")

※バージョン2008.1より前では、$system.OBJ.ExportPattern() を使用します。

2. インポート方法

a. ファイルに含まれる全ルーチンをインポートする

ファイルに含まれる全ルーチンをインポートするには $system.OBJ.Load() を使用します。

例: 

do $system.OBJ.
0
0 671
記事 Hiroshi Sato · 11月 23, 2020 1m read

これはInterSystems FAQ サイトの記事です。

変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。

しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。

一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。

名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。

また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。
しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。

さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。
(例: tSC,pLengthなど)

0
0 179
記事 Mihoko Iijima · 11月 20, 2020 2m read

これはInterSystems FAQ サイトの記事です。

バックアップには、以下4種類の方法があります。

  1. 外部バックアップ
  2. オンラインバックアップ(コンカレントバックアップ)
  3. コールドバックアップ
  4. レガシー並行外部バックアップ

詳細は、以下ドキュメントをご参照ください。

バックアップの方法について【IRIS】
バックアップの方法について

1、2、4は、インスタンスを停止せずにバックアップが行えます(末尾の関連情報もご参照ください)。3 は、インスタンスを停止した後でバックアップを行う方法です。

またシステム構成や障害バターンを基にバックアップを設計、計画する上での注意点、自動化のサンプルやバックアップを実施する上で役立つ各種関連技術についてはInterSystems Symposia 2014 発表資料 をご参照ください(※1)。

※1:InterSystems Symposia 2014でご紹介した内容で、Cachéと記載がありますがバックアップ方法についてはIRISも同様です。

【関連情報】(コミュニティ/FAQトピックをリンクしています)

0
0 654
記事 Mihoko Iijima · 11月 20, 2020 3m read

これはInterSystems FAQ サイトの記事です。

(2025/2/17更新)担当される役割や学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページ :InterSystems ラーニングパス をご利用ください(ページの使い方については、記事「学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページ」をご参照ください)。

また、現在ご覧いただいている開発者コミュニティの中では、初心者(beginner)タグ があり、下記セルフラーニング用資料/ビデオをご用意しています。ぜひご参照ください。

セルフラーニングビデオ以外にも、過去に開催したウェビナーアーカイブビデオも公開しています👉「開発者向けウェビナー:アーカイブビデオ一覧

ぜひご参照ください。

0
1 674
記事 Hiroshi Sato · 11月 16, 2020 2m read

これはInterSystems FAQ サイトの記事です。
 

Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。

以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。
*実行は、%SYSネームスペースで行って下さい。*

Set Directory="/CacheDB/AAA/"
Set x=$ZF(-100, "/shell", "mkdir", Directory)
Set db=##Class(SYS.Database).%New()
Set db.Directory=Directory
Set status=db.%Save()
Set DBName="AAA"
Set status=##class(Config.Configuration).AddDatabase(DBName,Directory)
Set NSName=DBName
Set status=##class(Config.Configuration).
0
0 384
記事 Hiroshi Sato · 11月 16, 2020 1m read

これはInterSystems FAQ サイトの記事です。
 

InterSystems ObjectScript言語では引数の異なる同名のメソッドを定義することはできません。

InterSystems ObjectScript言語は一般的に動的言語と呼ばれるプログラミング言語に分類されます。

ObjectScriptではメソッド実行時にどの引数を使用するかどうかは自由に制御可能ですので、動的プログラミング言語ではないJava等の言語と異なり、コンパイルの段階で厳密に引数の数でメソッドを区別する必要がありません。

従って ObjectScript言語は、オーバーロードと一般に呼ばれる言語仕様を含んでいません。

Java等で記述されたプログラムを移植する際にオーバーロード相当の機能を実現するには、

ClassMethod test(args... as %String)

のように引数の後ろに ... を付加します。

これにより、可変長引数を渡すことが可能です。

このメソッドに複数の引数が渡された場合は、args(1)=第一引数 args(2)=第二引数というように順次設定されます。

これを使用して、メソッドコード中で渡された引数の個数を取得して処理を分岐させることができます。
※ただし、引数のデータタイプを判別することはできません。

0
0 152
お知らせ Mihoko Iijima · 11月 16, 2020

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

第 7 回 IRIS プログラミングコンテストの Interoperability コンテストの投票が始まりました!

これだ!と思う応募作品にぜひ投票お願いします!

投票は、Expert Nomination または Community Nomination のどちらかで行っていただきます。

Experts Nomination

あなたがインターシステムズのプロダクト・マネージャー、InterSystems 開発者コミュニティのモデレーター、またはスペシャリスト・レベル以上のグローバル・マスターであれば、エキスパート推薦(Experts Nomination)に投票してください。


Community Nomination

InterSystems 開発者コミュニティで投稿や返信を行った経験がある場合は、コミュニティ推薦(Community Nomination)で投票してください。

投票は Open Exchange コンテストページで行われ、Open Exchange にサインインする必要があります。

投票期間であれば、一度投票した後も別のアプリケーションへ投票し直すこともできます。

なお、コンテスト参加者は投票週間の間にバグの修正やアプリケーションの改善を行うことができますので、アプリケーションのリリース情報についてもお見逃しなく!

0
0 96
記事 Megumi Kakechi · 11月 13, 2020 2m read

これは InterSystems FAQ サイトの記事です。
 

管理ポータルから行う手動のパージ(Purge)と、タスクを利用する方法があります。

データを手動でパージするには、[Interoperability] > [管理] > [管理データの削除] ページを使用します。
(このページではバックグラウンド・ジョブとしてパージを実行しますので、ページがタイムアウトしても問題ありません。)

タスクでパージする場合は、[システムオペレーション] > [タスクマネージャ] > [新しいタスク] の画面でInteroperabilityプロダクションのネームスペースを指定し、タスクタイプに「Ens.Util.Tasks.Purge」を指定します。

タスクの場合は、「TypesToPurge」の項目で以下のパージ対象タイプを選択できます(図参照)。

  • イベント・ログ (Events)
  • メッセージ (Messages)
  • ビジネス・プロセス・ログ (Business Processes)
  • ビジネス・ルール・ログ (Rule Logs)
  • I/O アーカイブ・ログ (I/O Logs)
  • モニター・カウンター (Host Monitor Data)
  • 管理対象アラート (Managed Alerts)  



詳細は、以下のドキュメントをご参照ください。

0
0 492
記事 Mihoko Iijima · 11月 12, 2020 3m read

これはInterSystems FAQ サイトの記事です

システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。

^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。

なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。

詳細については、下記ドキュメントもご参照ください。

^DBSIZEによるバックアップ・サイズの見積もり【IRIS】

^DBSIZEによるバックアップ・サイズの見積もり

実行例は、以下の通りです。

USER>set $namespace="%SYS"   //または zn "%SYS"
 
%SYS>do ^DBSIZE
 
               Incremental Backup Size Estimator
 
 
What kind of backup:
   1. Full backup of all in-use blocks
   2. Incremental since last backup
   3.
0
0 374
記事 Mihoko Iijima · 11月 10, 2020 4m read

これはInterSystems FAQ サイトの記事です

インデックスが複数定義されているクラス/テーブルへ csv 形式等のシーケンシャルファイルから大量データをデータベースに登録する際、推奨される登録方法として、データ登録時インデックスを生成させず、登録完了後に一括でインデックスを生成する 方法があります。

この方法は、新規に大量のレコードを一括登録する際に最も有効な手段となります。

<メモ>
大量のデータを追加登録する際には、既存のデータ量と新規データ量のバランスにより、この手法が有効でないケースもあります。その場合は、インデックスの再構築を範囲指定で行うこともできます。

説明に使用するクラス定義例は以下の通りです。

Class ISJ.
0
0 556
記事 Megumi Kakechi · 11月 9, 2020 3m read

これはInterSystems FAQ サイトの記事です。

IRISのサービスを /usr/lib/systemd/system/iris.service に作成し systemctl ユーティリティにて設定を行います。

手順は以下になります。 ※ 作業は root ユーザまたは root 権限を持つユーザで行ってください。

1. IRISの自動起動・自動停止のスクリプトファイル「irisstartstop」を作成します。

irisstartstop

[Unit]
Description=Intersystems IRIS
Before=shutdown.target
[Service]
Type=forking
ExecStart=/intersystems/IRIS/bin/iris start IRIS
ExecStop=/intersystems/IRIS/bin/iris stop IRIS quietly
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

※お使いの環境にあわせて編集してください。基本的に編集が必要なのは [Service] の箇所になります。
 ExecStart、ExecStop:IRIS はインスタンス名、パスは <インストールフォルダ>/bin/iris を指定します。
2.

0
0 782
記事 Mihoko Iijima · 11月 6, 2020 2m read

これはInterSystems FAQ サイトの記事です。

SELECT のみを実行できるユーザを作成するには、ユーザかロールに対してテーブルへのアクセス権限を設定することで対応できます。

設定は、管理ポータルか、GRANT 文を実行することで設定できます。GRANT 文については、以下ドキュメントもご参照ください。
InterSystems SQL リファレンス - GRANT【IRIS】
CachéSQLリファレンス - GRANT

管理ポータルでの設定は、ユーザまたはロールの編集画面内「SQLテーブル」タブを使用します。

ユーザに直接設定する場合は以下のメニューを利用します。
  [ホーム] > [システム管理] > [セキュリティ] > [ユーザ] > [ユーザ編集] 

ロールに設定する場合は、以下のメニューを使用します。
 [ホーム] > [システム管理] > [セキュリティ] > [ロール] > 新規ロール作成
 ※ ロール名を指定し、保存するまで詳細設定画面が表示されません。
 ※ 作成したロールをユーザに付与することで、テーブルへのアクセス権限をロールで一元管理できます。 SQLテーブルでの権限設定

手順は以下のとおりです。

0
0 952
記事 Mihoko Iijima · 11月 6, 2020 4m read

これはInterSystems FAQ サイトの記事です。

テーブルチューニングを行った際に、フィールドに値がほとんど登録されていない(Null)場合や、特定の値がほとんどを占める場合、その値を[外れ値] として除外して選択性計算を行います。 また、外れ値が全レコードの何 % を占めているかの値[外れ値の選択性] として記録されます。

InterSystems 製品のクエリオプティマイザは、選択性数値とエクステントサイズを使用してクエリの経路を決定しますが、クラスクエリ、埋め込み SQL に使用しているクエリに外れ値が含まれる場合は、外れ値の選択性が自動的に考慮され、インデックスの使用有無を決定しています。

ダイナミック SQL 、ODBC/JDBC 経由でのクエリについては、外れ値が Null である場合、自動的に外れ値の選択性が考慮されますが、Null 以外の特定の値が外れ値に検出される場合は、明示的に指示を与えるまで考慮しません。

詳細は、ドキュメント(異常値に対する述語条件【IRIS】異常値に対する述語条件【Caché/Ensemble】)をご参照ください。

SAMPLES ネームスペースの Sample.

0
0 579
記事 Toshihiko Minamoto · 11月 5, 2020 6m read

データベースシステムには非常に特殊なバックアップ要件があり、企業のデプロイメントでは、事前の検討と計画が必要です。 データベースシステムの場合、バックアップソリューションの運用上の目標は、アプリケーションが正常にシャットダウンされた時と同じ状態で、データのコピーを作成することにあります。 アプリケーションの整合性バックアップはこれらの要件を満たし、Cachéは、このレベルのバックアップ整合性を達成するために、外部ソリューションとの統合を容易にする一連のAPIを提供しています。

0
0 375
お知らせ Mihoko Iijima · 10月 26, 2020

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 7 回目のテーマが発表されました!

今回のコンテストのテーマは ⚡️ InterSystems Interoperability(相互運用性) Contest ⚡️ です!

日本からのご応募お待ちしております!

応募期間は 2020年11月2日~15日 です!

(投票期間は 2020年11月16日~22日、勝者発表は 11月23日を予定しています)

優勝特典

1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。

🥇 1位 - $2,000 

🥈 2位 - $1,000 

🥉 3位 - $500

2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。

🥇 1位 - $1,000 

🥈 2位 - $500 

複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。

参加資格

どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)

コンテストのスケジュール

11月2日~15日 応募期間Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。

2
0 272
お知らせ Mihoko Iijima · 11月 2, 2020

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

Interoperability(相互運用性)コンテストの続報の「テクノロジーボーナス」について紹介します。

対象となる技術は、以下の通りです。

  • BPL エディタを利用したビジネス・プロセスの開発、または、ビジネスルールとデータ変換(DTL)を使用した開発
  • カスタムアダプタを使用した開発
  • プロダクションエクステンション(PEX)Java または .NET を使用した開発
  • ワークフローエンジンを使用した開発
  • ZPM パッケージによるデプロイが行える開発環境
  • Docker コンテナを使用した開発

それぞれの詳細については以下ご参照ください。

BPL エディタを利用したビジネス・プロセスの開発、または、ビジネスルールとデータ変換(DTL)を使用した開発 - 1 point

IRIS の Interoperability(相互運用性)プロダクションの特徴の1つである、BPL エディタで記述できるビジネス・プロセスがあります。また、ビジネス・ルールは、Interoperability プロダクション内で実行したい処理を、ノーコード/ローコードのアプローチで指定できる開発エディタです(ビジネス・ルールを利用するためには、構築済ビジネス・プロセスを使用します)。

以下参考ドキュメントをご参照ください。

0
0 250