クリアフィルター
記事
Mihoko Iijima · 2021年2月1日
開発者のみなさん、こんにちは!
IRIS プログラミングコンテストでは、💨すぐに💨開発を開始いただけるようにコンテナ版 IRIS を利用した「開発環境テンプレート」をご提供してしていました。
終了したコンテストにはご応募いただけませんが、テンプレートは「ちょっと試したい」「加工して自分オリジナル環境を作りたい」の目的にぴったりの内容です。
また、全て Open Exchange で公開されていて、Docker、Git、VSCode をインストールした環境があればすぐにご利用いただけます。
テンプレートの使用方法については、各コンテストの紹介ページでご案内しています(日本語解説ビデオ付きもあります)。
基本は以下 3 行だけで開始できます。(とっても簡単!)
git clone <ここにテンプレートのURL>
cd <作成されたディレクトリ>
docker-compose up -d --build
ご興味ある内容ありましたら、ぜひお手元で試してみてください!
コンテスト名
内容紹介+テンプレート解説ビデオ(YouTube)
テンプレート
REST
https://www.intersystems.com/jp/developing-with-intersystems-iris/iris-contest-april20/
https://youtu.be/xx8FQk3hTV8
https://openexchange.intersystems.com/package/rest-api-contest-template
Native API
https://www.intersystems.com/jp/developing-with-intersystems-iris/the-third-iris-contest/
https://youtu.be/FHs6W5LHWwo
https://openexchange.intersystems.com/package/native-api-contest-template
AI/ML
https://jp.community.intersystems.com/node/478511
https://youtu.be/k5u7bDXnSqs
https://openexchange.intersystems.com/package/integratedml-demo-templatehttps://openexchange.intersystems.com/package/PythonGateway-Template
FHIR
https://jp.community.intersystems.com/node/480211
(説明動画はありませんが、日本語版Readmeをご用意しています)
https://openexchange.intersystems.com/package/iris-fhir-template<日本語Readme>https://github.com/intersystems-community/iris-fhir-template/blob/master/README-JP.md
FullStack
https://jp.community.intersystems.com/node/481361
過去開催分のテンプレートの自由活用だったので、専用テンプレートはありません。
Interoperability
https://jp.community.intersystems.com/node/483166
https://openexchange.intersystems.com/package/iris-interoperability-template
Analytics
https://jp.community.intersystems.com/node/484736
テンプレートの使い方解説https://jp.community.intersystems.com/node/484826
https://youtu.be/vSCpXxdZk6o
https://youtu.be/sVHZ9vyE6Mk
https://youtu.be/4odT030kqyQ
https://youtu.be/v8XuUYks6UM
https://youtu.be/HhiGB_3s-7g
https://openexchange.intersystems.com/package/iris-analytics-template
マルチモデル
https://jp.community.intersystems.com/node/486531
過去開催分のテンプレートの自由活用だったので、専用テンプレートはありません。
コンテストでは何かの技術+IRIS を組み合わせてプログラミングの腕を競い合っていただきましたので、IRIS以外の技術も含まれています。
シンプルに IRIS だけ試したい+ちょっとしたサンプルがあればよい、という場合は「https://openexchange.intersystems.com/package/objectscript-docker-template」をご利用ください。
シンプルだけど、オリジナルネームスペースを追加したい、オリジナルソースコードをインポートした状態でコンテナをビルド&開始したい!という場合は、「https://github.com/Intersystems-jp/SimpleTemplate」もご参照ください。
VSCode から IRIS への接続方法詳細については「VSCode を使ってみよう!」の記事もぜひご参照ください。
ご利用にあたり、ご不明な点などございましたらこの投稿への「返信」でぜひお知らせください!
メモ:開発環境テンプレートですが、IRIS のコンテナバージョンが新しくなったり、コミュニティサポートのパッケージマネージャの機能が後から追加されているものもあり、ビデオと現在の内容が異なる場合もあります。予めご了承ください。
記事
Andre Larsen Barbosa · 2025年6月9日

相手に隙を与えないノックアウトパンチのように、オープンソースプラットフォームであるKubernetesは、その可用性(つまり、サポート、サービス、ツールの容易な入手性)により、無限の可能性を秘めています。Kubernetesはコンテナ内のジョブとサービスを管理できるプラットフォームであり、これらのプロセスの構成と自動化を大幅に簡素化します。
しかし、タイトルイメージにふさわしい、このツールに「正しい」名前、InterSystems Kubernetes Operatorを与えましょう。
原理は至ってシンプルです。サービスを選択し、ゲームのルールを定義するだけで(ここでもKnockoutを参照)、すべてが可能な限り透明性と効率性を高めて提供されます。これは、インストール、修復、そして事前定義された要件を満たさない場合の最終的な復旧にも適用されます。
では、IKOと他のオペレーターの違いは何でしょうか?Kubernetes API(ここではK8sと略します)の拡張機能であるIrisClusterカスタムコンポーネントは、ロックされたIRISクラスター、分散Cachéクラスター、さらには匿名インスタンスとしてデプロイするオプションを備えています。これらすべてを、最も多様なKubernetesプラットフォーム上で実行できます。最後に、InterSystemsのクラスタ管理機能も搭載されており、以前は手動でしか実行できなかったノードの追加によるタスクの自動化が可能になります。
これは非常に魅力的で、スポーツやゲームに例えられていますが、なぜ必要なのでしょうか?答えは比較的簡単です。InterSystems IRISをK8sに統合するためにIrisClusterは必要ありません。しかし、K8sはスタンドアロンアプリケーションであるため、これらのIRISインスタンスを構成するための定義とスクリプトを作成する必要があります。このように、IKOはこのプロセスを自動化し、メンテナンスを容易にします。コンテナを使用することは、必要な一連のアクティビティをパッケージ化する優れた方法です。
ところで、この機会を活用してみてはいかがでしょうか?コンテナとは何かご存知ですか?ヒント:単なるボードゲームではありません。

