#InterSystems IRIS

1 フォロワー · 1.3K 投稿

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

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

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

質問 Akio Hashimoto · 2月 3, 2022

皆さん
こんにちは。

最近ではVSCodeでIRISのプログラミングを行っている方も多いと思います。
クラスメソッドなんかをコーディングし、実行してエラーとなった場合に、以下のようなエラーメッセージが取得できると思います。

> <UNDEFINED> zNewMethod+32^ClassName.1

これは、NewMethodというメソッド内の32行目でUNDEFINEDが発生した事を指していますが、これは実際にはClassName.clsのNewMethod内の32行目ではなく、ClassName.1というルーチン(int)のzNewMethodでの32行目を示しています。
.clsから生成されるintは空行が削られたり、複数ルーチンに分割されたりしますので、実際のClassName.clsを開いてNewMethodの32行目を見ても実際のエラー箇所では無い場合があります。
VSCodeで開発をしていると、これが結構面倒なのですが、エラーメッセージに出力される行番号を .clsや、.mac 上での行番号に変える方法があれば教えて頂きたく、よろしくお願い致します。

2
0 569
記事 Toshihiko Minamoto · 2月 16, 2022 8m read

この記事では、InterSystems IRIS プラットフォームを使用して基本的な IMAP クライアントを記述する方法を説明します。 はじめに IMAP の概要を確認してから、本題の IMAP コマンドとクライアント実装について説明します。 最後に、IRIS 相互運用性アプリケーションでこの IMAP クライアントを簡単に使用します。

この記事では IMAP を詳しく説明していません。 詳細な情報については、この記事のリソースをご覧ください。

IMAP の概要

ユーザーは IMAP(Internet Message Access Protocol)を使ってメールを取得できます。 IMAP は 1980 年代に Marc Crispin によって提唱されました。以来、このプロトコルは RFC 3501 として公開され、改訂されています。 この記事の執筆時点での最新バージョンは、IMAP4rev1 です。

このプロトコルは取得のみを目的に設計されていることに十分に注意してください。 メールを送信するのであれば、SMTP(Simple Mail Transfer Protocol)という別のプロトコルを使用する必要があります。 また、メールの取得には、IMAP よりも古い POP3(Post Office Protocol version 3)があります。

0
0 398
InterSystems公式 Toshihiko Minamoto · 2月 15, 2022

更新: 開発者プレビュー・リリース3が公開されました

これはインターシステムズにとって初めての開発者プレビュー・リリースであるため、これらがどのようなものであるかを説明します。 開発者プレビュー・プログラムは、従来のIRISプレビュー・プログラムを強化したもので、約2週間ごとにリリースされ、準備が整うと機能が追加されます。 これにより、機能や機能拡張に関するフィードバックを得ることができます。 2022.1に向けた機能拡張のリストは以下の通りです。これらは最初の開発者プレビューには含まれていません。 これらは今後数週間のうちに公開される予定です。

一般公開に先立ち、皆様からのご意見をお待ちしています。より良い製品を一緒に作っていくために、開発者コミュニティを通じてフィードバックを共有してください。

InterSystems IRIS Data Platform 2022.1 は、エクステンデッド・メンテナンス (EM) リリースです。2022.1 には、前回の EM リリースである 2021.1 以降、継続的デリバリー (CD) リリースである 2021.2 で追加された多くの重要な新機能や拡張機能が追加されています。これらの機能強化の概要については、2021.2 のリリース・ノートをご参照ください。

0
0 211
記事 Megumi Kakechi · 2月 13, 2022 2m read

これは、InterSystems FAQサイトの記事です。
各プロセスが消費しているメモリの内容は、Windowsリソースモニタの項目のワーキングセット、共有可能、プライベートで確認できます。

これらの内容は以下になります。

ワーキングセット プロセスが使用する物理メモリです。
         ワーキングセット(プライベート)とワーキングセット(共有可能)との合計です。

共有可能               プロセスが使用する物理メモリ内で他のプロセスと共有可能なメモリです。

プライベート       プロセスが使用する物理メモリ内で他のプロセスと共有不可能なメモリです。


例えば、以下のようにメモリを使用しているプロセスがある場合、ほとんどは共有メモリになっているといえます。

ワーキングセット 5,341,472 = 共有可能 5,328,664 + プライベート12,808 (kb)


プロセスがアクセスする共有メモリは、データベースキャッシュおよびルーチンキャッシュで使用されているメモリ領域になります。

プロセスが大量にグローバルへのアクセスを行うと、データベースキャッシュへのアクセス量も多くなり、メモリ使用量の共有可能の数値が大きくなります。

