#InterSystems IRIS

1 フォロワー · 1.4K 投稿

InterSystems IRISは総合データプラットフォームです

    InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。

    完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。

新着
記事 Hiroshi Sato · 6月4日 3m read

今回は、自動エージェントコーディングというよりは、システム構成の設定方法の支援でClaude Codeが役立ったという話です。

React Routerを使っている場合のApacheでのルーティング問題という割と有名な問題があり、ウェブで検索すると色々説明が出てきて、私が抱えていた問題は、まさにこれだったのですが、それらの説明サンプルでは、非常に単純なケースの例しか見つからず、私のケースでは結局どう設定する必要があるのかわからず、半年以上解決できずにいました。

昨今実感しているClaude Codeの優秀さを考えれば、この問題を解決してくれるだろうと思い、問い合わせを行った所、予想通り、一発で解決してくれました。


最初の質問です
 

デバッグモードの場合、トピックIDの直接指定で正しく動作しますが、
デプロイモードでWebサーバーをApacheにすると404エラーになります。
直接指定方法は、
http://localhost:portno/faqdirect/Content/100
のような形式です。
.htaccessにどのように指定すればいいですか?


Claude Codeの回答です。
 

Apacheでのルーティング問題ですね。React Routerを使っている場合、全てのリクエストをindex.htmlにフォールバックさせる必要があります。


既存の.htaccessの内容を確認しました。サブパス(/faqdirect/)に配置する場合は RewriteBase の指定が必要です。

現在の.htaccessにRewriteBaseが欠けているのが原因です。以下のように修正してください:

正しい.htaccessの内容:

RewriteEngine On
RewriteBase /faqdirect/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.html [QSA,L]
合わせて package.json の homepage も設定が必要です:

これを設定した上で npm run build を実行することで、ビルド済みの JS/CSS のパスが /faqdirect/static/... になります。
0
0 6
新着
記事 Toshihiko Minamoto · 6月3日 21m read

INTRO

Barricadeは、InterSystems OMOP向けのFHIRからOMOPへの変換を効率化し、そのサポートをスケールアップするために、ICCA Opsが開発したツールです。当社のクライアントは、InterSystems OMOPを使用してFHIRデータをこのOMOP形式に変換することになります。マネージドサービスとして、当社の役割は変換プロセスに伴うあらゆる問題のトラブルシューティングを行うことです。Barricadeは、さまざまな理由から、このプロセスを支援する理想的なツールです。第一に、効果的なサポートには、FHIR標準、OHDSI OMOPモデル、そしてInterSystems特有の運用ワークフローにわたる専門知識が必要ですが、これらはすべて高度に専門化された分野です。Barricadeは、大規模言語モデルを活用してFHIRやOHDSIに関する専門知識を提供することで、知識のギャップを埋めるお手伝いをします。さらに、特定の変換問題を解決するために詳細な説明が行われたとしても、その知識はメールやチャットの中に埋もれてしまい、将来的に活用できなくなることがよくあります。Barricadeなら、その知識を収集・再利用し、類似のケースにスケールさせることも可能です。最後に、多くの場合、ソースデータにアクセスできません。

0
0 7
記事 Hiroshi Sato · 5月21日 2m read

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

一番簡単な方法は、以下のコミュニティ記事にある ObjectScript Lite Terminalを使用する方法です。

VSCodeだけでIRISターミナル完結

IRISのコマンドをターミナルから実行する場合は、即時実行と複数行のコードを一度にまとめて実行する2つの実行方法があります。
即時実行の場合は、1個または複数のコマンドを1行で入力して、リターンキーを入力することで実行します。
即時実行の場合、複数行にまたがって一度に実行することはできません。

複数行をまとめて実行する場合には、予め複数行のコードをルーチンバッファーと呼ばれるメモリー上に一時的に保存して、一度に実行することができます。

ルーチンバッファーにコードを入力するためには、

ラベルの後ろにスペースまたはタブを入力した後に実行したいコードを入力します。
2行目以降は、スペースまたはタブを入力した後に実行したコードを入力します。

コードを入力し終わったら、以下のように実行することで、複数行まとめて実行できます。

>Do [先頭に指定したラベル名]

ルーチンバッファーの内容を確認するには、zprintコマンドを使用します。
以下はルーチンバッファーに複数行のコードを保存して、実行する例です。

1
0 18
新着
記事 Tomoko Furuzono · 5月29日 1m read

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


「500 - Internal server error」の原因は様々考えられますが、まずは、

