全期間

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

%SYSTEMパッケージには沢山の便利なシステムクラスがあり、Embedded Pythonでも一般クラスと同様に%SYSTEMパッケージ以下クラスを操作できます(iris.cls("クラス名").メソッド名()で呼び出せます)。

ObjectScriptでは、$SYSTEM特殊変数を利用して、%SYSTEMパッケージ以下クラスのメソッドを呼び出すことができますが、Embedded Pythonでは、iris.system を利用して実行することができます。

以下実行例をご紹介します。

現在のネームスペースを取得する

一般クラスと同じ呼び出し方の例

0 0
0 118

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

Java のガベージコレクションは、使用しなくなったメモリ上のオブジェクトを自動開放するしくみですが、InterSystems data platform(以下IRISと表記)のガベージコレクションは、意味が異なります。

IRIS では、ディスク上の大量のデータノードを 1 コマンド(killコマンド)で削除する機能があります。

通常、データ容量が増えれば、それに伴い、削除に必要な時間が増加しますが、そうすると、そのkillコマンドを発行したプロセスが、削除が終わるのを待つ時間が増加することになってしまいます。

その様な事象の発生を避けるため、IRIS では、ユーザプロセスが大量のデータを削除する kill コマンドを発行した際に、その場で削除に必要な全ての処理を行うのではなく、削除が必要な開始の場所だけを示して、次の処理に進むようになっています。

0 0
0 118
記事
· 2024年1月11日 3m read
DeepSee で有効な階層を設計

DeepSee で階層を設計する場合、子メンバーに 1 つの親しか指定できません。 子が 2 つの親に対応する場合には、信頼性のない結果が得られることになります。 類似する 2 つのメンバーが存在する場合、そのキーがそれぞれ一意になるように変更する必要があります。 これが起きる場合とそれを回避する方法について、2 つの例を見ながら説明します。

例 1

(アメリカには)Boston と言う都市がある州がたくさんあります。 私のサンプルデータでは、Boston, MA(マサチューセッツ州ボストン)と Boston, NY(ニューヨーク州ボストン)のレコードがあります。 次元は次のように定義されています。

0 0
0 117

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

%Persistent クラスに既定で生成される Extent クエリは、ID 順に結果セットを出力することを意図していませんので、これは、仕様通りの動きとなります。

並び順は、設定されているインデックスにより、変わることがあります。

0 0
0 117

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

監査ログはシステムDB内テーブル(%SYS.Audit)に記録されていますので、そのテーブルに対するクエリを実行して抽出したり、%SYS.Auditテーブルに用意されていストアドプロシージャを利用して情報を取得しファイル出力するようにプログラムを用意することもできます。

以下にご紹介する内容は「監査ログをプログラムで出力(ユーザやイベント指定など)する方法」に関連した内容で、監査ログのファイル出力を管理ポータルの機能を利用した例とプログラムを利用した例でご紹介します。

1 0
0 116
記事
· 2023年9月28日 22m read
OpenAPI Suite - パート 1

コミュニティの皆さん、こんにちは。