0
0 329
記事 Toshihiko Minamoto · 2月 9, 2022 2m read

これは、前回の「DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS」のフォローアップです。

すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。
作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。
オールインワンのバンドルパッケージであるため、 コンパクトになっています。

0
0 304
InterSystems公式 Toshihiko Minamoto · 2月 9, 2022

インターシステムズは、2018年からInterSystems IRISで2ストリームのリリースサイクルを採用しています(開始時のお知らせをご覧ください)。  

  • Continuous delivery (CD) リリース —このリリースは、新機能を迅速に提供し、継続的に更新され、新機能を直ちに利用するアプリケーションの開発、およびデプロイに最適です。
  • Extended maintenance (EM) リリース — このリリースは、CDリリースよりも頻度は低いですが、メンテナンス・リリースの安定性を提供します。新機能をいち早く利用することよりも、メンテナンスリリースでの修正が容易であることが重要な大規模エンタープライズアプリケーションに最適です。

このアプローチについては非常に好意的なフィードバックをいただいており、人々は「鈍行列車(slow train)」と「快速列車(fast train)」という言葉を使うようになりました。 EMリリースは、大規模なオンプレミスの顧客基盤をs持つお客様やパートナーに好まれる「鈍行列車」です。 CDリリースは、最新かつ最高の機能を求めるお客様やパートナーに好まれる「快速列車」です。

他の多くのソフトウェアベンダーは、この2つのアプローチを採用しており、通常、「鈍行列車」をLTS(Long Term Support)と呼んでいます。

0
0 313
お知らせ Mihoko Iijima · 1月 28, 2022

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

次の InterSystems プログラミングコンテストのお題が発表されました!次は、Python です!

🏆 InterSystems Python Contest 🏆

応募期間: 2022年2月7日~20日

💰 賞金総額: $10K💰 + さらに賞品を用意予定です!


1
0 293
お知らせ Mihoko Iijima · 2月 7, 2022

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

InterSystems Python コンテスト 2022 のテクノロジーボーナスについてご案内します。

以下のテクノロジを使いコンテストにご応募いただくと、ボーナス点を獲得できます!

  • Embedded Python - 4
  • Python Native API  - 3
  • Python Pex - 3
  • ObjectScript を使用しない - 5
  • アンケート への回答- 2
  • Docker コンテナの使用 - 2 
  • ZPM パッケージによるデプロイ - 2
  • オンラインデモ公開 - 2
  • コミュニティに記事を投稿する - 2
  • コミュニティに2つ目の記事を投稿する - 1
  • YouTubeでビデオを公開する - 3

詳細は以下の通りです。

0
0 136
InterSystems公式 Maki Hashizawa · 2月 7, 2022

開発者のみなさん、こんにちは。

インターシステムズジャパンは、3/8(火)~ 3/9日(水)に、オンラインカンファレンス「InterSystems Japan Virtual Summit 2022」を開催致します。

"Innovation in Data - データによるデジタル変革の推進" をテーマに、DX推進に不可欠な健全なデータの提供とデータプラットフォームの最新情報をお届け致します。ご参加をお待ちしております!

0
0 266
記事 Mihoko Iijima · 2月 4, 2022 7m read

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

ドキュメントをみながら IRIS 2021.2 に追加された Embedded Python を試してみました!

IRIS にログインしてるのに Pythonシェルに切り替えできて Python のコードが書けたり、Python で import iris するだけで SQL を実行できたりグローバルを操作できるので、おぉ!✨という感じです。

ぜひ、みなさんも体感してみてください!

では早速。

まず、IRISにログインします。Windows ならターミナルを開きます。Windows 以外は以下実行します。

IRIS のインストール方法を確認されたい方は、【はじめての InterSystems IRIS】セルフラーニングビデオ:基本その1:InterSystems IRIS Community Edition をインストールしてみよう!をチェックしてみてください!

iris session iris

iris session の引数はインストール時指定のインスタンス名(構成名)です。インスタンス名が不明な場合は iris list を打つと確認できます。以下の例の場合は IRIS がインスタンス名です。

0
1 874
記事 Toshihiko Minamoto · 2月 3, 2022 12m read

キーワード: Pandasデータフレーム、IRIS、Python、JDBS

目的