①監査ログで原因となるログが記録されないか確認します。
監査ログの使い方は下記をご参照ください。
https://jp.community.intersystems.com/node/504791

監査ログに原因と思われるようなログが確認できない場合は、

②Webゲートウェイや、IRISのISCLOGで調査します。
調査方法は、下記をご参照ください。
https://jp.community.intersystems.com/node/548871
原因としてよくあるのは、
・アプリケーションコードに問題がある
・構成ファイル(CSP.iniやhttpd.conf)に問題がある
 ※構成ファイルを変更した場合は、反映するために再起動が必要となる場合があります。

などです。

0
0 8
新着
記事 Hiroshi Sato · 5月29日 2m read

昨今エージェントAIコーディングの競争が激化しているようで、CODEXも劇的に進化しているという噂です。

Googleも負けじとAntigravityで巻き返し、さらにはXも参戦と市場は盛り上がってきています。

おそらく私の使用程度ではどのエージェントAIを選んでも、それほど大差ない状況になってきていると思いますが、しばらくはClaude Codeで頑張ってみたいと思います。

少し前にもTypseScriptの自動コーディングの話を書きましたが、それは単にCSSライブラリの変更というかなり機械的にできる内容でしたが、今回は、ページのルック&フィールを変更するという内容です。

Reactプログラミングでの一番の悩みは、ユーザーインタフェースの見た目をどうするかという点でした。

美的センスゼロの私が自己流で作ったスクリーンは、やはり何かしっくりとしない感じがしていました。

そこで世の中のウェブのUIを調査したところ、ある程度のパターンが見えてきました。

しかし、それに合うように自分でスタイルシートを駆使して、そのパターンを真似るのは大変だなという印象で躊躇してきたわけですが、Claude Codeならやってくれるだろうという予想の元、トライしてみました。

結果は、見事1時間程度である程度満足のいく結果を得ることができました。

0
0 11
新着
記事 Hiroshi Sato · 5月28日 1m read

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

UNIX系(Linux、macOSなど)とWindowsでは対応が異なります。

UNIX系は、バージョン2021.1以降OpenSSLのライブラリは同梱されなくなり、OSにインストールされたOpenSSLを使用します。

OpenSSLのバージョンは以下のコマンドで確認できます。

>write $SYSTEM.Encryption.OpenSSLVersion()
OpenSSL 3.6.1 27 Jan 2026

UNIX系では、OpenSSLだけをバージョンアップすることも可能です。

Windowsの場合、現時点(2026.1)のバージョンでも、OpenSSLライブラリは、IRISに同梱されており、OpenSSLのバージョンは、IRISのバージョン毎に固定されています。
従って、OpenSSLのみのバージョンアップはできません。

新しいOpenSSLを利用するためには、そのOpenSSLに対応したIRISバージョンにする必要があります。

0
0 8
新着
記事 Hiroshi Sato · 5月28日 7m read

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

これらのファイルを個別にエクスポートする最も簡便で確実な方法は、VSCodeを利用してIRISのソースファイルを管理することです。

VSCodeの利用方法は、以下をご参照ください

VSCodeを使ってみよう

VSCode以外のツールとしての提供はありませんので、是非VSCodeのご利用をご検討ください。


VSCodeをご利用できない場合は、IRISが提供するAPIを使用して、個別にプログラミングする必要があります。

1) クラス定義

%SYSTEM.OBJクラスのExportAllClassesIndividualメソッドを使用してクラス毎にファイル出力できますが、その出力形式がXML形式です。

XML形式での出力は、可読性も低く、クラス数が多量にある場合には、インポートの時間も余計にかかるため、複数クラスを1ファイルにまとめる目的以外では、推奨しておりません。

可読性の高いUDL形式で出力するためには、

該当ネームスペースに存在するクラス名をクエリーで抽出し、クラス定義をUDL形式でエクスポートするメソッドで出力することができます。

以下はClaude Codeで生成したサンプルコードです。

