以下の記事は、この連載の締めくくりとして、完全に柔軟なアーキテクチャの例で確認されたすべてのデータベースのリストを掲載しています。
以下の記事は、この連載の締めくくりとして、完全に柔軟なアーキテクチャの例で確認されたすべてのデータベースのリストを掲載しています。
InterSystems IRIS、特にInteroperabilityを使い始めたころ、最初によく思っていた疑問の一つは「処理を一定間隔やスケジュールで実行するにはどうすればいいのか」でした。 このトピックでは、この問題に対処する2つのシンプルなクラスをご紹介します。 似たようなクラスがEnsLibに見当たらないことに、驚いています。 十分に検索しなかったのかもしれません。 いずれにせよ、このトピックでは複雑な作業を扱うつもりはなく、初心者向けの簡単なスニペットを少し紹介します。
コミュニティの皆さん、こんにちは。
この記事では、InterSystems Embedded Python の使用方法を説明します。以下のトピックが含まれます。
では、概要から始めましょう。

IRIS BIチュートリアル試してみたシリーズの9回目です。
今回は、チュートリアル全6ページのうちの5ページ目、「サブジェクト領域の作成」について試していきます。
「サブジェクト領域」という新しい概念が出てきますが、どんなものかを触りながら理解していきます。
では、早速はじめていきましょう。
最初に、サブジェクト領域とは何かを理解するところから始めましょう。チュートリアルでは以下のような説明があります。
”サブジェクト領域は、オプションによる項目名のオーバーライドを持つサブキューブです。サブジェクト領域を定義すると、セキュリティ上の理由およびその他の理由により、より小さなデータ・セットに焦点を当てることができます。”
うーん、分かったような、分からないような。。実例を基に説明してみます。
6回目の記事で郵便番号と市区町村の階層を作成しました。郵便番号→市区町村という階層構造になっていましたよね。以下の図が、郵便番号と市区町村の関連を表したものです。
現状、チュートリアルで使用しているキューブには上記5つの郵便番号を持つデータが格納されています。
これを、特定の郵便番号のデータだけを扱えるサブセットに分割したい要件があったとします。例えば配達員の担当地域ごとに分割するとか。
開発者の皆さん、こんにちは!
前の記事では、開発者向け情報を集めた「Developer Hub」をご紹介しましたが、この記事では Developer Hub のチュートリアルの中から「機械学習」をテーマとしたチュートリアル:IntegratedML についてご紹介します
InterSystems IRISには、機械学習を行うために必要なプロセスのいくつかを自動化するAutoMLの機能が組み込まれていて、機能名として「IntegratedML」と呼んでいます。機能概要については、末尾のビデオをご参照さい。
チュートリアルを始めるための準備は不要で、
ボタンをクリックするだけでチュートリアルを開始できます。
IRIS BIチュートリアル試してみたシリーズの3回目です。
チュートリアルの「キューブ要素の概要」ページの続きを行います。
前回同様、アナライザを操作しながらキューブの要素について説明していきます。
では、早速はじめていきましょう。
Allメンバとは、ディメンジョンの中の特殊なメンバ、とでも言えばよいでしょうか。
チュートリアルでは
「All メンバは、ベース・クラスの全レコードを参照します。」
と表現しています。分かったような、分からないような。。
実際に使ってみて、どのようなものか理解を深めましょう。
Patientsキューブでは、AgeD ディメンジョンの中に All Patients という名前で作成されています。
画面左上の [新規] ボタンをクリックして、新しいピボットテーブルを作成します。
AgeD ディメンジョンの Age Group レベルを [行] に指定し、メジャーの Patient Count、Avg Age、Avg Test Score を [メジャー]に指定します。
※注意:サンプルデータはランダムに作成されるため、こちらの画面表示とみなさまの実行結果は一致しないことがあります。
では、この状態でピボット・オプション・ボタンをクリックします。画面上側にある、スパナのイラストのアイコンです。
以下の記事は、DeepSee の基本的なアーキテクチャを実装するためのガイドです。 この実装には、DeepSee キャッシュ用のデータベースと DeepSee 実装と設定用のデータベースが含まれています。
この記事では、2023年3月1日~31日の期間に開催された「技術文書ライティングコンテスト:InterSystems IRISチュートリアル」に応募された24作品の中から、Heloisa Paivaさんが投稿されたシンプルですぐに試せる記事をご紹介します。
このチュートリアルは、テストやチュートリアル用のサンプル作成など、あらゆる目的でサンプルデータベースを作成するための、私が見つけた最も簡単な方法についての簡単なチュートリアルです。
これで、管理ポータルから新しいネームスペースを作成するより簡単で素早い方法でネームスペースを作成できます。
ネームスペースに移動するには、現在開いているSQLシェルを終了させるため、"quit" を入力し、zn "ネームスペース名" と入力します。これでターミナルで行うすべての動作がこのネームスペースのスコープに入ります。
Caché パターンマッチングと同様に、Caché では正規表現を使ってテキストデータのパターンを特定することができますが、後者の場合はより高い表現力を利用できます。 本記事では正規表現を簡単に紹介し、Caché での活用方法について解説します。 本記事の情報は、主に Jeffrey Friedl 氏著作の「Mastering Regular Expressions (詳説 正規表現)」に加え、もちろん Caché のオンラインドキュメンテーションなど、様々なリソースを基に提供しています。 本記事は正規表現のあらゆる可能性や詳細について解説することを意図したものではありません。 更なる詳細にご興味のある方は、チャプター 5 に記載のソースを参照してください。 オフラインで読む場合は、PDF バージョンをダウンロードしていただけます。
IRIS BIチュートリアル試してみたシリーズの10回目です。
今回はチュートリアル最後のページ「ピボット・テーブルおよびダッシュボードの作成とパッケージ化」についてです。
これまでアーキテクトとアナライザを使用してきましたが、今回はユーザポータル画面を使ってダッシュボードを作成していきます。
では、早速はじめていきましょう。
ダッシュボードはピボットテーブルをソースデータとして作成することができます。ですので、まずはソースとなるピボットテーブルを作成します。
アナライザ画面を開き、Tutorial キューブを開きます。
AgeD ディメンジョン内の Age Group レベルを [行] にドラッグ&ドロップし、続いて Age Bucket レベルを Age Group レベルの矢印記号 ↘ のところにドラッグ&ドロップします。
そうしますと、Age Group レベルの隣に Age Bucket レベルが表示されます。[行] の表示も、Age Bucket レベルが一段下げられた形で表示されています。
※注意:サンプルデータはランダムに作成されるため、こちらの画面表示とみなさまの実行結果は一致しないことがあります。
さらに Count メジャーを [列] に追加し、All Patients メンバを [行] に追加します。
DockerコンテナでIRISサーバーを構築していた時に、Dockerのバージョンアップによって、IRISサーバーが消滅してしまう事がありました。 その経験から、IRISサーバーを復元する為の方法と、事前のバックアップについて共有したいと思います。
###IRISのバックアップ手順
全ての構築が完了したら、事前にバックアップを取っておきます。 クラスやルーチン、グローバルのバックアップは別途、バックアップを取っておく事をお勧めします。
zn "%SYS"
write ##class(Security.Users).Export({出力先フルパス})
zn "%SYS"
write ##class(Security.Applications).Export({出力先フルパス})
iris stop {IRISインスタンス名}
iris.cpf ファイルをバックアップする。 cpfファイルはインストールディレクトリに在ります。
IRIS BIチュートリアル試してみたシリーズの4回目です。
今回からはチュートリアルの3ページ目、「キューブの作成」に沿って進めていきます。
では、早速はじめていきたいと思います。
キューブの作成はアーキテクト画面から行います。
管理ポータル画面のメニューで、 Analytics → アーキテクト を選択します。
アーキテクト画面が開きました。1回目の記事の作業のときに Patientsキューブを開いたので、私の環境では再びPatientsキューブが表示されました。
新しいキューブを作成しますので、[新規] ボタンをクリックします。
ダイアログが開いたら、以下のように指定していきます。
ソースクラスの指定は、[参照] ボタンを押してダイアログから行うこともできます。
最後に [OK] をクリックしますと、まっさらな画面が表示されます。
もし、以下のようなダイアログが表示されたら、[Leave] を選択してください。
アーキテクト画面ですが、3つのエリアで構成されています。左側から順に、クラス・ビューワ、モデル・ビューワ、詳細ペインです。
以下の記事では、DeepSee の中程度の複雑さのアーキテクチャ設計を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定用の個別のデータベースが含まれています。 この記事では、同期に必要なグローバルの保存用と、ファクトテーブルとインデックスの保存用に、2 つの新しいデータベースを紹介します。
この記事では、2023年3月1日~31日の期間に開催された「技術文書ライティングコンテスト:InterSystems IRISチュートリアル」に応募された24作品の中から、Open Exchangeに公開されている sqlalchemy-iris を利用してPythonとSQLでIRISのデータを操作する方法を投稿された Heloisa Paivaさんの記事をご紹介します。
Open Exchangeは、世界各地にいる開発者コミュニティメンバーが開発したインターシステムズ製品で利用できるサンプルアプリが登録されているページで、自由にダウンロードしてご利用いただけます。
Heloisaさんの記事のように公開されている Open Exchange の利用例があると、「ちょっと使ってみたいな・・」と思われているメンバーの方への情報共有ができてとても有用な記事になると思います!丁度日本で初開催の「技術文書ライティングコンテスト」開催中ですので、ぜひ使用例や感想など、投稿してみてください!💪
インスタンスのデータに基づくビジネスインテリジェンスを実装しようと計画中です。 DeepSee を使うには、データベースと環境をどのようにセットアップするのがベストですか?
IRIS BIチュートリアル試してみたシリーズの11回目です。ついに今回が最終回になります。
最終回のトピックは「ピボット・テーブルおよびダッシュボードのエクスポートとパッケージ化」です。これまでに作成したピボットテーブルやダッシュボードをエクスポートして他の環境などに移送するためのテクニックを学びます。
では、早速はじめていきましょう。
フォルダマネージャ画面から操作します。管理ポータル画面から Analytics → 管理 → フォルダマネージャ と選択します。
フォルダマネージャ画面が開き、作成済みのフォルダ、ピボットテーブル、ダッシュボードが一覧表示されます。これまでに作成してきた Tutorial フォルダと、その中のピボットテーブルやダッシュボードも存在します。
では、この一覧にある Sample Dashboard の左側にあるチェックボックスにチェックを付けます。画面左側の [詳細] の表示が変わります。
このダッシュボードで使用している2つのピボットテーブルが依存関係にあることが表示されます。
では、その2つのピボットテーブルにもチェックを付け、3つのアイテムが選択された状態にします。
開発者の皆さん、こんにちは。
前の記事では「機械学習を試せるチュートリアル:IntegratedML」で試せる内容をご紹介しましたが、この記事では Interoperability(相互運用性)チュートリアル の内容を少しご紹介します。
Interoperability(相互運用性)チュートリアルでは、Redditに新しく投稿された記事=(https://www.reddit.com/new/)を一定間隔で取得し、全投稿の中から「猫(cat)」🐈について記載されている情報のみを抽出し、対象記事をファイル出力する流れをご体験いただけます。
IRIS BIチュートリアル試してみたシリーズの5回目です。
今回も、前回同様チュートリアルの「キューブの作成」ページになります。
前回はキューブを作成し、そのキューブを使用していくつかのピボットテーブルを作成しました。
その中で気になった点を今回は修正していきます。では、はじめていきましょう。
前回の作業の中で、ピボットテーブル作成時に気になった点は以下のものがありました。
では、これらを解消していきましょう。アーキテクト画面で Tutorial キューブを開きます。
キューブが開いたら、 Age レベルをクリックし、続いて [要素を追加] をクリックします。
要素名に AgeSort と入力し、要素選択は プロパティ を指定します。
AgeSort プロパティができました。
では、AgeSort プロパティの詳細設定を変えます。詳細ペインの [表現] に以下の式を設定します。
$CASE($LENGTH(%source.Age),2:%source.Age,:"0"_%source.Age)Ageが1ケタの場合は、頭にゼロを付けるという式ですね。
以下の記事では、DeepSee のより柔軟なアーキテクチャ設計の概要を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定、および同期グローバル用の個別のデータベースが含まれています。 この例では、DeepSee インデックスを保存するための新しいデータベースを紹介します。 DeepSee インデックスがファクトテーブルや次元テーブルとともにマッピングされないように、グローバルマッピングを再定義します。
開発者の皆さん、こんにちは!
多くの方が、Open Exchange と GitHub で InterSystems ObjectScript ライブラリを公開しています。
でも、開発者がプロジェクトの使用とコラボレーションを簡単に行えるようにするにはどうしていますか?
この記事では、ファイルの標準セットをリポジトリにコピーするだけで、ObjectScript プロジェクトを簡単に起動して作業する方法をご紹介します。
では始めましょう!
これまで Caché のリソースアクセスを制御する方法が存在するかどうかを疑問に思っていた方の悩みを解決しました。 バージョン 2014.2 では、開発者がセマフォを操作できるようにする特別なクラスが追加されました。
Caché技術ガイドのいくつかをIRIS版に書き換えた文書を作成しましたので公開します。
IRISファーストステップガイド
IRISBasicTechnologyGuide
- ObjectScript操作ガイド
- オブジェクト操作ガイド
- 多次元データエンジンの概念およびアーキテクチャー
IRIS SQLガイド
データ分析は、急速に展開するこの時代において、ビジネス上の意思決定を行う上で欠かせない側面です。 組織はデータ分析に大きく依存して、十分な情報に基づく意思決定と競合優位の維持を行っています。 この記事では、Pandas と InterSystems Embedded Python を使ってデータ分析を実行する方法について説明します。 Pandas の基本、InterSystems Embedded Python を使用するメリット、および両方を組み合わせて有効なデータ分析を実行する方法について説明します。
IRIS BIチュートリアル試してみたシリーズの6回目です。
今回からは、全6ページのうちの4ページ目「キューブ定義の拡張」に入っていきます。
前回まではメジャーやディメンジョンなど、基本的なキューブの構成要素を作成しましたが、さらにキューブを使いやすくするための機能について学んでいきます。
では、早速はじめましょう。
前回までの作業で作成した HomeD ディメンジョンに階層となるレベルを追加します。3回目の記事で BirthD ディメンジョンで体験したドリルダウン・ドリルアップの機能を使えるようにするものです。
キューブを変更しますので、アーキテクト画面に行き、Tutorial キューブを開きます。開いたら、画面左側のクラス・ビューワで HomeCity を展開します。
HomeCity の配下にある PostalCode を追加します。HomeD ディメンジョンの H1 階層の上にドラッグ&ドロップします。
そうしますと、PostalCode がレベルとして追加されます。「level 2」となっていますね。
レベル名を ZIP Code に変更します。詳細ペインのところで書き換えてください。
書き換えたら、キューブをコンパイルします。画面上部の [コンパイル] ボタンから実行します。
コンパイルが完了したら、続いてビルドを行います。

「ドライマルティーニを」と彼は言った。 「1 杯。 深いシャンパングラスで。」
「承知いたしました。」
「気が変わった。 ゴードンを 3、ヴォッカを 1、キナリレを半量。 キンキンに冷えるまでよくシェイクしてから、大きめの薄いレモンピールを 1 つ加えてくれ。 わかったかい?」
「お承りいたしました。」 バーテンダーはその考えが気に入ったようだった。
イアン・フレミング著『カジノ・ロワイヤル』(1953 年)より
OAuth は、ユーザーログイン情報を伴うサービスを「運用中」のデータベースから、物理的にも地理的にも分離する上で役立ちます。 このように分離すると、ID データの保護が強化され、必要であれば、諸国のデータ保護法の要件に準拠しやすくしてくれます。
OAuth を使用すると、ユーザーは、最小限の個人データをさまざまなサービスやアプリケーションに「公開」しながら、一度に複数のデバイスから安全に作業することができるようになります。 また、サービスのユーザーに関する「過剰な」データを操作しなくてよくなります(データはパーソナル化されていない形態で処理することができます)。
Hello, community!
IrisApiTester アプリを作成した後、それにもっと可能性があることに気付き、いくつか調整することで強力なコラボレーションツールになるのではないかと考えました。
そこで、以下の事について検討してみました。
可能な答えを考えた末、試してみることにしました。 作業を終えると、すべての回答が(ある程度)肯定であることがわかりました。 最終的には、この記事を書いて、この経験を皆さんと共有することに決めました。 知識の交換に役立ち、できればアプリケーションを一緒に改善していければと思います。
この記事は役に立つと思います。 新しいアプリケーションを検討するきっかけになるかもしれませんし、アジャイルな方法で実行できることを知らなかったテストを、このヒントでやっと実行できるようになることに気付くでしょう。
簡潔にするために、この記事を複数のセクションに分けています。 そのため、直接必要な箇所を読むことも、全文を読むこともできるように構成されています。
デベロッパーの皆さん、こんにちは!
最近、当社は InterSystems Package Manager (ZPM) をリリースしました。 ZPM を開発した理由の 1 つは、ソリューションをパッケージ化して ZPM レジストリに提出することにより、そのデプロイを「install xxx package」のようなコマンドを実行するだけの単純な作業にするためです。
これを行うには、InterSystems IRIS パッケージの中身を説明する module.xml ファイルをリポジトリに導入する必要があります。
この記事では、module.xml ファイルの異なる構成要素を説明し、独自のファイルを作成する方法をご紹介します。
まずは、samples-objectscript パッケージから始めます。以下のコマンドを実行すれば、IRIS に ObjectScript のサンプルアプリケーションがインストールされます。
zpm: USER>install samples-objectscript
おそらく、これほどシンプルなパッケージはないと思います。以下は、パッケージの中身を説明する module.xml です。
<Export generator="Cache" version="25"> <Document name="samples-objectscript.ZPM"> <Module> <Name>samples-objectscript</Name> <Version>1.0.0</Version> <Packaging>module</Packaging> <SourcesRoot>src</SourcesRoot> <Resource Name="ObjectScript.PKG"/> </Module> </Document> </Export>
開発者の皆さん、こんにちは!
この記事では、Developer Hub にあるチュートリアルに新しいチュートリアル:InterSystems IRIS ベクトル検索を使用した RAG が追加されましたので内容をご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
このチュートリアルでは、生成 AI アプリケーションの精度向上に向けて、ベクトル検索と検索拡張生成(Retrieval Augmented Generation)の活用を体験できます。
具体的には、InterSystems IRIS のベクトル検索機能を活用し、生成 AI チャットボット向けのナレッジベースをサンプルコードを利用して作成します。
また、Streamlit を使用して作成したチャットボットを動かしながら、ナレッジベースの情報を追加することで生成 AI からの回答が変化していくことを確認していきます。
.png)
アカウント作成やログインも不要で
ボタンをクリックするだけで始められます👍
チュートリアルへのリンクは「開発者コミュニティのリソース」からも辿れます!
.png)
ぜひ、お試しください!
開発者の皆さん、こんにちは!
IRISのInteroperability(相互運用性)機能(Ensembleのプロダクション)を使用してどのようなことができるか、コード例をご覧いただきながら/サンプルを動かしながらご確認いただける記事をまとめてみました。
ぜひご参照ください。
記事一覧:
IRIS BIチュートリアル試してみたシリーズの7回目です。
今回も、「キューブ定義の拡張」ページのトピックになります。では、早速はじめていきましょう。
コレクションを使用してディメンジョンのレベルを作成します。
コレクションって何?という方は、こちらのオンラインドキュメントを参考にしてください。リストや配列など、同じタイプの要素が複数含まれるオブジェクト・クラスのことを指します。
今回のキューブのベースとなる BI_Study.Patient テーブルにある2つのフィールド、Allergies と DiagnosesAsLB を使用します。各々のデータタイプを確認してみましょう。システムエクスプローラ → SQL から BI_Study.Patient テーブルのフィールド情報を確認します。
Allergies フィールドは PatientAllergy クラスを参照し、DiagnosesAsLB フィールドはリスト型で定義されています。
では、まず DiagnosesAsLB に対応するレベルを作成します。アーキテクト画面から Tutorial キューブを開きます。
画面上部の [要素を追加] リンクから DiagD という名前のディメンジョンを作成します。要素選択は データ・ディメンジョン を選択します。