PandasデータフレームはEDA(探索的データ分析)に一般的に使用されるツールです。 MLタスクは通常、データをもう少し理解することから始まります。 先週、私はKaggleにあるこちらのCovid19データセットを試していました。 基本的に、このデータは1925件の遭遇の行と231列で構成されており、タスクは、患者(1つ以上の遭遇レコードにリンク)がICUに入室するかどうかを予測するものです。 つまりこれは、いつものようにpandas.DataFrameを使用して、まず簡単にデータを確認する、通常の分類タスクです。  

現在では、IRIS IntegratedMLが提供されています。これには強力な「AutoML」のオプションに関する洗練されたSQLラッパーがあるため、従来型のMLアルゴリズムに対抗して、多様なデータフレームのステージをIRISデータベーステーブルに保存してから、IntegratedMLを実行する方法を頻繁に採用しています。  ただし、dataframe.to_sql()はまだIRISで機能しないため、実際には、ほとんどの時間を他のデータ保存手段をいじることに充てていました。

0
0 390
質問 Akio Hashimoto · 2月 1, 2022

Windows端末でCachéやIRIS等を開発環境として使っています。

Windows11での動作状況について、インターシステムズからの正式な対応はまだのようですので、

下記のバージョンで既にインストールをされている方が居られれば、状況などを教えて頂けないでしょうか。

特に問題無く動いていますでしょうか?

・Caché 2017.1

・IRIS for Health 2019.1

この他のバージョンについても情報が御座いましたらよろしくお願い致します。

2
0 442
質問 Yuji Ohata · 1月 26, 2022

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

TIMESTAMP型のデータを持つテーブルの扱いについて教えてください。

現在Ens_Util.Logを参照するシステムを開発しようとしております。
このテーブルの中にTimeLoggedというTIMESTAMP型のデータがあるのですが、
それをSELECTした際、CASTの有無で表示されるデータに差異が出ます。

SELECT
    DATE(TimeLogged),
    CAST(TimeLogged AS TIME),
    TimeLogged
FROM
    Ens_Util.Log

Expression_1|Expression_2|TimeLogged         |
------------+------------+-------------------+
  2022-01-25|    15:00:01|2022-01-26 00:00:01|
  2022-01-25|    15:00:01|2022-01-26 00:00:01|
  2022-01-25|    15:00:01|2022-01-26 00:00:01|

確認する限り9時間の差があるため、UTC時刻との時差が出ているものと考えていますが、ここで何点か疑問があります。

8
0 350
記事 Minoru Horita · 2月 2, 2022 6m read

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

最近リリースされた InterSystems IRIS 2021.2 の目玉機能のひとつが Embedded Pythonです。Embedded Pythonは、PythonのランタイムをIRISに組み込むことによって、IRISのメソッドをPythonで記述したり、PythonのコードからIRISのクラスにアクセスしたりなどなど、IRISのObjectScriptとPythonとで相互に呼び出しを行なえる機能です。

しかも、Pythonのランタイムを埋め込んでいるため、ネットワークのオーバーヘッドがなく、パフォーマンスへの影響は最小限です。

IRISのプログラマの方には、Pythonの豊富なライブラリをストレスなく利用して頂けます。

Pythonのプログラマの方には、ObjectScriptを学ぶことなく、IRISの高速なデータベースやインターオペラビリティ機能などをストレスなく活用して頂けます。

今回の記事では、Embedded Pythonの機能をほんの一部だけ紹介します。

メソッドをPythonで書く

次のコードは、日付を表す文字列を2つ渡して、2つの日付の間の日数を返すメソッドです。

0
0 1337
記事 Toshihiko Minamoto · 2月 1, 2022 5m read
これはIRIS 2020.2で動作するコーディングの例です
最新バージョンとは同期していません。
また、InterSystemsのサポートによるサービスはありません

動作中のデモを確認できるデモビデオを以下で公開しています。https://youtu.be/dSV-0RJ5Olg

 

皆さんこんにちは
完全に新しいIRISイメージと**たった4行**のDockerコマンドを使って実行するイメージを使ってマイクロサービスのデモを行いましょう。 
2020年6月1日 - rcc

すべてのパーツを1つのコンテナイメージにまとめたコンパクトなオールインワンバージョンが公開されました。
詳細はこちら: IRIS-NativeAPI-Nodejs-compact
2020年5月24日 - rcc

Dockerを使った簡易インストールを追加しました。コンテキストを参照
2020年5月25日 - rcc

Linux & Windowsに最適な検証済みの強化スクリプトはこちら

2020年5月26日 - rcc