答えは、あるパッケージの「輸送」に大きく関係しています。アプリケーションとサービスをパッケージ化して分離し、他の部分とは独立して実行できるようにするためです。これにより、必要に応じて、ある環境から別の環境への「輸送」が容易になります。
InterSystemsの膨大なドキュメントを活用し、IKOのインストールとその後の設定および調整手順へのリンクを以下に示します。
https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls...
K8sというニックネームに誰も興味を持たないように。Kubernetesという名前はギリシャ語に由来し、水先案内人、つまり指揮官を意味します。そして、先頭の「K」と末尾の「S」の間の文字数は8です。つまり、「K8s」です。
記事
Toshihiko Minamoto · 2022年6月14日
これは、一般的なデータベース(PostgreSQL や MySQL など)から IRIS への移行に関する前回の記事に続く記事です。
PostgreSQL から移行する際に使用する場合と同じ手続きを使用します。 ただし、MySQL で使用されているデータ型は IRIS のデータ型に非常に似ているため、前回よりもさらに簡単に移行できます。 このため、列に変換ルールを作成する必要はありません。
## 移行プロセスにサンプルデータを取得
GitHub では、2 つのデータベースをビルドして実行する docker compose プロジェクトをダウンロードできます。
* ソースデータベース: サンプルデータベースを含む MySQL データベースの Docker インスタンス。
* ターゲットデータベース: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。
サンプルを取得して実行するには、以下の手順に従います。
1. git リポジトリの https://github.com/yurimarx/migration-mysql-iris に移動します。
2. プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-mysql-iris.git
3. migration-mysql-iris プロジェクトフォルダに移動します。
4. ビルドを実行します: docker-compose build
5. コンテナを実行します: docker-compose up -d
6. Docker のデスクトップですべてが正しいことを確認します。
.png)
## 移行するデータについて
移行するデータは、パート I で使用したデータモデルと同じであり、以下のとおりです。
.png)
MySQL から IRIS への移行プロセスによって以下が移行されます。
* 8 個のテーブル
* sale の 5000 行
* users の 2500 行
* product の 200 行
* store の 50 行
* country の 100 行
* city の 30 行
* status_name の 5 行
移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。
## MySQL から IRIS に移行するためのオープンソースツール: DBeaver
パート I では、DBeaver Community エディションを使って移行しました。 ここでも、同じものを使用します。
DBeaver は、市販の主要データベース製品に接続し、データオブジェクトを作成、ドロップ、選択、更新、および削除するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。
DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。
## DBeaver を使って、ソースデータベースとターゲットデータベースを接続
**移行するデータベース接続を設定します。**
DBeaver への MySQL 接続を設定するには:
. DBeaver で、[ファイル]>[新規作成]に移動します。 2. [データベース接続]を選択して、[次へ]をクリックします。
.png)
3. [SQL]タブ >[MySQL]を選択して、[次へ]をクリックします。
.png)
4. 以下の図のように、[メイン]タブの MySQL 接続フィールドに入力します。
● ホスト: localhost
● ポート: 3306
● データベース: db
● ユーザー名: user
● パスワード: password
5. [ドライバーのプロパティ]タブに移動し、allowPublicKeyRetrieval を TRUE に設定します。
.png)
6. [ドライバーのプロパティ]タブで useSSL を FALSE に設定します。
.png)
7. DBeaver が MySQL ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。
8. [終了]をクリックします。
**DBeaver への InterSystems IRIS 接続を設定するには:**
パート I で IRIS 接続を構成しましたが、それを保存していない場合は以下を行います。
1. DBeaver で、[ファイル]>[新規作成]に移動します。 2. [データベース接続]を選択して、[次へ]をクリックします。
.png)
3. [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。
.png)
4. DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。
5. 以下の図に示されるように、InterSystems IRIS 接続のフィールドに入力します。
● ホスト: localhost
● データベース/スキーマ: user
● ユーザー名: _SYSTEM
● パスワード: SYS
● [テスト接続]と[終了]をクリックします。
接続(db と user)がデータベースナビゲーターで利用できるようになります。
.png)
## 移行を行う
この移行プロセスは、パート I に説明されているプロセスに非常に似ています。以下の手順に従ってください。
1. db 接続 > Databases > db > Tables を展開し、すべてのテーブルを選択します。 以下の図のように、選択したテーブルを右クリックして、[データをエクスポート]を選択します。
.png)
2. 以下の図のようにデータベースを選択して、[次へ]をクリックします。
.png)
3. [選択]ボタンをクリックします。
.png)
4. dc_test を選択して[OK]をクリックします(ターゲットとソースの列間で高度な変換を作成する必要がある場合は、[列]ボタンをクリックします)。
.png)
5. [次へ]をクリックします。
.png)
6. [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。
.png)
7. データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。
.png)
8. [確認]で[続行]をクリックします。
.png)
9. データベースナビゲーターを開くと、InterSystems IRIS dc_test スキーマ内にすべての MySQL テーブルが表示されます。
.png)
PostgreSQL の移行と同様に、MySQL のテーブルの移行プロセスも非常に単純でした。 ただし、ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript または SQL で SQL ソースコードを書き直す必要があります。
記事
Megumi Kakechi · 2021年2月2日
これは InterSystems FAQ サイトの記事です。
※こちらの方法は、ミラーリング、シャドウイング、またはその他のメカニズムを使用して複製したデーターベースを比較したい場合に利用します。
グローバル変数の比較には、DATACHECKユーティリティを利用できます。以下ドキュメントをご参照ください。DataCheckの概要【IRIS】
DATACHECK ユーティリティの実行サンプルは、添付のPDFをご覧ください。
***
ルーチンの比較は、システムルーチン %RCMP か、管理ポータルを使用します。
以下は、管理ポータルでの使用方法になります。
例えば、以下ルーチンがUSERネームスペースにあるとします。
test() public{ quit "hello"}
以下ルーチンがUSER2ネームスペースにあるとします。
test() public{ quit "こんにちは"}
以下は、USERネームスペースに接続したターミナルで %RCOM を実行した結果になります。
※ Compare: にルーチン名を記述し、 with: に比較したいルーチン名を記載します。 別ネームスペースにあるルーチンを指定する場合は |"ネームスペース名"|ルーチン名.MAC で指定します。
USER>do ^%RCMP Compare: comptest.mac with: |"USER2"|comptest.macCompare: //【メモ】比較対象がない場合はEnterを押下 Ignore Comment Differences? No => NoIgnore Leading White Space? No => No Display Results onDevice: c:\temp\comp.txt //【メモ】ファイル名を指定するとファイル出力します Parameters? ("WNS") =>comptest.MAC |"USER2"|comptest.MAC*******************************************************************************USER>
比較結果は以下の通りです。
Routine Comparison 02 Feb 2021 2:31 PM From directory: c:\intersystems\iris\mgr\user\
comptest.MAC |"USER2"|comptest.MAC *******************************************************************************comptest.MAC +2 quit "hello"...................|"USER2"|comptest.MAC +2 quit "こんにちは"******************************************************************************
記事
Mihoko Iijima · 2021年3月19日
これは InterSystems FAQ サイトの記事です。
各タイムアウト値の意味は以下の通りです。
(1) [サーバ応答タイムアウト]
この設定時間内に、IRIS/Caché での処理(ルーチンやクエリの実行)が終わらない場合は、ブラウザ側にエラーを返します。
例) この値が60秒の時に、ルーチン/メソッド/クエリ実行に 90秒 かかる場合にはエラーになります。
(2) [キューイングされたリクエストのタイムアウト]
CSP/REST で設定する IRIS/Caché サーバごとに、CSP/REST を同時実行できるプロセス数を制限できます。
たとえば、サーバ接続最大数=3の場合、表示に数十秒かかるページを複数同時に要求した場合、4つ目以降のリクエストは、Web/CSP ゲートウェイ上で「キュー」に入り待ち状態になります。
このキューで待つ最大時間が (2) のタイムアウトになります。
(3) [非活動タイムアウト]
CSP/REST では、IRIS/Caché サーバ上に待ち受けプロセスが複数でき、「サーバ接続最大数」まで待ち受けプロセスが出来る可能性があります。
各プロセスが、次の要求が来るまで待機する時間がこのタイムアウト値になります。
タイムアウト後、プロセスは自動的に消滅します(これらのプロセスはライセンスを消費しません)。
詳細は下記ドキュメントページをご参照ください。
InterSystems IRISへの接続【IRIS】
Cachéへの接続
記事
Tomoko Furuzono · 2022年3月1日
これは、InterSystems FAQサイトの記事です。
ミラー構成削除時に、ミラー・データベースのミラー属性を削除するオプションを指定しないと、通常データベースに戻すことができず、次回マウント時に読み取り専用でデータベースがマウントされます。 読み書き可能なデータベースに戻すためには、システムルーチン ^MIRROR を使用してミラー属性を削除する必要があります。手順は以下のとおりです。(%SYSネームスペースで実行します。)
%SYS>do ^MIRROR This instance is not initialized as a mirror member 1) List mirrored databases2) Remove one or more mirrored databases ※このメニューを選択します3) Create a Mirror4) Join Mirror as Failover Member5) Join Mirror as Async Member Option? 2 ※ 2 を入力します。There is one mirrored database on this systemRemove it? y ※ yes または y を入力します。Removing c:\intersystems\ensemble\mgr\mtest\ ...succeededPress to return to the main menu...
【補足】 フェイルオーバーメンバそれぞれでミラー構成の削除を行う際、データベースのミラー属性も一緒に削除するかどうか確認するメニューは、以下のように表示されます。
In addition to the above, do you also want to remove mirror attribute ofmirrored databases (the databases themselves will not be deleted)? y
管理ポータルでミラー構成を削除する際のミラー属性削除の画面は、以下のように表示されます。
デフォルト選択が<no>であるため、yまたはyesを指定しないとミラー属性は削除されません。 ^MIRRORの使い方や、ミラー構成削除については、以下ドキュメントページをご参照ください。ミラーリング【IRIS】ミラーリング
記事
Hiroshi Sato · 2022年7月11日
iris コマンドを使用することで実行できます。iris コマンド(iris.exe)は、<インストールディレクトリ>\bin にインストールされています。 書式:
iris run インスタンス名 tag^routine([parameter-list]) ネームスペース名iris run インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名
インスタンス名は、管理ポータル(システム管理ポータル)の右上にある [インスタンス:] に表示されている文字列です。
実行する環境に応じて一部の文字 ^ や " をエスケープする必要があります。
Windowsの場合は、以下のようなエスケープが必要となります。
例: USERネームスペースで do info^test(123,"abc") を実行します。
c:\InterSystems\IRIS\bin>iris terminal IRIS info^^test(123,\"abc\") USER
例: USERネームスペースで do ##class(Test.Class1).test(123,"abc") を実行します。
c:\InterSystems\IRIS\bin>iris run IRIS ##class(Test.Class1).test(123,\"abc\") USER
【注意】
ris run 等でルーチンやクラスメソッドが呼び出せないときは、%Service_Consoleサービスの認証設定をご確認ください。iris コマンドを使用する場合、通常のパスワード認証を行うことができません。認証なしで実行するか、オペレーティング・システム認証を使用する必要があり、これを、%Service_Consoleの「許可された認証法」で指定しておく必要があります。[管理ポータル]>システム管理 > セキュリティ管理 > サービス > %Service_Consoleを選択
オペレーティング・システム認証の詳細については、関連トピックをご確認ください。
オペレーティング・システム・ベースの認証構成について
記事
Mihoko Iijima · 2020年9月16日
これはInterSystems FAQ サイトの記事です。
InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。
具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。
データベースファイル(IRIS.DAT/CACHE.DAT)
<インストールディレクトリ>/bin 内の実行可能ファイル(EXE)
ライトイメージジャーナル(WIJ)
ジャーナルディレクトリ内のジャーナルファイル
上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」 のようなエラーが発生する場合があります。
このエラーは、実際にハード的なディスク障害が原因であることもありますが、それ以外にアンチウィルスソフトのウィルスチェックなどによって、ディスクへの書き込みが阻止された場合にも起こります。
詳細は、下記ドキュメントページをご参照ください。
インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法【IRIS】インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法
記事
Mihoko Iijima · 2024年12月26日
これは InterSystems FAQ サイトの記事です。
方法は2種類あります。
1) 同一サーバにIISとCachéがインストールされている環境をそのままアップグレードする場合は、IRIS(※)インストールキットを起動し「CACHE(CONVERSION)」からCSPゲートウェイとCaché両方をアップグレードします。
2) IISがIRISとは異なるサーバにインストールされている場合は、IRIS用Webゲートウェイキットを利用します。
(※)InterSystems IRISまたはIRIS for Health
それぞれの方法は以下の通りです。
1)同一サーバにIISとCachéがインストールされている環境の「CACHE(CONVERSION)」でのアップグレード方法
a) インストーラーを起動します。
b) CACHE(CONVERSION)を選択します。
c) 「このインスタンスのローカルIIS Webサーバを構成」選択し「次へ」のボタンをクリックします。
d) 「コンバート」ボタンをクリックします。(この後、IRISのライセンスキーの指定を行う必要があります。事前にiris.keyをご用意ください)
2) IRIS用Webゲートウェイキットを利用する方法
a) Webゲートウェイキットを起動します。
b) 「Complete」を選択し「Next」ボタンをクリックします。
c) 更新したいApplication Name(csp)を指定します。ポート番号はアクセスするIRISのポート番号を指定します。
d) 「Install」ボタンをクリックします。
最後に、Webゲートウェイ管理画面を開きアップグレード後のバージョンが表示されることを確認します。
http://localhost/csp/bin/systems/module.cxw
記事
Toshihiko Minamoto · 2022年8月31日
これは、市場に出回っている主なデータベースから InterSystems IRIS への移行に関する連載第 4 回目の記事です。 このパートでは、Microsoft SQL Server から移行するための手順を説明します。 前の記事で説明したとおり、現時点ではいくつかの移行オプションが存在しますが、最も一般的なオプションは、DBeaver(https://openexchange.intersystems.com/package/DBeaver)または SQLGateway を使用する 2 つの方法です。 最初のオプションはこの記事で紹介しますが、2 つ目のオプションは Robert Cemper が書いた「SQLgateway を使ったデータベース移行」(https://community.intersystems.com/post/db-migration-using-sqlgateway)という優れた記事で紹介されています。
## 移行プロセス用のサンプルデータを取得
GitHub では、以下の 2 つのデータベースをビルドして実行する Docker Compose プロジェクトをダウンロードできます。
ソースデータベース: サンプルデータベースを含む SQL Server データベースの Docker インスタンス。
2. ターゲットデータベース: ソースデータベースを受け取る準備ができたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。
サンプルを取得して実行するには、以下の手順に従います。
1. https://github.com/yurimarx/migration-mssql-iris に移動し、[Download]をクリックして git リポジトリに移動します。
2. プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-mssql-iris.git
3. migration-mssql-iris プロジェクトフォルダに移動します。
4. ビルドを実行します。docker-compose build
5. コンテナを実行します: docker-compose up -d
6. Docker デスクトップで、インスタンスに問題がないことを確認します。
.png)
## 移行するデータについて
最初の 2 つのパートでは、販売データベースを操作しました。 パート III では、DB2 サンプルデータベース(より完成度の高い販売データベース)を使用しました。 今回は、AdventureWorks データベースと言うよく知られた MSSQL サンプルデータベースを使用します。 移行されるデータは以下のとおりです。
**AdventureWorks スキーマ**
AdventureWorks は、スキーマごとに 1 つのビジネストピックを持つ、計 5 つのビジネストピックが含まれる多様なサンプルデータベースです。 したがって、人事関連、個人情報(顧客と従業員)、生産関連、購買関連、および販売のトピックを処理するためのテーブルが存在します。
SQL Server から IRIS への移行プロセスには、6 つのスキーマと 70 個のテーブルが含まれます。 テーブルの詳細は以下のとおりです。
.png)
.png)
.png)
.png)
.png)
.png)
移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。
## SQL Server から IRIS に移行するためのオープンソースツール: DBeaver
DBeaver は、市場に出回っている主要データベース製品に接続し、データオブジェクトを作成、ドロップ、選択、更新、および削除するために使用するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。
DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。
## DBeaver を使って、ソースデータベースとターゲットデータベースを接続
移行するデータベース接続を設定します。
DBeaver への MS SQL 接続を設定するには:
1. DBeaver で、[ファイル]>[新規作成]に移動します。 2. [データベース接続]を選択して、[次へ]をクリックします。
.png)
3. [SQL]タブ >[SQL Serveer]を選択して、[次へ]をクリックします。
.png)
4. 以下の図に示されるように、SQL Server 接続フィールドに入力します。
● ホスト: localhost● ポート: 1433● データベース: AdventureWorks● ユーザー名: SA● パスワード: MSSQLServer@2019● [OK]をクリックします。
**DBeaver への InterSystems IRIS 接続を設定するには:**
1. DBeaver で、[ファイル]>[新規作成]に移動します。 2. [データベース接続]を選択して、[次へ]をクリックします。
.png)
3. [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。
.png)
4. DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。
5. 以下の図に示されるように、InterSystems IRIS 接続のフィールドに入力します。
● ホスト: localhost● データベース/スキーマ: user● ユーザー名: _SYSTEM● パスワード: SYS● [テスト接続]と[OK]をクリックします。
接続(AdventureWorks と user)がデータベースナビゲーターで利用できるようになります。
.png)
## 移行を行う
**移行を行うには、以下の手順に従います。**
1. SQL Server 接続 > スキーマ > HumanResources > テーブルを展開し、すべてのテーブルを選択します。 以下の図のように、選択したテーブルを右クリックして、[データをエクスポート]を選択します。
.png)
2. 以下の図のようにデータベースを選択して、[次へ]をクリックします。
.png)
3. [選択]ボタンをクリックします。
.png)
4. dc_test を選択して、[OK]をクリックします。
.png)
5. 一部の行には 16 文字以上が含まれるため、rowguid フィールドのデータ型を varchar(16) から varchar(50) に変更する必要があります。
AdventureWorks.HumanResources.Employee テーブルを展開し、rowguid フィールドを選択して[列…]をクリックします。
.png)
7. ターゲットの型を VARCHAR(16) から VARCHAR(50) に変更して、[OK]をクリックします。
.png)
8. 他のスキーマに同じフィールドを持つ他のすべてのテーブルに対して同じプロセスを繰り返します。
9. ターゲットのデータ型が変更されたら、[次へ]をクリックします。
.png)
10. [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。
.png)
11. データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。
.png)
12. [確認]で[続行]をクリックします。
.png)
13. これで、データベースナビゲーターで、InterSystems IRIS dc_test スキーマ内のすべての SQL Server テーブルが表示されるようになりました。
.png)
他のスキーマに対しても、この移行手続きを繰り返します。
テーブルの移行プロセスは非常に単純ですが、ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript または SQL を使って SQL ソースコードを書き直す必要があります。
記事
Minoru Horita · 2020年6月29日
この連載記事では、InterSystemsデータプラットフォーム用のPython Gatewayについて説明します。 また、InterSystems IRISの最新のAI/MLツールを利用してPythonコードなどを実行します。 このプロジェクトは、InterSystems IRIS環境にPythonの力を与えます。
任意のPythonコードを実行する
InterSystems IRISからPythonへのシームレスなデータ転送
Python相互運用アダプタでインテリジェントな相互運用ビジネスプロセスを構築する
InterSystems IRISからのPythonコンテキストの保存、調査、変更、復元
索引
現時点での連載計画です(変更される可能性があります)。
パート I:概要、展望、紹介 <-- 現在、この記事を参照しています
パート II:インストールとトラブルシューティング
パート III:基本機能
パート IV:相互運用アダプタ
パート V:Execute関数
パート VI:動的ゲートウェイ
パート VII:プロキシゲートウェイ
パート VIII:使用事例とML Toolkit
概要
機械学習(ML)は、明示的な命令を使用せず、その代わりにパターンと推論に基づいて特定のタスクを効果的に実行するためのアルゴリズムと統計モデルを研究するものです。
機械学習のアルゴリズムとモデルは、ますます普及が進んでいます。 その理由はさまざまですが、結局はその手頃な価格、シンプルさ、そして実用的な結果を生み出していることが重視されています。 クラスタリングやニューラルネットワークモデリングも新しい技術なのでしょうか? もちろん、そうではありません。ただし、現在ではこれを実行するために数十万行のコードを記述する必要はなく、コストははるかに手頃になっています。
ツールは進化し続けています。現時点では完全にGUIベースのAI/MLツールはありませんが、他の多くのコンピューター技術で見られたのと同じ進歩が、BIツール(コードの記述からフレームワークの利用、GUIベースの構成可能なソリューションまで) とAI/MLツールの組み合わせで最も顕著に見られます。 私たちはすでにコードを書く段階を通過し、現在はフレームワークを利用してモデルの構成と計算を行っています。
その他の改善、すなわちエンドユーザーが実際のデータに基づいてモデルのトレーニングを完了するだけで済むような事前トレーニング済みモデルを配布することも、導入プロセスを単純化しています。 このような進歩により、個人と企業の両方がはるかに簡単にデータサイエンスに取り組めるようになっています。
その一方で、今日では企業が行うあらゆる取引に関する多くのデータが収集されています。 InterSystems IRISなどの統合データプラットフォームを使用すると、このような情報すべてに即座にアクセスし、予測モデルのデータソースとして使用できます。
もう1つの大きな要因であるクラウドを利用すれば、AI/MLワークロードをかつてないほど簡単に実行できます。 さらに重要なことに、必要なリソースだけを消費できます。 また、クラウドプラットフォームは大規模に並列化されているため、ソリューションを実行するまでの時間を短縮できます。
しかし、結果についてはどうでしょうか? ここから少し複雑になります。 モデルを構築するためのツールはたくさん存在しますが、それらについては後で説明します。また、優れたモデルを構築するのは必ずしも簡単ではありませんが、そのあとはどうなるでしょうか? モデルからビジネス価値を抽出することも重要な作業です。 問題の根本は、分析データとトランザクションデータのフローとデータモデルの分離です。 モデルをトレーニングする際には、ウェアハウスシステムの履歴データがよく使用されています。 しかし、構築されたモデルはトランザクション処理の中心に置くのが最適です。 1日に1回実行する場合、最高の不正検出モデルはどのようなものになるでしょうか? 犯罪者たちはお金を持ってとっくに姿を消しているかもしれません。 履歴データでモデルをトレーニングする必要がありますが、ビジネスプロセスがモデルの予測に基づいて実行されるよう、新しい受信データにリアルタイムでモデルを適用する必要もあります。
MLToolkit
MLToolkitは包括的なツールセットであり、正確に予測モデルとトランザクション環境を1つにまとめ、作成したモデルをビジネスプロセス内で簡単に活用できるようにすることを目的としています。 Python GatewayはMLToolkitの一部であり、Python言語との統合を提供します。
展望
先に進む前に、後で使用するPythonのいくつかのツールとライブラリについて説明します。
ツール
Pythonはインタープリター型の高度な汎用プログラミング言語です。 この言語の主な優位点は、数学、ML、AIのライブラリが豊富に存在することです。 ObjectScriptと同様のオブジェクト指向言語ではありますが、すべてが静的ではなく動的となっています。 また、すべてがオブジェクトとなっています。 後の記事は、この言語にある程度精通していることを前提としています。 学習を開始する場合、まずはドキュメントを読むことをお勧めします 。
後の演習では、Python 3.6.7(64ビット版)をインストールします。
IDEについてはPyCharmを使用しますが、他にも多くのIDEが存在します。 現在Atelierを使用しているのであれば、Pythonの開発者にはEclipseを使うのが良いでしょう。
ノートブック:IDEの代わりに、Webベースのノートブックでスクリプトを作成して共有できます。 最も一般的なのはJupyterです。
ライブラリ
機械学習に使用されるライブラリのリストを次に示します(すべてを網羅しているわけではありません)。
NumpyはPythonを使用した科学計算のための基本パッケージです。
Pandasは高性能で使いやすいデータ構造とデータ分析ツールを提供するライブラリです。
Matplotlibは2次元プロットライブラリであり、さまざまなハードコピー形式や複数プラットフォームのインタラクティブな環境で図を生成します。
Seabornはmatplotlibに基づくデータ視覚化ライブラリです。 魅力的で有益な統計グラフを描画するための高度なのインターフェースを提供します。
Sklearnは機械学習ライブラリです。
XGBoostは最適化された分散型勾配ブースティングライブラリであり、非常に効率がよく、柔軟性があり、移植性があります。 勾配ブースティングフレームワークの下で機械学習アルゴリズムを実装します。
Gensimは教師なしトピックモデリングと自然言語処理のためのライブラリです。
KerasはPythonで記述された高度なニューラルネットワークAPIであり、TensorFlow、CNTK、またはTheano上で実行できます。
Tensorflowはエンドツーエンドのオープンソース機械学習プラットフォームです。
PyTorchディープラーニングプラットフォームはTensorflowに似ていますが、Pythonに重点を置いています。
NyokaはPythonモデルからPMMLを生成します。
要約
AI/MLテクノロジーを活用すると、企業の生産性と適応性がより高くなります。 さらに、今日ではこれらのテクノロジーの構築と導入がより簡単になっています。 AI/MLテクノロジーと、それが組織の成長と繁栄にどのように役立つかを調査してください。 ほぼすべての業界で応用例やストーリー、使用事例があります。 未来のテクノロジーを利用するチャンスを見逃さないようにしましょう。
次の内容
次のパートでは、Python Gatewayをインストールします。 次回のウェビナーには忘れずに参加してください(詳細は下記)!
リンク
Python Gateway
Python 3.6.7(64ビット版)のインストール
Pythonのドキュメント/チュートリアル
ウェビナー
この記事は2019年4月12日に英語版のコミュニティに投稿された記事の翻訳です。以下のウェビナーはすでに終了しました。
人工知能および機械学習分野の進歩からメリットを享受したいですか? InterSystems IRISと機械学習(ML)ツールキットを使用すれば、これまでになく簡単にその希望を叶えることができます。 4月23日(火)の午前11時(米国東部標準時)に私と同僚のSergey Lukyanchikovと一緒にInterSystems IRISの機械学習ツールキットのウェビナーに参加し、InterSystems IRISをスタンドアロン開発プラットフォームと、InterSystems IRIS、Python、その他の外部ツールを併用するAI/MLモデルのオーケストレーションプラットフォームの両方として使用する方法を確認してください。
日付:4月23日(火)午前11時(米国東部標準時)
対象者:開発者、ソリューションアーキテクト、データサイエンティスト、データエンジニア。
今すぐご登録ください!
続けて「Python Gateway パート II:インストール」をお読みください。
InterSystems Open Exchangeで関連アプリケーションを確認してください。
お知らせ
Toshihiko Minamoto · 2020年12月13日
コミュニティの皆さん、こんにちは!
[InterSystems のグローバルマスターズ・ゲーミフィケーションプラットフォーム](https://intersystems.influitive.com)にすべての DC メンバーを招待いたします。最新情報を把握し、DC への貢献によるポイントや賞品をゲットしていただけます! 本記事を読んで参加方法と概要をご確認ください!
[](https://intersystems.influitive.com/users/sign_in)
▶️ グローバルマスターズとは?
グローバルマスターズはゲーミフィケ―ションプラットフォームで、ISC テクノロジーに関するチャレンジ (タスク) を完了させたり、バッジやポイントを獲得したり、そのポイントを様々な賞品に交換したりすることができます。
毎週新しいチャレンジが 5~10 個作成され、DC で最も興味深い記事やベストプラクティス、ビデオ、InterSystems の公式ニュース、学習素材、楽しいタスクなどが発表されます。 最新情報を把握するには最適です!
▶️ どのような内容ですか? 以下はチャレンジと賞品のサンプルです。

▶️ レベル、バッジ、権限
グローバルマスターズには 6 つのレベルがあります。 **到達するレベルが高いほど、賞品の価値と権限も上がります。** 最高レベルに到達できるよう、開発者コミュニティと Open Exchange (オープンエクスチェンジ) に貢献し、グローバルマスターズにも積極的に参加しましょう!
**次のレベルに上がるのに役立つ[レベルおよびバッジの一覧](https://jp.community.intersystems.com/node/485861) **
▶️ 参加方法は? ここからスタート!
1. [globalmasters.intersystems.com](https://intersystems.influitive.com/users/sign_in) にアクセスし、「SIGN IN with your InterSystems login」ボタンをクリックしてから、[WRC](https://wrc.intersystems.com/) の認証情報を使って参加します。
2. ログインしたら、**「Customize your program! START HERE!」と題したチャレンジを見つけます**。 この最初のチャレンジにより、賞品や毎週作成される新しいチャレンジのロックが解除されます。 このチャレンジをスキップしたら、グローバルマスターズ・ハブをフル活用できなくなります!
すべての開発者の皆さんがグローバルマスターズ・ハブに参加してくださるのを待ちしています!
また、フィードバックやアイデアもどしどしお寄せください。 いつでもお気軽にお問い合わせください!
インターシステムズグローバルマスターズでお会いしましょう! 😉
記事
Mihoko Iijima · 2021年7月15日
これは InterSystems FAQ サイトの記事です。
InterSystems 製品は複数の SQL 文を一度に受け付けませんので、SQL 文での複数結果セットのサポートはありませんが、ストアドプロシージャを作成して複数の結果セットを返すことができます。
以下、ストアドプロシージャの中では、 %SQL.Statement クラスを利用して SQL を実行し、結果セットを作成し、結果セットを呼び出し元に返すため、ストアドプロシージャ実行時に自動生成されるプロシージャ・コンテキスト(=%sqlcontext 変数に格納)の中に、結果セットを登録しています。
結果セットの登録は、%Library.ProcedureContext クラスの AddResultSet() メソッドを使用します。
メモ:ストアドプロシージャ実行時に自動生成されるプロシージャ・コンテキストは %Library.ProcedureContext のインスタンスで %sqlcontext 変数に自動的に設定されます。
サンプルコードでは、Sample.Employee と Sample.Company を利用して SELECT 文を実行し、%Execute() 実行後に作成される結果セットを %sqlcontext に追加しています。 この操作を 5 回繰り返しているため、5 個の結果セットが呼び出し元に戻される予定です。
メモ:IRIS を利用されている場合、Sample.Employee と Sample.Company はインストール時に用意されていないため、以下のサンプルコードを試す場合は、「サンプル(Sample.Person)のクラス定義ダウンロードとサンプルデータの作成について」をご参照ください。
ClassMethod getMultipleResultSets(pMax As %Library.Integer = 2) As %Status [ ReturnResultsets, SqlName = getMultipleResultSets, SqlProc ]
{
#dim sqlEx,tSC as %Exception.StatusException
#dim tRS as %SQL.StatementResult
#dim tIdx as %Integer
#dim tFields,tSQL as %String
#dim tSystemError as %SYSTEM.Error
#dim %sqlcontext as %Library.ProcedureContext
try
{
set tFields = $lb("ID","Name","DOB","Company->Name as Company")
set tSC = $$$OK
for tIdx = 1 : 1 : 5
{
set tSQL = "SELECT TOP 20 {Fields} FROM Sample.Employee ORDER BY ID {Order}"
set tSQL = $replace(tSQL,"{Fields}",$listtostring($list(tFields,1,1+$random($ll(tFields)))))
set tSQL = $replace(tSQL,"{Order}",$select($random(2)=0:"ASC",1:"DESC"))
set stmt =##class(%SQL.Statement).%New()
set tSC = stmt.%Prepare(tSQL)
$$$THROWONERROR(sqlEx,tSC)
set tRS= stmt.%Execute()
if ($data(%sqlcontext))
{
set tSC = %sqlcontext.AddResultSet(tRS)
}
}
}
catch (sqlEx)
{
set %sqlcontext.%SQLCODE=sqlEx.AsSQLCODE()
set %sqlcontext.%Message=sqlEx.AsSQLMessage()
set tSC = sqlEx.AsStatus()
}
quit tSC
}
Java から実行する例は以下の通りです(サンプルはこちら)。
※ IRISへ接続する例で記載しています。
/*
* MultiResultSet
*
*/
import java.sql.*;
public class MultiRS {
public static void main(String[] args) throws Exception{
String url="jdbc:IRIS://localhost:51773/USER";
String username="_SYSTEM"; // null for default
String password="SYS"; // null for default
Class.forName ("com.intersystems.jdbc.IRISDriver");
Connection dbconnection = DriverManager.getConnection(url, username, password);
CallableStatement cstmt = dbconnection.prepareCall("{? = call devcon2008.getMultipleResultSets(?) }");
cstmt.registerOutParameter(1,java.sql.Types.BINARY);
cstmt.setInt(2,5);
boolean ok = cstmt.execute();
int count=1;
do {
if (ok) {
ResultSet rs = cstmt.getResultSet();
out("\n\n\nresultset #" + count++);
int row = 1;
while (rs.next())
{
out("row #" + row++);
int columns = rs.getMetaData().getColumnCount();
for (int col=1; col <= columns; col++)
{
out( "\t" +
rs.getMetaData().getColumnName(col) + "\t=\t"
+ rs.getString(col));
}
out("");
}
out("\n");
}
} while (cstmt.getMoreResults());
dbconnection.close();
}
static void out(Object o) {
System.out.println(o);
}
}
サンプルコード一式: https://github.com/Intersystems-jp/MultipleResultSetSample