私が作成した OpenAPI-Suite という最新のパッケージをご紹介します。これは、OpenAPI 仕様バージョン 3.0 から ObjectScript コードを生成するツールセットです。 簡単に言うと、これらのパッケージでは以下を行うことができます。

  • サーバーサイドクラスの生成。 ^%REST による生成コードに非常に似ていますが、バージョン 3.0 がサポートされていることに付加価値があります。
  • HTTP クライアントクラスの生成。
  • クライアントプロダクション(ビジネスサービス、ビジネスオペレーション、ビジネスプロセス、Ens.Request、Ens.Response)クラスの生成。
  • コードの生成とダウンロードまたはサーバーでの直接コンパイルを行う Web インターフェース。
  • バージョン 1.x からバージョン 3.0 への仕様の変換。
  • 0 0
    0 116

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

    メモ:xxx にはネームスペース名が入ります。

    xxxENSTEMPは、プロダクション実行中に作成される一時データが保存されるデータベースです。
    ^IRIS.Temp.Ens* のグローバルがこのデータベースにマッピングされています。なお、xxxENSTEMPはジャーナルにかかれない設定のデータベースです。

    xxxSECONDARYは、プロダクションで使用される資格情報を保存するデータベースです。
    ^Ens.SecondaryData* のグローバルがこのデータベースにマッピングされています。

    注意:InterSystems IRIS for Health、HealthShare ではこれらデータベースは作成されません

    詳細は以下ドキュメントをご覧下さい。

    0 0
    0 116

    *この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

    昨年、SAM(System Alerting and Monitoring)をリリースしました。
    これはInterSystems IRISシステムを監視するためのツールで、InterSystems IRISをお使いの方でしたら、どなたでも利用できます。

    https://www.youtube.com/embed/OOnroi6AGjE
    [これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

    Dockerやdocker-composeを使用し、Prometheus、Grafanaといったオープンソースの監視用ツールを組み合わせて簡単にインストールや設定ができるようにしています。

    0 0
    0 116

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

    ^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。

    例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。
    ※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。

    1 0
    0 115

    あるお客様の問題から、この短い記事を書くことにしました。 お客様はEnsembleを使用して、多数のシステムを統合しています。一部のシステムではプレーンファイルのみが使用されています。

    そのため、ターゲットファイルへの書き込みには、自然とFile Outbound Adapter を選択しました。 数年もの間すべてが順調に稼働していましたが、最近になって、ファイルに書き込まれるデータが数十メガバイトという大きなサイズに達するようになり問題が出てきました。オペレーションが完了するまでに約30分かかるようになり、プロセス内の後続の処理を待たせなければならないタイミングの問題が発生し始めたのです。当然、連携先のシステムはそれほど長く待つことを良しとしません。

    お客様のコードは、以下の疑似コードのようなものでした。

    1 0
    0 115

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

    ユーザに権限を与えたい場合、「GRANT」コマンドや「GrantPrivilegeメソッド」を使用しますが、ロールに対しても権限を与えることができます。

    例えば、特定スキーマにのみ何でもできるロールを作成し、それを特定のユーザに割り当てるようなことが可能となります。

    こちらの記事では、その方法をご紹介します。


    (1) GrantPrivilegeメソッドを使用して「スキーマXXX に何でもできるロール」を作成し、
    (2) 該当ユーザに (1) のロールを割り当てる



    ★GRANT文を使う場合

    0 0
    0 114

    皆さん、こんにちは。
    開発コミュニティでの検索方法について説明します。

    開発コミュニティのページで検索される場合は以下の赤枠の虫眼鏡マークをクリックします。

    すると、以下のようにテキストボックスのみ浮かび上がりますので、検索したい文字列を入力します。

    0 0
    0 114

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

    管理ポータルの監査メニューを使用する場合、ユーザに監査データベースの閲覧のみを許可するということはできません。
    管理ポータルから監査データベースを閲覧する場合は、そのユーザに、
    ・%Admin_Secure:U(監査以外にもセキュリティ関連の操作が可能となる)
    ・%DB_IRISAUDIT:RW(監査データベースへの読み込み/書き込み権限)
    等のリソースへの権限が必要になりますが、これを与えることにより、監査データベースの閲覧以外の操作も可能となってしまいます。

    監査データベースの閲覧のみを許可したい場合には、管理ポータルの監査メニューは使用せず、外部ツール等からSQLで監査テーブルを参照するようにします。
    このとき、ユーザに必要な権限は以下の通りです。※他の権限は与えないようにします。
    ・IRISAUDITデータベースへのRW権限 ⇒ %DB_IRISAUDITロールの付与
    ・%SYS.AuditテーブルへのSelect権限

    0 0
    0 113

    Apache Zeppelin は以下を行えるようにする多目的ノートブックです。

    • データの取り込み
    • データ検出
    • データ分析
    • データの可視化とコラボレーション

    Apache Zeppelin インタープリターの概念に基づき、あらゆる言語/データ処理バックエンドを Zeppelin にプラグインすることができます。 現在、Apache Zeppelin は、Apache Spark、Apache Flink、Python、R、JDBC、Markcown、およびシェルなど、多くのインタープリターに対応しています。

    データの洞察を得るための安全な環境を得られます。 Zeppelin のハイライト機能は、JDBC と Spark IRIS のネイティブコネクタを使用して利用することができます。

    これは、あなたを軌道に乗せるためのクイックスタートガイドです。

    0 0
    0 113

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

    現在実行中のコードの位置は、$STACK関数を使用して $STACK($STACK,"PLACE") で取得できます。

    サンプルコードは以下ドキュメントをご参照ください。

    現在実行中のコードの位置を取得する方法について【IRIS】
    現在実行中のコードの位置を取得する方法について

    0 0
    0 113

    背景

    先日、ObjectScript の永続(Persistent)クラスのプロパティを編集していたところ、ストレージ定義が最後の変更を反映するように更新されていないことに気づきました。

    この場合、クラス定義に不要となったプロパティを削除した上で保存し、再コンパイルしましたが、それでもストレージ定義に残ったままになっていました。

    それでも焦ることはありませんでした。 ストレージ定義がコンパイル時に自動生成されるのであれば、それを削除して、クラスを再コンパイルすればよいからです。 もちろん、この後、削除されたプロパティはストレージ定義に表示されなくなりました。

    問題解決... ですよね?

    (ブブー、間違いです)

    後になって、このアプローチはクラスにデータが保存されていないときに機能することがわかりました。 ただし、既存のデータがあるのであれば、重大なデータ参照の問題が発生する可能性があります。

    そもそもストレージ定義とは?

    0 0
    0 113
    記事
    · 2024年6月6日 2m read
    JSON_Table(SQL)の利用

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

    IRIS/IRIS for Health2024.1以降のバージョンのSQLで、JSON_TABLE関数がサポートされています。
    【ドキュメント】JSON_TABLE(SQL)

    これを使用することにより、JSON形式データを表形式で取得することが出来ます。

    【例】郵便番号情報を外部から取得し、表形式にマッピングする。
    (取得データ(JSON))

    1 0
    0 111

     

    人工知能は、命令によってテキストから画像を生成したり、単純な指示によって物語を差作成したりすることだけに限られていません。

    多様な写真を作成したり、既存の写真に特殊な背景を含めたりすることもできます。

    また、話者の言語や速度に関係なく、音声のトランスクリプションを取得することも可能です。

    では、ファイル管理の仕組みを調べてみましょう。

    0 0
    0 110

    警告:"NOT %INLIST" を使用した SQL クエリが結果を返さない

    インターシステムズは、一部の SQL クエリが不正な結果を返す原因となる 3 つ
    の不具合を修正しました。 影響を受けるクエリの詳細については、以下を参照し
    てください。

    この問題は、以下の製品のリストにあるバージョンに存在します:

    • InterSystems IRIS® data platform
    • InterSystems IRIS for Health™
    • HealthShare® Health Connect

    同様に上記製品をベースとしたその他のインターシステムズ製品

    影響を受けるバージョン:

    0 0
    0 108

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

    このメッセージが出力される要因は以下の2つになります。

    1. 同じデータに対して適切に排他を行わずに、別々のプロセスから更新が行われている
    2. ロールバックが発生している

    詳細は以下の通りです。 メッセージログ/コンソールログに、以下のようなメッセージがある場合、これはロールバック処理にて出力されています。
    ※バージョンによってメッセージは多少異なります。

    1 0
    0 108

    最後にCSP機能の中でReactでうまく置き換えできなかった処理について紹介します。

    該当する処理は、サーバー上の商品データに含まれるその商品の画像データ(GIF形式)を取得して、ブラウザにイメージとして描画させるものです。

    CSPにはStreamServer.clsというサーバー側で動作する機能が用意されています。

    この機能を使ってデータベース上に格納されているストリームデータをHTML IMGタグで処理できる形式に変換してくれます。

    StreamServer機能を使って画像を表示する処理

    Reactで同様の機能を実現する方法が見つからなかったため(そもそもReactはサーバーサイドではなくクライアント上の技術なので)、データベース内に格納されているイメージを取得するのではなく、静的なイメージファイルをウェブサーバーが参照可能な場所に置くことで解決しました。

    0 0
    0 107

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

    サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。

    これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。

    1 0
    0 107

    大きなサイズのデータを持つフィールドに対してインデックスを作成すると、<SUBSCRIPT>エラーとなることがあります。

    これは、グローバルの添え字(サブスクリプト)のサイズには制限があり、制限を超えるとエラーとなるためです。

    例えば、以下のようなインデックスの場合、

    ^Sample.PersonI("NameIdx"," xxx...xxx",1)       =       ""

    グローバル名+サブスクリプト部(=の左側)が、エンコード文字数で最長 511 文字を超えるとエラーとなります(日本語の場合はもっと小さな文字数です)。

    ※ご参考:グローバル参照の最大長

    0 0
    0 106

    開発者コミュニティの皆さん
    こんにちは。

    インターシステムズの認定プログラムに合格された方の中には、プロフィールのアバターに緑色の目印を付けたい方や、開発者コミュニティのプロフィールに全ての認定証を掲載し、他の人に知ってもらいたいと考えている方もいらっしゃると思います。

    そこで、DC プロフィールに認定証を追加するために実行する3 つの簡単な手順をステップを紹介します。

    1️⃣ 開発者コミュニティのプロファイルに移動します。

    2️⃣ InterSystems certifications (インターシステムズ認証)セクションに移動します。

    3️⃣ Load my certification(s) ボタンをクリックします。

    以上です!

    0 0
    0 105
    記事
    · 2021年7月5日 1m read
    データベースの暗号化の仕組み

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

    バージョン5.1以降、データベース単位に暗号化する仕組みが用意されています。

    InterSystems data platform のデータベース暗号化は物理ブロックレベルの暗号化ですので、暗号化のオーバヘッドが非常に少なく、性能への影響が極小化されており、暗号化されている項目のインデックス化に制限等がありません。

    関連記事もご参照ください。

    データベースの暗号化手順について

    0 0
    0 105

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

    この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。

    また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。

    0 0
    0 104

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

    $ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。

    従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。

    0 0
    0 104