以前の記事では Arduino を使い始め、最終的には気象観測所のデータを表示できるようになりました。 この記事ではさらに掘り下げ、InterSystems Caché アプリケーションに対して RFID カードと Arduino を介した認証をセットアップします。
開発者の皆さん、こんにちは!
第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 のキューブ、ピボット、ダッシュボードの例が含まれています。
使い方の日本語解説ビデオ付き記事もあります。ぜひご活用ください!
InterSystems IRIS NLP (iKnow) - 1 point
みなさん、こんにちは。
数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。
Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。
これまでさまざまなストレージ技術とそのパフォーマンス特性の例を紹介してきましたが、今回は新しい HPE Cloudline 3150 Gen10(AMD プロセッサベースのシングルソケットサーバーで 3.2TB の Samsung PM1725a NVMe ドライブを 2 台搭載)など、内部コモディティベースのサーバーストレージの活用が増加傾向にあることを確認しました。
皆さん、こんにちは。
ストリームデータをデータベースに格納する場合、ファイルなどから読み取る際に漢字コード変換を行い、Unicode形式で%GlobalCharacterStreamに格納されるかと思いますが、時々、バイナリのままで読み込んでしまい、漢字コード変換を行わないといけない状況があるかと思います。
ファイルストリームでしたら%FileCharacterStreamクラスのTranslateTableプロパティに元の漢字コードを指定すれば、以下のようにコード変換しながら読みだすことは可能です。
%Net.SSH.Session クラスを使用すると、SSH を使ってサーバーに接続することができます。 一般的にはSFTP、特に FTP インバウンドアダプタとFTPアウトバウンドアダプタで使用されています。
この記事では、簡単な例を示しながら、このクラスを使用して SSH サーバーに接続する方法、認証のオプションを記述する方法、そして問題が発生した場合のデバッグ方法について説明します。
次は接続を行う例です。
Set SSH = ##class(%Net.SSH.Session).%New()
Set return=SSH.Connect("ftp.intersystems.com")
上記のコードは新しい接続を作成してから、ftp.intersystems.com の SFTP サーバーにデフォルトのポートで接続します。 この時点で、クライアントとサーバーは暗号化アルゴリズムとオプションを選択済みですが、ユーザーはまだログインしていません。
接続したら、認証方法を選択できます。 選択できるメソッドには次の 3 つがあります。
- AuthenticateWithUsername
- AuthenticateWithKeyPair
- AuthenticateWithKeyboardInteractive
上記はそれぞれ異なる認証方式です。 各方式を簡単に説明します。
これは、InterSystems FAQサイトの記事です。
以下の例では Test.Class2 クラスの Images プロパティに画像ファイルが保存できるように定義しています。
input() メソッドを利用して画像ファイルを Images プロパティに登録し、データベースに保存したとします。
これは、InterSystems FAQサイトの記事です。
プログラムでロック情報を取得するには以下2種類の方法があります。
- %SYS.LockQuery クラス を使用する方法
- 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") を
みなさん、こんにちは。 今回は ML モデルを IRIS Manager にアップロードしてテストしようと思います。
注意: Ubuntu 18.04、Apache Zeppelin 0.8.0、Python 3.6.5 で以下を実行しました。
はじめに
最近では実にさまざまなデータマイニングツールを使用して予測モデルを開発し、これまでにないほど簡単にデータを分析できるようになっています。 InterSystems IRIS Data Platform はビッグデータおよび高速データアプリケーション向けに安定した基盤を提供し、最新のデータマイニングツールとの相互運用性を実現します。
この連載記事では、InterSystems IRIS で利用できるデータマイニング機能について説明します。最初の記事ではインフラストラクチャを構成し、作業を開始する準備をしました。2 番目の記事では、Apache Spark と Apache Zeppelin を使用して花の種を予測する最初の予測モデルを構築しました。 この記事では KMeans PMML モデルを構築し、InterSystems IRIS でテストします。
開発者の皆さん、こんにちは!
この投稿では、第8回 InterSystems IRIS Analytics コンテスト の 開発テンプレート(IRIS Analytics Template) の使い方をご紹介します。
開発テンプレートは、Gitからソースコードをダウンロードし、コンテナを開始するだけで Johns Hopkins repository で公開されている COVID-19 のデータを使用した InterSystems BI(旧DeepSee)での分析環境が準備できます(サンプルデータが入ったテーブル、モデル定義、ピボットテーブル、ダッシュボードが準備されます)。
コンテストでは、開発テンプレートをベースとし、コードを追加しながらオリジナルアプリケーションを開発いただいたり、新規で作成いただいたり、自由に開発いただけます。
InterSystems BI を使ったアプリケーションでチャンレンジされる場合は、ぜひ、ここで紹介している開発テンプレートをご利用ください!
この他、サンプルアプリケーションの例は、コンテスト告知ページをご参照ください!
メモ:開発テンプレートはコンテスト以外の目的にもご活用いただけます!
以下、事前準備についてご説明します。
開発テンプレートをご利用いただくために、以下 3 つのソフトウェアのインストールが必要です。
背景
InterSystems IRIS 2019 では、新たに魅力的な機能が導入される予定です。 ぜひ知っておくべき魅力的な新機能の一つには、API 管理があります。
OpenAPI Initiative(https://www.openapis.org/)は、API を定義するための標準仕様(https://github.com/OAI/OpenAPI-Specification)をサポートする組織です。 OpenAPI 仕様(OAS)は、REST API 向けのプログラミング言語に依存しない標準的なインターフェースの記述を定義するもので、人間とコンピューターの両方が、ソースコードへのアクセス、追加ドキュメント、またはネットワークトラフィックの検査を必要とせずに、サービスの機能を検出して理解できるようにしています。 OpenAPI を使用して適切に定義されている場合、消費者は最小限の実装ロジックでリモートサービスを理解して対話できます。 低レベルのプログラミングに対するインターフェース記述と同様に、OpenAPI 仕様によってサービスを呼び出す際の当て推量が排除されます。
前回は GKE サービスを使用して IRIS アプリケーションを Google Cloud 上で起動しました。
また、クラスターを手動で(または gcloud を介して)作成するのは簡単ですが、最新の Infrastructure-as-Code(IaC)手法では、Kubernetesクラスターの説明もコードとしてリポジトリに格納する必要があります。 このコードの記述方法は、IaC に使用されるツールによって決まります。
Google Cloud の場合は複数のオプションが存在し、その中には Deployment Manager と Terraform があります。 どちらが優れているかにつては意見が分かれています。詳細を知りたい場合は、この Reddit のスレッド「Opinions on Terraform vs. Deployment Manager?」と Medium の記事「Comparing GCP Deployment Manager and Terraform」を参照してください。
これはInterSystems FAQ サイトの記事です。
InterSystemsの製品には同時ユーザー数でライセンスの容量を決定する製品とサーバーのCPUコア数で容量を決定する製品の2種類があります。
同時ユーザー数ライセンスタイプの場合、CPUコア数により使用可能なライセンスのグレードに制限があります。
物理サーバーの場合には、そのサーバーが保持しているCPUコア数の総数をカウントします。
そして、その総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。
サーバー仮想化ソフトウェア(VMWare、Hyper-Vなど)を利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。
同様にその総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。
CPUコア数ライセンスタイプの場合、コア数によりライセンスの容量が決まります。
CPUコア数の数え方は、同時ユーザーライセンスタイプと同じです。
物理サーバーの場合は、そのサーバーが保持しているCPUコア数の総数をカウントします。
サーバー仮想化ソフトウェアを利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。
【関連情報】(コミュニティ/FAQトピックをリンクしています
これは、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をバックアップする場合は、別途バックアップする必要があります。
最近、InterSystems 内で PHP から Caché ベースの Web サービスに接続が必要になる事例がいくつかありました。 これらの最初の事例とは、実はこの開発者コミュニティそのものであり、他の InterSystems サイト/アプリケーションとのシングルサインオンに Web サービスを使用しています。 次の例は、パスワード認証を使用して PHP から Caché ベースの Web サービス(具体的には SAMPLES ネームスペースの Web サービス)に接続する方法を示しています。
(注意: この例は、/csp/samples に対してパスワード認証が有効になっていることを前提としています。)
開発者の皆さんこんにちは!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週間です。この期間内であればアップロード後も自由に編集できます。)
これは、InterSystems FAQサイトの記事です。
[管理ポータル] > [システムオペレーション] > [ライセンス使用量] ページで表示される各項目の意味は以下のとおりです。
① 現在使用中のライセンス数:現時点のライセンスユニット使用数です。
② 最大ライセンス使用:インスタンスが起動した後、現在に至るまでで最もライセンス使用の大きかった時点の
"現在使用中のライセンス数"です。
③ 許可されたライセンス数(Cache.Key/iris.keyの値):該当システムで許可されている最大ライセンスユニット数です。
④ 現在の接続:現時点のクライアントからの接続数です。
⑤ 最大接続:インスタンスが起動した後、現在に至るまでで最も接続数の大きかった時点の"現在の接続"です。
(A) ローカル:表示しているサーバのインスタンスで消費しているライセンスの情報です。
(B) リモート:マルチサーバライセンスを使用して複数インスタンスでライセンス共有している場合の、共有している全インスタンスで消費しているライセンスの合計値の情報です。
※ライセンス共有を行うには、ライセンスサーバの設定が必要です。詳細は下記トピックをご参考になさってください。
複数インスタンスでライセンスを共有する場合に必要な設定
これは、InterSystems FAQサイトの記事です。
IRISTempデータベースのサイズを小さくする方法は2つあります。
一つは、IRISTempデータベースを再作成する方法です。
手順としては、下記を実行します。
- IRISの停止
- IRISTempデータベースファイルの削除
- IRISの起動
これにより、3.のIRIS起動時に、IRISTempデータベースが初期サイズ(1024KB)で再作成されます。
もう一つの方法は、構成パラメータの設定による方法です。
構成パラメータ「MaxIRISTempSizeAtStart」を設定することにより、IRIS起動時のIRISTempデータベースの最大サイズを設定できます。
システムは、設定後、次のIRIS起動時に、設定された値(MB)にIRISTempの切り捨てを行います。 指定した MaxIRISTempSizeAtStart よりも現在のサイズが小さい場合は、切り捨ては行われません。
また、0 を指定すると切り捨てが行われないため、サイズは変わらないまま起動します。(デフォルト)
設定は、以下メニューから行います。
管理ポータル
[システム管理]>[構成]>[追加の設定]>[開始]>"MaxIRISTempSizeAtStart"
詳細は下記ドキュメントページをご確認ください。
MaxIRISTempSizeAtStart
これは、InterSystems FAQサイトの記事です。
IRISおよびIRISforHealthのランチャーからドキュメントをポイントすると、Web上の英語ドキュメントを参照します。
以下の設定ファイルを下記のように修正することにより、ランチャーから日本語ドキュメントを参照できるようになります。
<インストールディレクトリ>\httpd\conf\httpd-doc.conf
【IRIS】
[変更前]
Redirect /csp/docbook/ http://docs.intersystems.com/iris20201/csp/docbook/
[変更後]
Redirect /csp/docbook/ https://docs.intersystems.com/iris20201/csp/docbookj/
【IRIS for Health】
[変更前]
Redirect /csp/docbook/ http://docs.intersystems.com/irisforhealth20201/csp/docbook/
[変更後]
Redirect /csp/docbook/ https://docs.intersystems.com/irisforhealth20201/csp/docbookj/
開発者の皆さんこんにちは!
第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 さんに贈られました!
🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。
これは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() を使用します。
例:
※バージョン2008.1より前では、$system.OBJ.ExportPattern() を使用します。
2. インポート方法
a. ファイルに含まれる全ルーチンをインポートする
ファイルに含まれる全ルーチンをインポートするには $system.OBJ.Load() を使用します。
例:
これはInterSystems FAQ サイトの記事です。
変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。
しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。
一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。
名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。
また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。
しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。
さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。
(例: tSC,pLengthなど)
この記事では、OData API 標準に基づいて開発された RESTful API サービスを利用するための IRIS クライアントの開発について説明します。
HTTP リクエストを作成し、JSON ペイロードの読み取りと書き込みを行い、それらを組み合わせて OData 用の汎用クライアントアダプタを構築する方法を確認するため、多数の組み込み IRIS ライブラリを説明します。 また、JSON を永続オブジェクトに逆シリアル化するための新しい JSON アダプタについても説明します。
RESTful API の操作
REST は World Wide Web の標準化に関する作業から作成された一連の設計原則です。 これらの原則はあらゆるクライアントサーバー通信に適用でき、HTTP API が RESTful であることを説明するためによく使用されます。
REST はステートレスなリクエスト、キャッシュ処理、統一した API 設計など、さまざまな原則を網羅しています。 ただし、詳細な実装については網羅していません。また、これらのギャップを埋めるための一般的な API 仕様は存在しません。
これはInterSystems FAQ サイトの記事です。
バックアップには、以下4種類の方法があります。
- 外部バックアップ
- オンラインバックアップ(コンカレントバックアップ)
- コールドバックアップ
- レガシー並行外部バックアップ
詳細は、以下ドキュメントをご参照ください。
バックアップの方法について【IRIS】
バックアップの方法について
1、2、4は、インスタンスを停止せずにバックアップが行えます(末尾の関連情報もご参照ください)。3 は、インスタンスを停止した後でバックアップを行う方法です。
またシステム構成や障害バターンを基にバックアップを設計、計画する上での注意点、自動化のサンプルやバックアップを実施する上で役立つ各種関連技術についてはInterSystems Symposia 2014 発表資料 をご参照ください(※1)。
※1:InterSystems Symposia 2014でご紹介した内容で、Cachéと記載がありますがバックアップ方法についてはIRISも同様です。
【関連情報】(コミュニティ/FAQトピックをリンクしています)
これはInterSystems FAQ サイトの記事です。
(2025/2/17更新)担当される役割や学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページ :InterSystems ラーニングパス をご利用ください(ページの使い方については、記事「学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページ」をご参照ください)。
また、現在ご覧いただいている開発者コミュニティの中では、初心者(beginner)タグ があり、下記セルフラーニング用資料/ビデオをご用意しています。ぜひご参照ください。
- 【はじめての InterSystems IRIS】セルフラーニングビデオ 索引
- 【はじめてのInterSystems IRIS】セルフラーニングビデオ:アクセス編:IRIS で作成する REST サーバの仕組み
- Python から IRIS にアクセスしてみよう!
- 【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!
- 【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開!
- ObjectScript クックブック
- 「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方などを解説しています。
セルフラーニングビデオ以外にも、過去に開催したウェビナーアーカイブビデオも公開しています👉「開発者向けウェビナー:アーカイブビデオ一覧」
ぜひご参照ください。
企業は変化の激しい業界で競争力を維持するため、イノベーションを起こす必要があります。 この製品は企業が迅速かつ安全な意思決定を行い、より正確な将来の実績を目指せるようにします。
ビジネスインテリジェンス(BI)ツールは、企業が試行錯誤に頼ることなくインテリジェントな意思決定を行うのに役立ちます。 このようなインテリジェントな決定は市場で成功するか失敗するかを決定付けます。
Microsoft Power BI は業界をリードするビジネスインテリジェンスツールの 1 つです。 Power BI では数回クリックするだけでマネージャーやアナリストが企業のデータを簡単に探索できます。 これは重要なことです。容易にデータにアクセスして視覚化できれば、それがビジネス上の意思決定に使用される可能性が高くなるからです。

FTP ファイルを Intersystems Caché からダウンロードするメソッドを以下に示します。ご質問がある場合はメッセージをお寄せください。
皆さん、こんにちは。
開発コミュニティでの検索方法について説明します。
開発コミュニティのページで検索される場合は以下の赤枠の虫眼鏡マークをクリックします。.png)
すると、以下のようにテキストボックスのみ浮かび上がりますので、検索したい文字列を入力します。
以下のように入力した文字列をタイトルに含む記事等が一覧表示されますので、見たい記事がありましたら、その記事をクリックします。.png)
無ければ、そのまま「Enter」キーを押下しますと以下のように検索画面が表示され、検索文字列がタイトルに含まれるものだけでなく本文中に含むものも一緒に表示されますので、見たい記事のタイトルをクリックします。
クラス、テーブル、グローバルとその仕組み
InterSystems IRIS を技術的知識を持つ人々に説明する際、私はいつもコアとしてマルチモデル DBMSであることから始めます。
個人的には、それが(DBMSとして)メインの長所であると考えています。 また、データが格納されるのは一度だけです。 ユーザーは単に使用するアクセス API を選択するだけです。
- データのサマリをソートしたいですか?SQL を使用してください!
- 1 つのレコードを手広く操作したいですか?オブジェクトを使用してください!
- あなたが知っているキーに対して、1 つの値にアクセスしたりセットしたいですか? グローバルを使用してください!
これは短く簡潔なメッセージで、一見すると素晴らしく聞こえます。しかし、実際には intersystems IRIS を使い始めるたユーザーには クラス、テーブル、グローバルはそれぞれどのように関連しているのだろうか? 互いにどのような存在なのだろうか? データは実際にどのように格納されているのだろうか?といった疑問が生じます。
この記事では、これらの疑問に答えながら実際の動きを説明するつもりです。
パート 1. モデルに対する偏見。
データを処理するユーザーは多くの場合、処理対象のモデルに偏見を持っています。
これはInterSystems FAQ サイトの記事です。
Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。
以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。
*実行は、%SYSネームスペースで行って下さい。*
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).AddNamespace(NSName,DBName)