このデモは、Caché用にすでに存在するNode.jsに基づくWebSocketクライアントを再設計したものです。 主に以下のような変更点があります。

  • 新しいIRIS Native API for Node.jsの使用。特にグローバル配列を操作する場合
  • 直接トリガーされたクライアントからサーバー設計への変更
  • マイクロサービス/マイクロサーバーの例として、結果を別のdockerイメージに配置
  • マイクロサービスの実行を制御するための単純なインターフェースをIRISに追加
0
0 361
InterSystems公式 Yoichi Miyashita · 1月 31, 2022

インターシステムズは、InterSystems IRIS data platform、InterSystems IRIS for Health、HealthShare Health Connect の バージョン 2021.2 をリリースしました。

【新機能のご紹介】
InterSystems IRIS data platform 2021.2 には、以下の新機能が含まれます。

0
0 439
記事 Megumi Kakechi · 1月 30, 2022 1m read

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

TRY-CATCHで行うことが可能です。
以下のように行ってください。

 #dim ex As %Exception.AbstractException
 TRY {
    "<何かエラーを発生させる処理>"
  }
  CATCH ex {
     do ex.Log()
  }


^%ETNを使用する場合は、^%ETNを呼び出す際にBACKエントリ(BACK^%ETN)から呼び出してください。


あわせて、以下の関連記事も是非ご覧ください。

アプリケーションエラー(^ERRORS)をコマンドで取得する方法
【FAQ】アプリケーションから明示的にエラー詳細情報をログ出力する方法を教えてください。

0
1 394
記事 Toshihiko Minamoto · 1月 27, 2022 11m read

はじめに

バージョン2019.2より、InterSystems IRISは、高性能データアクセス手法としてPython用のネイティブAPIを提供してきました。 ネイティブAPIを使用すると、ネイティブのIRISデータ構造と直接対話することができます。

0
0 542
記事 Toshihiko Minamoto · 1月 25, 2022 9m read

キーワード: PyODBC、unixODBC、IRIS、IntegratedML、Jupyterノートブック、Python 3

 

目的

数か月前、私は「IRISデータベースへのPython JDBC接続」という簡易メモを書きました。以来、PCの奥深くに埋められたスクラッチパッドよりも、その記事を頻繁に参照しています。 そこで今回は、もう一つの簡易メモで「IRISデータベースへのPython ODBC接続」を作成する方法を説明します。

ODBCとPyODCBをWindowsクライアントでセットアップするのは非常に簡単なようですが、Linux/Unix系サーバーでunixODBCとPyODBCクライアントをセットアップする際には毎回、どこかで躓いてしまいます。

バニラLinuxクライアントで、IRISをインストールせずに、リモートIRISサーバーに対してPyODBC/unixODBCの配管をうまく行うための単純で一貫したアプローチがあるのでしょうか。

 

範囲

最近、Linux Docker環境のJupyterノートブック内でゼロからPyODBCデモを機能させるようにすることに少しばかり奮闘したことがありました。 そこで、少し冗長的ではありますが、後で簡単に参照できるように、これをメモに残しておくことにしました。  

範囲内 

このメモでは、以下のコンポーネントに触れます。

0
0 1240
お知らせ Mihoko Iijima · 1月 17, 2022

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

InterSystems データセットコンテスト の投票結果が発表されました!この記事ではコンテスト受賞者を発表します!

受賞された開発者の皆さん、👏おめでとうございます!🎊

0
0 132
記事 Megumi Kakechi · 1月 12, 2022 5m read

これは、InterSystems FAQサイトの記事です。
ミラージャーナルファイルの削除(パージ)のタイミングは以下のようになります。

・プライマリ・フェイルオーバー・メンバ

 以下の期限のうち長い方に該当するもの
 -ローカルジャーナルファイルの削除条件が満たされたとき ("ジャーナル設定の構成" を参照)  
 -バックアップメンバとすべての非同期メンバに受信されたとき
  ただし、非同期メンバが14日間(既定値)を経過してもジャーナルファイルを受信しない場合は、そのジャーナルファイルは削除対象になります。
  「既定の14日間」は、以下のコマンドで設定が可能になります。
  この保持期間を過ぎると、ジャーナルが削除されてしまいその非同期メンバでは同期が取れなくなるのでご注意ください。

%SYS>write ##class(SYS.Mirror).
0
0 327
お知らせ Mihoko Iijima · 1月 10, 2022

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

今週から データセットコンテスト の投票が始まります!

InterSystems IRIS を使い開発されたベストソリューションにぜひ、投票をお願いします!

🔥 投票はこちらから! 🔥

投票方法については、以下ご参照ください。

0
0 105
記事 Toshihiko Minamoto · 1月 6, 2022 9m read