Class Samples.ExportUDLAll
{

/// 指定されたネームスペース内のすべてのクラス定義を
/// 個別のUDL形式ファイルとして指定ディレクトリに出力する
///
/// @param pDirectory 出力先ディレクトリ名
/// @return %Status ステータスコード
ClassMethod Export(pDirectory As %String) As %Status
{
Set tSC = $$$OK
Try {
// %SYSTEM.OBJ の GetClassList メソッドでクラス名一覧を取得
// items はローカル多次元配列として ByRef で返る
// 第一サブスクリプトにクラス名が格納される
Set tSC = $SYSTEM.OBJ.GetClassList(.items, "/application=1")
If $$$ISERR(tSC) Quit

// items 配列をサブスクリプト順に走査してクラス数分繰り返す
Set tClassName = ""
For {
Set tClassName = $Order(items(tClassName))
Quit:tClassName=""

Write "class name = ", tClassName, !
Set tFileName = pDirectory _ "/" _ tClassName _ ".cls"
Write "file name = ", tFileName, !

// ExportUDL の第一パラメータ(itemname)はクラス名に ".cls" を付加
Set tSC = $SYSTEM.OBJ.ExportUDL(tClassName _ ".cls", tFileName)
If $$$ISERR(tSC) Quit

Write "Exported: ", tClassName, " -> ", tFileName, !
}
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
}

}
0
0 10
新着
記事 Toshihiko Minamoto · 5月26日 5m read

InterSystems IRISは、データ論理構成(ネームスペース)とその物理的保存場所(データベース)を分離するアーキテクチャに構築されています。この分離と、ネームスペースとデータベースの区別を理解することは、効果的なデータ管理、セキュリティ、特には高パフォーマンスなデータ共有において極めて重要です。

本記事では、これらの基盤となる構成要素について解説し、グローバルマッピングを活用して異なるロジカル環境間でネイティブデータ構造(グローバル変数)を共有するための実践的なガイドを提供いたします。

データベース:物理的な現実

データベースは、データがディスク上に保存されている物理的な現実を表現しています。何よりもまず、IRIS.dat というファイルシステム内のファイルです(例: \mgr\user\IRIS.DAT)。 このファイルの最大サイズは32TBです。実際のデータおよびコードのすべてを格納するコンテナとなります。データベースはIRISカーネルによって管理され、物理ファイルレベルでのキャッシュ、ジャーナリング、トランザクションログの処理を担当します。

0
0 12
記事 Hiroshi Sato · 5月25日 3m read

自分で作成したサンプルを公開する際にコンテナで提供することが一般的になっています。


私も基本はその方針でサンプル類を公開しています。


そして簡単なデモアプリケーションを公開する場合、IRISがリリースされる以前はCSPベースでしたが、ご承知のようにCSPはIRISで利用することは推奨されていません。


ということで、私は代わりにReactを使うことが多いです。


このReactベースのサンプルをコンテナで公開する際にちょっとした不便があるので、情報共有したいと思います。


こういったサンプルを提供する際に様々な人に試してもらいたいという思いからIRISのコミュニティ版でDockerを構築します。


コミュニティ版のIRISには引き続き管理ポータルを動作させるための簡易Apacheサーバが同梱されており、これを使えば、CSPアプリケーションは、サンプル程度のものであれば、何の問題もなく動作します。


しかし、Reactのサンプルを動かす場合には、支障が出るケースがあります。


Reactに限らず、最近のJavaScriptフレームワークは、SPA(Single Page Architecture)というページを遷移せずに、ブラウザ上のDOMを直接書き換えることでページ内容を書き換えるという手法が一般的です。

0
0 9
記事 Hiroshi Sato · 5月25日 1m read

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

CPU使用率が高いプロセスの優先度を下げて、他のプロセスへの影響を軽減する方法が用意されています。

該当プロセスの優先度を下げるには、%SYSTEM.Util.SetPrio()メソッドを使用します。

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

SetPrio()メソッド
 

使用例: PID=24096 のプロセスの優先度を通常(8)から低(4) に変える

※OSにより優先度の番号は異なります。

USER>write $system.Util.GetPrio(24096)

8

USER>write $SYSTEM.Util.SetPrio(-4,24096)  // 8から4下げる(-4)

4

USER>write $system.Util.GetPrio(24096)

4

負荷が高すぎて、サーバーに接続できないような状況の場合には、この方法で優先度を下げることができない可能性があります。
また、このAPIによって、該当プロセスの優先度を逆に上げたい場合には、予期せぬ結果を招くリスクがあるため、慎重に行ってください。

0
0 9
記事 Hiroshi Sato · 5月25日 2m read

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

IRISの%Net.HttpRequestクラスを利用して、外部のREST APIを呼び出し、情報の取得やデータの登録などの処理を実行することができます。

処理を実装する前準備としてSSL構成情報の設定が必要です。

この設定は、管理ポータル>システム管理>セキュリティ>SSL/TLS構成>新規構成の作成で行ってください。

構成名は任意の名前を指定します。

ここではSSLという名前で作成します。

その他の項目は、デフォルト値のままでOKです。

以下のサンプルは、郵便番号関連情報を取得するAPIサービスを利用しています。(https://zipcloud.ibsnet.co.jp/doc/api

set req = ##class(%Net.HttpRequest).%New()

set req.ContentType="application/json;charset=UTF-8"

do req.SetParam("zipcode","0790177")

set req.SSLConfiguration="SSL"

do req.Post("https://zipcloud.ibsnet.co.jp/api/search")

set res = req.HttpResponse.Data.Read(10000)

set obj={}.%FromJSON(res)

do showItem(obj)

quit



showItem(obj) {

set itr=obj.%GetIterator()

while itr.%GetNext(.key, .value, .type ) {

if type="array" {

write "==================================",!

write "[",key,"]",!

do showItem(value)

write "==================================",!

}

elseif type="object" {

write "---------------------------",!

do showItem(value)

}

else {

write key_" : "_value,!

}

}

quit

}
0
0 10
記事 Hiroshi Sato · 5月24日 1m read

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

HANGコマンドや$ZF実行中の時には、^JOBEXAMや管理ポータルのプロセス詳細画面(システム>プロセス>プロセス詳細)でそのプロセス変数情報を取得することができません。

これらは内部的に以下のシステムクラスメソッドを呼び出しています。

ExamStackByPidメソッド

代わりにVariableByPidクラスクエリを利用することで、そのような状況でもプロセス変数情報を取得できます。

VariableByPidクエリ
以下のように取得することができます。

実行例:  // %SYSネームスペースで実行
set stmt=##class(%SQL.Statement).%New()
write stmt.%PrepareClassQuery("%SYS.ProcessQuery","VariableByPid")
set rs=stmt.%Execute(35552,"")  // 第1引数にPIDを指定、第2引数 “” で全ての変数
                           // PID=35552がハング状態でも実行可能
do rs.%Display()
// Name  Value
// a    123
// b    456
// c    789
// :
0
0 10
InterSystems公式 Ayumu Tanaka · 5月21日 1m read

InterSystems は以下のバージョンをリリースしました: 

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

このリリースでは新たに Ubuntu 26.04 オペレーティングシステムをサポートします。Ubuntu 26.04 は Linux カーネル 7.0、セキュリティの改善、インストーラとユーザインターフェイスの改善が行われています。  

今回は Intel/AMD (x86_64) プロセッサ対応のキットのみをリリースしています。ARMサーバにおいてネットワーク障害が発生するケースが複数報告されています。これはネットワークドライバの問題だと考えていますが、念のためARMプロセッサ対応キットのリリースを保留しています。この問題が解決され次第、ARMプロセッサ対応キットをリリースいたします。

ソフトウェアの入手方法

インストールキットは WRC の Software Distribution にある InterSystems IRIS (Extended Maintenance kits) ページから入手可能です。

0
0 15
記事 Toshihiko Minamoto · 5月19日 16m read

前回、Apache Spark と InterSystems Data Platform を使って機械学習を実験するためのプレイグラウンドを作成したときは(「Spark と Caché による機械学習」を参照)、Caché、Python、Apache Spark、Java、Hadoop ライブラリなど、すべてを直接自分のノートパソコンにインストールして構成しました。 これには多少の努力が必要でしたが、最終的には上手くいきました。 満足していましたが、 心配になりました。 「この手順をすべて再現できるのだろうか?」 ―多分できる。 「Windows や Java のアップデートですべてが一瞬にして台無しになる可能性はないか?」 ―ほぼ確実にある。

今では、ますます普及しているコンテナとますます使いやすくなった Docker for Windows により、事前に構成された機械学習環境とデータサイエンス環境を選択できるようになりました。 たとえば、Jupyter Docker StacksZeppelin on Docker Hub をご覧ください。

0
0 6
記事 Toshihiko Minamoto · 5月13日 5m read

重要である理由

IAMの管理を手動で行うには手間ががかります。OpenAPI(Swagger)仕様を使用して、APIがすでにしっかりとドキュメント化されている場合はなおさらです。 Open API仕様から直接、Kongサービスやルートを自動生成できたらいいのにと思いませんか?

このObjectScriptメソッドはまさにその処理を行います。仕様クラスの XData ブロック内に保管されているOpenAPI 2.0仕様を読み取り、IAM構成を同期するために使用できるdecKと互換性があるYAMLファイルを生成します。

このアプローチは:

  • 手動による構成エラーを削減します
  • ゲートウェイをAPI仕様に常に同期します
  • デプロイメントとオンボーディングを高速化します

前提条件:

  • InterSystems IRIS、またはIRISベースのプラットフォーム
  • InterSystems API Manager
  • Deck CLIツール

メソッドの内容

メソッド ConvertOpenAPIXDataToDeckYAML の機能は次のとおりです。

  1. OpenAPI仕様を読み取る: 指定したクラス内の OpenAPI という名前の XData ブロックから読み取ります。

  2. JSONを解析する:動的オブジェクトに変換します。

  3. エンドポイントを抽出する :HTTPメソッドも抽出します。

0
0 15
記事 Toshihiko Minamoto · 5月13日 7m read

REST API(Representational State Transferアプリケーションプログラミングインターフェース)は、GET、POST、PUT、DELETEなどのHTTPメソッドを使用してウェブアプリケーション間で通信するための標準化された方法です。 リソースを中心に設計されており、リソースにはユーザーやファイルなどあらゆるものが含まれます。 各リソースは一意のURLで識別され、これらのリソースのやり取りはステートレスです。クライアントからサーバーへの各リクエストには、リクエストを理解して処理するために必要なすべての情報が含まれている必要があります。 このステートレス性と標準的なHTTPメソッドの使用により、REST APIは高度にスケーラブルで理解しやすく、さまざまなシステムとの統合も簡単です。 RESTの原則に従うことで、開発者は一貫性があり、使いやすく、幅広いタスクに対応できるAPIを作成できます。

InterSystemsは、さまざまなツールと技術でREST API開発をサポートします。 この記事シリーズでは、私自身が特にお勧めするものを取り上げます。 記事は以下のように分類されています。

  • OpenAPI 2.0仕様の記述方法
  • OpenAPI 2.0仕様を使用したREST APIのドキュメント化および開発。
0
0 20
InterSystems公式 Masahito Miura · 5月1日

以下は、2026 年の IRIS リリースカレンダーの更新情報と、2027 年に予定されている変更点の概要です。2026 年における主なポイントは、メンテナンスリリースのバージョン番号付けが、これまでの年とは若干異なる点です。

2026 年:IRIS 2026.1 メンテナンスリリースのバージョン番号

  • 2026 年   7 月:IRIS 2026.1の最初のメンテナンスリリース(予定バージョン:2026.1.4)
  • 2026 年 10 月:次回のメンテナンスリリース(予定バージョン:2026.1.5)
  • 2027 年   2 月:次のメンテナンスリリース(予定バージョン:2026.1.6)

このバージョン番号付けの変更は、2027年に予定されているメンテナンス頻度の拡大に備えたものです。

2027 年:メンテナンスリリースの頻度拡大

2027 年よりお客様が IRIS の新バージョンをより迅速に導入できるよう、メンテナンスリリースの頻度を高める予定です。

2027 年のメンテナンスリリースに関する詳細は、来年発表される予定です。

EM および CD のリリースに関する詳細については リリースストリームのドキュメント をご覧ください。

0
0 27
記事 Toshihiko Minamoto · 4月30日 8m read

image1

ある概念は紙に書かれたままでは完璧に理解できても、他の概念は実際に手を汚すことを必要とすることがあります。 例えば、運転を例に挙げましょう。エンジンの仕組みのあらゆる部品を暗記することはできますが、それが運転が実際にできることを意味するわけではありません。

実際に運転席に座り、クラッチの摩擦点や路面からの振動を身体で感じ取るまでは、その真髄を理解することはできません。 コンピューティングの概念の中には直感的に理解できるものもありますが、インテリジェントエージェントは異なります。それらを理解するためには、運転席に座る必要があるのです。

これまでのAIエージェントに関する記事では、CrewAIおよびLangGraphといったツールについて取り上げてまいりました。しかし、本ガイドでは、AIエージェントのマイクロフレームワークをゼロから構築してまいります。エージェントを構築することは、単なる構文の習得を超えた取り組みであり、開発者にとって実世界の問題を解決に挑戦する貴重な旅と申せます。

とはいえ、経験そのもの以上に、これを行う根本的な理由がもう一つあります。それはリチャード・ファインマンの言葉に最もよく表れています:

「自分でつくれないものは、本当に理解しているとはいえない」

では…AIエージェントとは何でしょうか?

具体的に説明いたします。エージェントとは、本質的に目的を追求するコードです。

0
0 13
記事 Toshihiko Minamoto · 4月30日 15m read

cover

その1 では、MAIS(マルチエージェント相互運用システム)の技術的基盤を構築いたしました。「脳」の配線に成功し、LiteLLMを用いた堅牢なアダプターを構築し、IRIS資格情報でAPIキーをロックダウンし、そしてついにPython相互運用性のパズルを組み立てたのです。 しかしながら、現時点では我々のシステムはLLMへの単なる未加工のパイプに過ぎません。テキストを扱うことはできますが、アイデンティティを欠いているのです。

さて、この第2部では、エージェントの構造についてご説明いたします。単純なAPI呼び出しから、構造化されたペルソナへと進みます。LLMをビジネスロジックの層でラップし、その名称やロールを定義し、そして最も重要な点として、隣接する要素を認識する能力を付与する方法について学んでまいります。

私たちのマシンの「魂」を構築しましょう。

エージェントの構造: ただのプロンプトではなく

「脳」(LLM)との接続が確立したところで、次にその「脳」にパーソナリティを付与する必要があります。よくある誤解として、エージェントとは単に「役立つアシスタントです。」といったシステムプロンプトに過ぎないという見方がありますが、それは単なるチャットボットに過ぎません。

真正なエージェント型AIは、監視を必要としない点で際立っています。それは自律性と、任務を完遂しようとする強い意欲を兼ね備えています。

0
0 12
記事 Toshihiko Minamoto · 4月23日 15m read

現代のデータアーキテクチャでは、リアルタイムのデータ収集、データ変換、データ移動、データロードのソリューションを活用し、データレイク、分析用倉庫、ビッグデータリポジトリを構築しております。様々なソースからのデータを、それらを利用する操作に影響を及ぼすことなく分析することを可能にします。これを実現するためには、継続的、拡張的、弾力的、かつ堅牢なデータフローを確立することが不可欠です。そのための最も一般的な方法は、CDC(変更データキャプチャ) 技術によるものです。CDCは小さなデータセットの生成を監視し、このデータを自動的に収集して、分析用データリポジトリを含む1つ以上の受信先に配信します。主な利点は、分析におけるD+1(データ生成の翌日)の遅延が解消される点です。データは生成されるとすぐにソースで検知され、その後、対象の宛先へ複製されるためです。

本記事では、CDCシナリオにおいて最もよく使用される2つのデータソース(データソースおよびデータ宛先として)についてご説明いたします。データソース(元)としては、SQLデータベースおよびCSVファイルにおけるCDCの活用方法について探ってまいります。

0
0 13
InterSystems公式 Masahito Miura · 4月16日

InterSystems IRIS® データプラットフォーム、 InterSystems IRIS® for Health および HealthShare® Health Connect™ のメンテナンスバージョン 2025.1.4 および 2024.1.6 がリリースされました。今回のリリースでは、最近お知らせした以下の警告や勧告の修正が含まれています。 

より良い製品を皆様と共に作り上げていくため、 アイデアポータル 内の リリース後のフィードバック カテゴリからご意見をお寄せください。

ドキュメント

詳細な変更リストとアップグレードチェックリストはこちらのドキュメントをご参照ください(すべて英語 2025.

0
0 34
記事 Toshihiko Minamoto · 4月16日 16m read

InterSystems IRISデータプラットフォームは、InterSystemsの全アプリケーションに加え、ヘルスケア、ファイナンシャルサービスおよびサプライチェーンをはじめとする様々なエコシステムにおいて、数千もの顧客およびパートナーアプリケーションの基盤となっております。これは収束プラットフォームであり、トランザクション・アナリティクスデータ管理、統合された相互運用性、データ統合に加え、統合された分析およびAIを提供します。多様な分散データを管理するInterSystemsスマートデータファブリックアプローチをサポートしております。

 

当社のアーキテクチャの中核には、コアデータエンジン(別名一般なデータプレーン)における高性能・マルチモデル・多言語データ処理機能がございます。これを基盤として、膨大なデータ量と毎秒10億を超えるデータベース操作に及ぶ高いトランザクションレートに対応する、卓越したスケーリング機能を備えております。

次に、二つの主要なサブシステムが挙げられます。一つは分析と人工知能(AI)に焦点を当てたもので、もう一つは相互運用性とデータ統合に焦点を当てたものです。これらのサブシステムは、データに近接して全てを実行し、最小のフットプリントで高いパフォーマンスを提供する、という当社の基本理念に沿った設計となっております。

0
0 10
記事 Toshihiko Minamoto · 4月14日 11m read

序言

極めて高いパフォーマンスが求められるアプリケーションにおいて、企業はしばしばインメモリデータベースやキーバリューストア(キャッシュ層)を採用します。しかしながら、インメモリデータベースは総所有コストが高く、スケーラビリティにも限界があり、メモリ制限を超えた場合には信頼性の問題や再起動の遅延が生じます。インメモリキーバリューストアも同様の制約を抱えるだけでなく、アーキテクチャの複雑さやネットワーク遅延といった新たな課題をもたらします。

本記事では、高パフォーマンスのSQLおよびNoSQLアプリケーションにおいて、InterSystems IRIS™データプラットフォームがインメモリデータベースやキーバリューストアに比べ優れた選択肢である理由についてご説明いたします。

パフォーマンスと効率性のレベルアップ

InterSystems IRISは、同時データ取り込みおよび分析処理において、インメモリデータベースやキャッシュ層の性能に匹敵、あるいはそれを上回る唯一の永続データベースです。市販されているハードウェア上において、ネットワーク遅延を発生させることなく、1マイクロ秒未満で着信トランザクションの処理、データのディスクへの永続化、分析のためのインデックス作成を実現します。

0
0 20
記事 Toshihiko Minamoto · 4月9日 7m read

インターシステムズ アイデア ポータル(InterSystems Ideas Portal)で最も多くの賛同を得た提案(74票)は、IRISの軽量バージョンを要望するものです。プラットフォームは強力なデータエンジンに成長していますが、多くのプロジェクトではSQLデータベース機能のみが必要とされています。本記事では、コアなデータベース機能にのみ焦点を当てた非公式なコンパクトなIRIS Community Editionイメージを構築する方法を示し、イメージサイズを80%以上削減する方法を説明します。

⚠️ Disclaimer

このプロジェクトは、InterSystems IRIS Community Editionの非公式な実験的なイメージを生成します。

  • InterSystemsによるサポートまたは推奨はされていません。
  • 使用は自己責任です。これらの変更により、プラットフォームの中核機能が削除され、ツールやAPI、想定される動作との互換性が損なわれる場合があります。
  • 確証または保証 なしに生は、産用途への適合性を含みます。
  • 上級ユーザーによる教育および実験目的のみに供するものです。
0
0 28
記事 Hiroshi Sato · 4月7日 3m read

Claude CodeはIRISのことかなり理解してくれていますが、それでもやはり想定外が発生します。

まず1つ目は既に何回か発生した問題で、正しく指示しないと今後もよく発生する可能性の高い問題です。

IRISの文字型のデータ(%String)のコレーション(照合)は、デフォルトではSQLUPPERとなっていて、その結果としてデータをSQLで取得すると大文字に変換されて返ってくる場合があります。(GROUP BYなどのソートして集計する場合)

それを意識せずに(通常誰も意識していないと思いますが)、Claude Codeにそのデータの値に依存するような指示を与えると、期待した結果が得られないことが起こります。

例えば、何々のカラムの値がGroup BYで指定したカラムで集計した場合、返ってくるそのカラムの値が大文字となるため実際のデータはSupportだけれども実際に返ってくる値がSUPPORTとなっているためにマッチしないという感じです。

Claude Codeのスキルにこれをちゃんと記載するか、クラス定義のCOLLATEをSQLSTRINGに変更することでこの状況を回避できると思います。

もう一つ最近遭遇した問題は、これはさすがに難しいだろうという感じのものです。

IRISにはご存知の方も多いと思いますが、計算フィールドという非常に便利な機能があります。

0
0 32
記事 Toshihiko Minamoto · 4月7日 2m read

データベースを確認したところ、巨大な^rINDEXSQLグローバルが存在しているようですが、これはなぜでしょうか? 😬

管理ポータルのSQLページにおいて、「SQLステートメント」の下に「古いデータをクリーンアップ」ボタンがおりますが、これはどのような機能でしょうか? 🤔

ステートメントのリストにおいて、一部のステートメントには「Location」値が設定されていますが、他のステートメントには設定されていないようです。これはどうしてでしょう? 🤨

そうですね、確かにこれらはすべて関連しています。

一般的に、実行されたSQLクエリに関する基本的な統計情報 は保持しております。 キャッシュされたSQLクエリを削除する際、ステートメントリスト内のステートメントエントリ自体は削除せず、統計情報は保持いたします(将来の比較に役立つ可能性があるためです)。ただし、ロケーション列は「クリア」します(既存のキャッシュ済みクエリを指さなくなるためです)。 これらの「古い」ステートメント(もはやどこも指していないもの)をクリーンアップしたい場合は、「古いステートメントをクリーンアップ」ボタンを押することができます。

以下のような表示になります(システムエクスプローラー -> SQL -> SQLステートメント):

[注記:旧バージョン(例:v2020.

0
0 22
記事 Hiroshi Sato · 4月6日 4m read

Claude Codeを使うようになってから、創作意欲が爆上がりです。

今までは、何かを作りたいと思っても実際にコーディングをするのが面倒なので、よっぽどのニーズがないとプログラミングまでは至らなかったのですが、仕様をちょこちょこっと書くと後はClaude Codeが勝手にやってくれるので、生産性が雲泥の差です。

私はObjectScriptネイティブ世代なので、これからはPythonと言われても少し躊躇する部分がありましたが、逆にClaude CodeはPythonが大得意なので、新規に開発する際に、ObjectScriptを選ぶ理由がほとんどなくなりました。

とはいえ、Claude CodeがEmbedded Pythonのくせをどの程度理解しているか少し懸念があったのですが、それはかなり取り越し苦労だとわかってきました。

IRISのドキュメントに書かれていることは大体ちゃんと理解してくれています。

そして、自分でPythonコードを書いたら決して書けないような簡潔で洗練されたコードを書いてくれます。

今まであったらいいなと思いつつ、面倒なので、ほとんどやっていない処理としてテーブルのインポート・エクスポートがあります。

0
0 36
記事 Toshihiko Minamoto · 3月31日 9m read

FHIR検索を、あらかじめ定義されたリソースの「リスト」ごとに制限することは、場合によってはより便利で、より効率的であり、より安全です。

バージョン2025.1より、当社のFHIRサーバーでは複数のリスト関連機能をサポートしております。

こちらでそれらを重点的にご説明し、いくつかの サンプルをご提供いたします。

一般的には、公式のFHIRドキュメントよりリストリソースの詳細について利用できます。

しかしながら、上記に基づいた簡単な 説明を以下に示します:

FHIRのリスト リストリソースは、フラット(オプションとしてオーダー付き)レコードの集合体を表し、臨床リスト(例:アレルギー、薬剤、アラート、病歴)やワークフロー管理(例:患者追跡、教育ケース)に使用されます。 リストは均質(単一のリソースタイプ)または 不均質(混合タイプ、例:状態、アレルギー・不耐性、処置にまたがる問題リスト)である場合があります。 リストは、単純なクエリでは取得できないキュレート・抽出されたデータセットが必要な場合に使用します(例:現在のアレルギーと全記録アレルギーの比較)。 リストをクエリすると、ポイント イン タイム スナップショットが得られます。 一方、リソースエンドポイントをクエリすると、通常はより広範でキュレートされていない「現時点での」データセットが返されます。

最新バージョン(2025.

0
0 30
InterSystems公式 Megumi Kakechi · 3月29日 2m read

インターシステムズは、InterSystems IRIS® data platformInterSystems IRIS® for HealthTMHealthShare® Health Connect のメンテナンスバージョン 2023.1.7 をリリースしました。

 より良い製品を共に作り上げるため、アイデアポータル  の「Post-Release Feedback」カテゴリでご意見をお寄せください。


ドキュメント

変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(すべて英語)


早期アクセスプログラム(EAPs)について

現在、多くの早期アクセスプログラムをご提供しております。 こちらの ページ からご興味のあるプログラムにお申込みいただけます。


キットの入手方法

InterSystems IRIS と InterSystems IRIS for Health の通常インストーラパッケージ形式のキットは WRC Direct の IRIS ダウンロードページから、HealthShare Health Connect のキットは HealthShare ダウンロードページ からそれぞれ入手してください。

0
0 24
InterSystems公式 Seisuke Nakahashi · 3月26日

インターシステムズは、InterSystems IRIS data platform、InterSystems IRIS for Health および HealthShare Health Connect のバージョン 2026.1 をリリースをしました。2026.1 は、拡張メンテナンス(EM)リリースです。

リリースハイライト

  1. データベース・スケーラビリティの強化

    データベースの容量制限が撤廃されました。これにより、従来の容量制限をこえてもデータ移行が必要なく、円滑にシステム拡張できるようになりました。また低レベルパフォーマンスも改善され、大規模運用がさらに最適化されています。

  2. テーブル・パーティショニング

    ユーザー定義の論理キーに基づきテーブルと関連インデックスデータを分割し、データベース間で簡単にマッピングできるようになりました。これによりストレージの階層化が可能となり、大容量テーブルにおけるクエリパフォーマンスと運用効率が向上しました。この機能は早期アクセス・プログラムで提供されている実験的な機能です。早期アクセス・プログラムに参加いただくと、機能のアップデートを受け取ったり、フィードバックを送信することが可能となります。

0
0 33