キーワード: Python、JDBC、SQL、IRIS、Jupyterノートブック、Pandas、Numpy、および機械学習 

1. 目的

これは、デモの目的で、Jupyterノートブック内でPython 3によってIRIS JDBCドライバーを呼び出し、SQL構文でIRISデータベースインスタンスにデータを読み書きする、5分程度の簡単なメモです。 

昨年、私はCacheデータベースへのPythonバインディング(セクション4.7)について簡単に触れました。 そこで、Pythonを使ってIRISデータベースに接続し、そのデータをPandasデータフレームとNumPy配列に読み込んで通常の分析を行ってから、事前処理済みまたは正規化されたデータをML/DLパイプラインに通すためにIRISに書き込む作業においてのオプションと議論について要約しましょう。

すぐに思い浮かぶ簡単なオプションがいくつかあります。

  1.    ODBC: Python 3とネイティブSQLを使ったPyODBCを使ってはどうでしょうか?
  2.    JDBC: Python 3とネイティブSQLを使ったJayDeBeApiはどうでしょうか?
  3.    Spark: PySparkとSQLを使ったら?
  4.    IRIS用PythonネイティブAPI: 前に使用したCache用Pythonバイディングを拡張してみたらどうでしょうか?
0
0 1077
記事 Hiroshi Sato · 12月 28, 2021 2m read

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

コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。


コンパイルフラグについて【IRIS】

コンパイルフラグについて

なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。

  • スタジオは、[ツール] > [オプション] > [コンパイラ] > [フラグと最適化]

     

  • VSCodeは、[View] > [Command Palette...] 


ターミナルでコンパイルを実行するときは $system.OBJ.CompileAll() などのシステムユーティリティが利用できます。
コンパイルフラグを引数に指定しない場合、デフォルトのコンパイルフラグが利用されます。デフォルトのフラグは $system.OBJ.ShowFlags() で確認できます。

USER>do $system.OBJ.ShowFlags()
    b - Include sub classes.
    c - Compile.
0
0 902
記事 Hiroshi Sato · 12月 28, 2021 1m read

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

データ項目の値が”#Deleted"と表示される場合、MS Accessの設定でこの問題を回避することができます(MS Access2016以降)。

MS Accessのオプションより、「大きい数値(BigInt)データ型をサポート」にチェックを入れます。

設定後、リンクテーブルを一度閉じて、リンクの更新を行います。

0
0 9867
記事 Tomoko Furuzono · 12月 26, 2021 1m read

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

MM/DD/YY-hh:mm:ss:fff ( ) 0 [Utility.Event] Purging old application errors

 
こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。
また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。
 

実際にアプリケーションエラーがある場合は、管理ポータルの [システムオペレーション] > [システムログ] > [アプリケーションエラーログ] にて、詳細を確認できます。
※このエラーログの内容は、各ネームスペースの ^ERRORS グローバルに格納されているものです。

 

0
0 299
記事 Tomoko Furuzono · 12月 26, 2021 1m read

これは、InterSystems FAQサイトの記事です。
$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。 

 $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)


上記出力結果は ddddd,sssss.fff の形式で出力されます。

    ddddd:$HOROLOGの日付と同じ形式
 sssss:現在の日付の午前 0 時からの経過秒数を示す整数
 fff :秒の小数部を示す可変桁数

※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。 

SAMPLES>write $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)," - ", $horolog,!
63895,64252.66 - 63895,64252
SAMPLES>write $ZDATETIME($SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP),8)
20151209 17:45:56
SAMPLES>write $ZDATETIME($ZTIMESTAMP,8)
20151209 08:46:05
SAMPLES>
0
0 332
記事 Hiroshi Sato · 12月 21, 2021 1m read

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

監査ログをプログラミングで出力するために、監査ログの一覧を取得する%SYS.Audit クラスのListクエリを利用することができます。


サンプルコードは以下のようになります。

 Set##class
0
0 281
記事 Hiroshi Sato · 12月 20, 2021 1m read

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

CSPアプリケーションでは、リクエスト処理時間がサーバー応答タイムアウト値(CSPゲートウェイ管理ページで設定、既定値60 sec)を経過すると、CSPゲートウェイからクライアントブラウザにタイムアウトを通知し、処理を続けているデータプラットフォームサーバプロセスにエラーを発生させます。

エラーが発生している処理を確認して頂き、処理遅延の改善、例えばタイムアウトが発生しないように処理内容を見直して応答時間を短くすることや必要に応じてサーバ応答タイムアウト値を大きくすることで対処可能です。

0
0 519