#InterSystems IRIS

1 フォロワー · 1.3K 投稿

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

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

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

記事 Tomohiro Iwamoto · 10月 22, 2020 12m read

リモートや在宅での勤務が一般化しつつあります。

そのため、今までの集中型、オンサイトの開発体制を見直し、分散型の開発体制への移行を進めておられるユーザさんも多いのではないかと思います。

VSCodeを使用したIRISアプリケーションの開発が、コミュニティーを中心に広まり始めて久しいですが、Gitとの相性が良いこの開発ツールが今後さらに浸透していくことは間違いありません。あちらこちらで、その使いまわし方が語られていますが、ここでは、ソースコントロールとの関連を中心にご紹介したいと思います。

ObjectScript Extensionの使い方の基本については、こちらこちらをご覧ください。

 VSCode InterSystems ObjectScript Extensionのプロダクションリリース(V1.0.x)の配布が始まりました。  

これに合わせて、今までのコミュニティーサポートに加え、InterSystemsによる公式サポートもアナウンスされています。よりいっそう安心してご利用いただけるようになりました。


目的

メインの開発ツールとしてVSCode+ObjectScript Extensionを使用している環境でのソースコード管理について、その流れを解説します。

0
1 3298
記事 Toshihiko Minamoto · 10月 19, 2020 5m read

SQL パフォーマンスリソース

SQL のパフォーマンスについて語るとき、最も重要なトピックとして取り上げられるのが「Indices」、「TuneTable」、「Show Plan」の 3 つです。  添付の PDF にはこれらのトピックに関する過去のプレゼン資料が含まれていますので、それぞれの基礎を一度に確認していただけます。  当社のドキュメンテーションでは、これらのトピックの詳細に加え、SQL パフォーマンスの他のトピックについてもカバーしておりますので、下のリンクからお読みください。  eラーニングをご利用いただくと、これらのトピックをもっと深く理解していただけます。  また、開発者コミュニティによる記事の中にも SQL パフォーマンスについて書かれたものが複数ありますので、関連するリンクを下に記載しております。

下に記載する情報には同じ内容が多く含まれています。  SQL パフォーマンスにおける最も重要な要素を以下に紹介します。

  • 利用可能なインデックスの種類
  • あるインデックスの種類を他の種類の代わりに使用する
  • TuneTable がテーブルに集める情報とそれが Optimizer に対して意味する内容
  • Show Plan を読んでクエリの善し悪しを深く理解する方法
  • 0
    0 260
    記事 Hiroshi Sato · 10月 19, 2020 3m read

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

    2つのステップにて作業します。

    クラス定義の移行

    クラス定義を別システムへ移行するため、XML形式またはUDL形式(拡張子.cls)のファイルにエクスポートします。

    スタジオでのエクスポート手順は以下の通りです。

    [ツール] > [エクスポート]

    > [追加]ボタンで移行したいクラスを複数選択

    > [ローカルファイルにエクスポート]にチェック

    > ファイルの種類がXMLであることを確認し、ファイル名を入力し、[OK]

    この後、別システム上のスタジオで、エクスポートしたXML、UDLファイルをインポートします。

    この手順で、クラス定義は移行できます。

    スタジオでのインポート手順は以下の通りです。

    [ツール] > [ローカルからインポート]

    > 上記手順で出力したXML、UDLファイルを指定します。  

    データの移行

    次に実際のデータを移行します。
    オブジェクトデータは既定では、以下の命名規則のグローバル変数内に格納されています。
    データ   :^クラス名D
    インデックス:^クラス名I
    ストリーム :^クラス名S
    例)User.testクラスのデータは以下の3つのグローバルに格納されます。
    ^User.testD, ^User.testI, ^User.testS

    これらのうち存在するグローバル変数をすべて、システム管理ポータル(Caché5.

    0
    0 394
    記事 Mihoko Iijima · 10月 15, 2020 5m read

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

    DATE 型は InterSystems 製品のデータ型の %Date に、TIME 型は %Time に対応しています。

    %Date は内部日付(特殊変数 $Horolog のカンマ区切り1番目)、%Time は内部時刻($Horolog のカンマ区切り2番目)を登録するタイプであるため、サーバ側ロジックでは表示モードを切り替えない限り、内部(論理)形式の値が使用されます。
    サーバ側ロジックで内部日付・時刻の表示形式を変更する方法は、操作方法により異なります。

    以降の実行例では、Sample.Person テーブルを使用して解説します。
    (コマンド実行例は SELECT 文で記載していますが、更新文に対しても同様に記述できます。)

    IRIS/IRIS for Health でお試しいただく場合は、ドキュメント(InterSystems IRIS で使用するサンプルのダウンロード)から、
    または 関連記事(サンプル(Sample.Person)のクラス定義ダウンロードとサンプルデータの作成について)から、
    Sample.Person クラスのインポートとサンプルデータの作成を行ってからお試しください。

    Caché/Ensembleでお試しいただく場合は、SAMPLESネームスペースのSample.Personをご利用ください。


    0
    0 897
    記事 Hiroshi Sato · 10月 15, 2020 1m read

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

    $ZHorologを使用します。

    $ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。

    2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。

    詳しくは以下、ドキュメントをご参照ください。


    $ZHorologについて【IRIS】


    $ZHorologについて

    この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。

    詳しくは以下、ドキュメントをご参照ください。

    $NOWについて【IRIS】
    $NOWについて
    $ZTimeStampについて【IRIS】
    $ZTimeStampについて

    0
    0 230
    記事 Mihoko Iijima · 10月 15, 2020 6m read

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

    この記事では「グローバルを誤って削除してしまった!」という場合の対処方法をご紹介します。

    誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。
    復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。
    この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。

    ^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。

    ^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について【IRIS】
    ^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について

    【実施例】

      ・2020/10/14 時点のバックアップが存在している(バックアップは2020/10/15 0:30に実行したとします)
         ジャーナル:2020/10/15 の1日分が存在している(2020/10/14のバックアップ以降のもの)
      ・対象のグローバル:^TEST1

    イメージは以下の通りです。

    1. グローバル ^TEST1 は 10/14 よりデータが作成される。
    0
    0 584
    記事 Toshihiko Minamoto · 10月 14, 2020 9m read


    こんにちは!

    この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。

    つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。

    InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください!

    0
    0 424
    記事 Megumi Kakechi · 10月 13, 2020 4m read

    これはInterSystems FAQ サイトの記事です。
    InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。
    ObjectScript メソッドおよび関数の呼び出し

    こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。
    以下、使用方法について簡単なサンプルをご紹介します。

    *SampleNativeAPI .java

    import java.sql.DriverManager;
    import com.intersystems.jdbc.IRISConnection;
    import com.intersystems.jdbc.IRIS;
    import com.intersystems.jdbc.
    0
    0 379
    記事 Toshihiko Minamoto · 10月 13, 2020 8m read

    GraphQLは、クライアントとサーバー間のミドルウェア層として機能する、データ構造とデータアクセスのメソッドを選択するための標準です。 GraphQLについて聞いたことがない方は、ここここここにある、有用なオンラインリソースをご覧ください。

    この記事では、InterSystemsテクノロジーに基づいて、プロジェクトでGraphQLを使用する方法を説明します。

    0
    0 422
    お知らせ Mihoko Iijima · 10月 12, 2020

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

    第6回 InterSystems IRIS プログラミングコンテスト(Full Stackコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。

    今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

    🏆 審査員賞 - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。

    🥇 1位 - $1,500 は npm-iris を開発された Henrique Gonçalves Dias さんに贈られました!

    🥈 2位 - $1,000 は apptools-admin を開発された Sergey Mikhailenk さんに贈られました!

    🥉 3位 - $500 は realworld-intersystems-iris を開発された Dmitriy Maslenniko さんに贈られました!

    🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。

    🥇 1位 - $1,000 は npm-iris を開発された Henrique Gonçalves Dias さんに贈られました!

    🥈 2位 - $250 は apptools-admin を開発された Sergey Mikhailenk さんに贈られました!

    1
    0 148
    InterSystems公式 Toshihiko Minamoto · 10月 11, 2020

    InterSystems は、InterSystemsIRIS を新しいリリース方法を採用しようとしています(訳注:2020年現在、このリリース方法が採用されています)。このブログでは、新しいリリースモデルとお客様が予測しておくべきことを説明しています。  この内容は InterSystems IRIS ロードマップセッションの最後に行われた Global Summit で説明し、お客様から多くの肯定的なフィードバックを受け取ったものです。

    この新しいモデルでは、次の 2 つのリリースストリームを提供しています。

    1)EM と呼ばれる従来と同じ毎年恒例のリリース(拡張メンテナンス

    2)CD(継続的デリバリーを意味する)のタグが付けられ、コンテナ形式でのみ入手可能になる四半期ごとのリリース。

    0
    1 416
    記事 Henrique Dias · 10月 8, 2020 2m read

    npm-iris とは何ですか? 

    N.P.Mは "No Project Mess "の略です。

    N.P.M.は、InterSystems IRISとBootstrap 4を使用したプロジェクト&タスク管理アプリです。

    No Project Messは、シンプルで直感的なプロジェクトとタスクの管理ソフトウェアで、開発者や中小企業が日々の複雑な問題を軽減できるように作成されています。 
    スプレッドシート、カンバン、カレンダー、ガントチャートなど、タスクのためのさまざまなビューを提供しています。

    2
    0 207
    InterSystems公式 Yoichi Miyashita · 10月 9, 2020

    InterSystems IRIS データ・プラットフォーム および InterSystems IRIS for Health バージョン 2020.3 CD をリリースしました。
    こちらはCD(continuous delivery)リリースになりますので、OCI(Open Container Initiative)と呼ばれるDockerコンテナー形式でのみ使用可能です。

    リリースのビルド番号は 2020.3.0.221.0 です。

    InterSystems IRIS Data Platform 2020.3 により、サイロ化したデータとアプリケーションをつなぐ、リアルタイム機械学習に対応したアプリケーションの迅速な開発と展開を可能にします。このバージョンでは、以下の多くの新機能が含まれます。

    0
    0 203
    記事 Toshihiko Minamoto · 10月 5, 2020 15m read

    CachéとCosFakerを使ったテスト駆動開発の簡単な紹介

    読了****目安時間: 6分
     

    皆さん、こんにちは。

    私がTDDに初めて出会ったのは約9年前のことです。すぐに夢中になってしまいました。
    最近は非常に人気が出てきているようですが、残念ながら多くの企業ではあまり使われていないようです。 また、主に初心者の方ではありますが、一体それがなんであるのか、どのように使うのかといったことさえも知らない開発者もたくさんいます。

     

     

    概要

    この記事は、%UnitTestでTDDを使用する方法を紹介することを目標としています。 ワークフローを示し、私の最初のプロジェクトであったcosFakerの使用方法を説明します。これはCachéを使って作成したものであり、最近になってOpenExchangeにアップロードしたものです。

    では、ベルトを締めて出発しましょう。

     

     

    TDDとは?

    テスト駆動開発(TDD)は、自動テストが失敗した場合に、開発者に新しいコードの書き方のみを示すプログラミング実践として定義できます。
    このメリットに関する記事、講義、講演などは数多く存在しますが、どれもが正しい内容です。
    コードはテスト済みで生成されること、過度なエンジニアリングを避けるために定義された要件に、システムが実際に適合していることを確認できること、継続的にフィードバックを得ることが挙げられます。

    0
    0 407
    記事 Hiroshi Sato · 10月 5, 2020 9m read

    ここで紹介するサンプルは、以下のGitHubから入手可能です。

    IRIS .Netサンプル

    jpegファイルを読んで、IRISデータベースに格納するサンプル

    上記GitHub上のinsertbinary\insertbinary\binread.csというファイル名です。

    処理内容は、ファイルシステム上のjpeg形式のファイルを読み込んで、BLOB形式でIRISデータベースに格納します。

    Caché ではADO.NET Managed Providerを使用して実装していましたが、それをIRISのInterSystems Managed Provider for .NETを使用して書き換えました。
    (名前が変わっていますが、ADO.NETに関しては、機能はほとんど同じです)

    従って、厳密に言うと.Net Native APIを使用していませんが、コネクションオブジェクトの使用方法は共通なので、この部分は、Native APIを使用していると言うこともできます。

    Caché での実装は、以下の通りです。

    // binread.cs
    using System;
    using System.
    0
    0 496
    記事 Megumi Kakechi · 9月 30, 2020 2m read

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

    DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。

    mm/dd/yy-18:31:15:060 (2932) 1 [SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000).


    上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。

    ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。

    • 大量のデータ登録や変更を行う処理が実施されていた。
    • 弊社製品以外のソフト(アンチウイルスソフト、バックアップソフト)が動作していた。
    • 弊社製品以外のアプリケーションによるディスク負荷など。
    • 仮想環境の場合に、他の仮想マシン(VM)で上記のような負荷の高い処理が行われ、その影響を受けていた。
    0
    0 486
    お知らせ Mihoko Iijima · 9月 13, 2020

    開発者の皆さんこんにちは!IRIS プログラミングコンテストも 6 回目を迎えました!

    今回のコンテストのテーマは

    「InterSystems IRIS をバックエンドとし Web またはモバイル・ソリューションをフロントエンドとして使用する⚡️フル・スタック・アプリケーション⚡️」

    です。日本からのご応募お待ちしております!

    Open Exchange(アプリケーション登録/参考となる開発テンプレート)のページはこちら➡ ⚡️ InterSystems Full Stack Contest ⚡️

    応募期間は 2020年9月21日~10月4日 です!

    (投票期間は 2020年10月5日~11日、勝者発表は 10月12日を予定しています)

    優勝特典

    1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。

    🥇 1位 - $2,000 

    🥈 2位 - $1,000 

    🥉 3位 - $500

    2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。

    🥇 1位 - $1,000 

    🥈 2位 - $500 

    複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。

    参加資格

    どなたでもご参加いただけます!

    1
    0 350
    記事 Hiroshi Sato · 9月 28, 2020 1m read

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

    %Library.Routine (以降、%Routine)クラスのRoutineListクエリを使用して、プログラムからルーチンの日付やサイズを取得できます。

    RoutineListクエリには、引数があり、検索対象となるルーチン名を前方一致や中間一致で指定できます。
    (ワイルドカードには、* か ? を指定します。)

    以下の例では、*.MAC を引数に指定して、検索をしています。

     SET tStatement ##class(%SQL.Statement).%New()
     DO tStatement.%PrepareClassQuery("%Routine","RoutineList")
     SET rs tStatement.%Execute("*.MAC",,0)
     DO rs.%Display()


    ルーチン一覧の他に、クラス定義一覧も取得できます。

    0
    0 447
    記事 Hiroshi Sato · 9月 28, 2020 1m read

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

    言語バインディングなどのサーバクライアント型で接続した場合、クライアントのマシン名は以下の処理で取得できます。

    set client=##CLASS(%SYS.ProcessQuery).Open("P"_$j).ClientNodeName

    クライアントのIPアドレスは以下の処理で取得できます。

    set ip=##CLASS(%SYS.ProcessQuery).Open("P"_$j).ClientIPAddress

    * サーバーとクライアントが同一マシンの場合、上記で取得できるIPアドレスは、127.0.0.1になります。

    0
    0 768
    記事 Megumi Kakechi · 9月 27, 2020 2m read

    これはInterSystems FAQ サイトの記事です。
    コンソールログ(message.log/cconsole.log)に、以下のようなログが出力される場合があります。

    MM/DD/YY-hh:mm:ss:sss (pid) 2 CP: Pausing users because the Write Daemon has not shown
       signs of activity for xxx seconds. Users will resume if Write Daemon completes a
       pass or writes to disk (wdpass=yyyy).


    このメッセージは、コントロールプロセスが出力しています。
    このプロセスは、ライトデーモン(WriteDaemon)等の主要なシステムプロセスを監視しています。

    この監視にて、ディスクI/O 負荷が上がったことなどにより、ライトデーモンの書き込み処理が一定期間(xxx秒間)進んでいない場合、データベースキャッシュ上にダーティなバッファが増えるのを抑制する為に、ユーザプロセスのデータベースへの書き込みアクセスをサスペンドします。
    このメッセージ出力後、ライトデーモンの活動が復帰するまでユーザプロセスの書き込みアクセスは待ち状態になります(ハング状態になります)。

    0
    0 446
    記事 Toshihiko Minamoto · 9月 23, 2020 45m read

    Amazon Web Services(AWS)クラウドは、コンピューティングリソース、ストレージオプション、ネットワークなどのインフラストラクチャサービスの幅広いセットをユーティリティとしてオンデマンドかつ秒単位の従量課金制で提供しています。 新しいサービスは、先行投資なしで迅速にプロビジョニングできます。 これにより、大企業、新興企業、中小企業、公営企業の顧客は、変化するビジネス要件に迅速に対応するために必要なビルディングブロックにアクセスすることができます。

     

    更新: 2019年10月15日

    0
    1 1467
    記事 Tomoko Furuzono · 9月 17, 2020 17m read

    Caché 2017以降のSQLエンジンには新しい統計一式が含まれています。 これらの統計は、クエリの実行回数とその実行所要時間を記録します。

    これは、多くのSQLステートメントを含むアプリケーションのパフォーマンスを監視する人や最適化を試みる人にとっては宝物のような機能ですが、一部の人々が望むほどデータにアクセスするのは簡単ではありません。

    この記事と関連するサンプルコードでは、このような情報の使用方法と、日次統計の概要を定期的に抽出してアプリケーションのSQLパフォーマンス履歴記録を保持する方法について説明します。



    ※詳細については、下記ドキュメントページもご参考になさってください。


    https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GSQLOPT_sqlstmts

    記録内容

    SQLステートメントが実行されるたびに、所要時間が記録されます。 この処理は非常に軽量であり、オフにすることはできません。 コストを最小限に抑えるため、統計はメモリに保持されてから定期的にディスクに書き込まれます。 このデータには当日にクエリが実行された回数と、その平均所要時間と合計所要時間が含まれます。

    データはすぐにはディスクに書き込まれません。

    0
    0 379
    記事 Hiroshi Sato · 6月 29, 2020 2m read

    Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。
    以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*
     

     Set Directory="/CacheDB/AAA/"
     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).
    3
    0 802
    記事 Mihoko Iijima · 9月 16, 2020 2m read

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

    InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。

    具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。

    • データベースファイル(IRIS.DAT/CACHE.DAT)
    • <インストールディレクトリ>/bin 内の実行可能ファイル(EXE) 
    • ライトイメージジャーナル(WIJ)
    • ジャーナルディレクトリ内のジャーナルファイル

    上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」 のようなエラーが発生する場合があります。

    このエラーは、実際にハード的なディスク障害が原因であることもありますが、それ以外にアンチウィルスソフトのウィルスチェックなどによって、ディスクへの書き込みが阻止された場合にも起こります。

    詳細は、下記ドキュメントページをご参照ください。

    インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法【IRIS】
    インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法

    0
    0 460
    記事 Mihoko Iijima · 9月 16, 2020 1m read

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

    サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。

    ぜひご参照ください!
     

    0
    0 276
    記事 Tomoko Furuzono · 9月 15, 2020 14m read

    Cachéデータベースのオブジェクトおよびリレーショナルデータモデルは、標準、ビットマップ ビットスライスの3種類のインデックスをサポートします。 これら3つのネイティブタイプに加えて、開発者は独自のカスタムタイプのインデックスを宣言し、バージョン2013.1以降の任意のクラスで使用できます。 たとえば、iFindテキストインデックスは、そのメカニズムを使用しています。

    カスタムインデックスタイプは、挿入、更新、削除を実行するための%Library.FunctionalIndexインターフェースのメソッドを実装するクラスです。 新しいインデックスを宣言するときに、そのようなクラスをインデックスタイプとして指定できます。

    例:

    Property A As %String;
    Property B As %String;
    Index someind On (A,B) As CustomPackage.CustomIndex;

     CustomPackage.CustomIndex クラスは、カスタムインデックスを実装するまさにそのクラスです。

    たとえば、ハッカソン中に私たちのチーム(Andrey Rechitsky  Aleksander Pogrebnikov、そして)が開発した空間データのクワッドツリーベースのインデックスの小さなプロトタイプを分析してみましょう。

    0
    0 352
    お知らせ Mihoko Iijima · 9月 15, 2020

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

    Full Stack コンテストについての続報をお伝えします!

    投票期間に追加ポイントを獲得できる「テクノロジーボーナス」について紹介します。

    対象となる技術は、以下の通りです。

    • InterSystems IRIS REST API の使用
    • InterSystems Native API の使用
    • InterSystems JDBC の使用
    • ZPMパッケージによる公開
    • Docker コンテナの使用

    詳細は以下の通りです。

    InterSystems IRIS REST API の使用 - 1 point

    フルスタック・アプリケーションから、REST API 経由で InterSystems IRIS にアクセスるとボーナスポイントを獲得できます。REST API をご自身で開発されるか、組み込みのものを利用したり、ZPM 経由でインストールするなど、選択できます。

    RESTサービス作成方法については、ドキュメントや IRIS で作成する REST サーバの仕組み をご参照ください。

    InterSystems Native API の使用 - 1 point

    InterSystems Native API(.NET、Java、Python、Node.

    0
    0 194
    記事 Tomoko Furuzono · 9月 10, 2020 3m read

    日付範囲クエリが極端に遅くなっていませんか?  SQLのパフォーマンスが低下していませんか?

    日付範囲のサブクエリをまだご覧になっていない場合は、前回の投稿をご確認ください。
    https://jp.community.intersystems.com/post/日付範囲クエリのsqlパフォーマンスを改善する


    なぜ、こうも日付クエリに注目しているのでしょうか? それは、日付クエリが重要だからです。 それは報告であり、統計であり、自分の素晴らしい仕事を上司に証明するための数字です(もちろん、あなたが実際にそうしていればの話ですが )。では、前回と同じようなテーブルを見てみましょう。ただし、実際には MAXLEN と MINLEN を次のように適切に定義します。

    Class User.DateQ extends %Persistent 
    {
    Property DateSubmitted as %Date;
    Property Data as %String (MAXLEN=200, MINLEN=100);
    Index DateIdx on DateSubmitted;
    }

    では、先月のすべてのデータを取得したい場合を見てみましょう。 次のようなクエリを書き、「良い仕事」を考えます。

    0
    0 791
    記事 Tomoko Furuzono · 9月 7, 2020 7m read

    アプリケーションに、効率的に検索したいフリーテキストを含むフィールドがありますか?これまで複数の方法を試してみたものの、顧客が要求するパフォーマンスを満たせなかった経験はありませんか?私は変わった手段を使ってあらゆる問題を解決できると思っていませんか。もうご存じですよね。私ができるのは、パフォーマンス低下に対処する優れたソリューションを提供することです。

    いつものように、要約版が必要な場合は記事の最後まで飛ばしてください。ただ、それだと私はがっかりしてしまいますが。

    最近の(2015.1以降の)バージョンのCaché/Ensemble/HealthShareのSAMPLESネームスペースでSample.Companyのバージョンを開くと、擬似ランダムに生成されたテキストであるMissionフィールドが表示されます。このテキストフィールドを検索してみましょう。 私はこの演習のために約256,246社データを生成しましたが、ご自身で必要な数の会社を生成してから同じ手順に従ってください。例えば、次のクエリを実行するとしましょう。

    SELECT * FROM Sample.Company WHERE Mission LIKE ‘% agile %’


    これはかなり合理的なクエリですが、どのように実行されるのでしょうか?

    0
    0 414
    記事 Toshihiko Minamoto · 8月 13, 2020 3m read

    皆さん、こんにちは。

    InterSystems System Alerting and Monitoring (SAM)をご存知でしょうか。InterSystems IRIS 2020.1以降に対応し、IRISやそのアプリケーションの監視を行うソリューションです。といってもシステム監視を行うPrometheus、アラートを管理するAlertManager、ダッシュボードとしてグラフ等を表示させるGrafanaなどを組み合わせたものですが、IRISの利用者に合わせて設定しやすくなっています。

    なお、これらのコンポーネントはDockerコンテナを使用しますので、Docker(19.3.098以降)ならびにDocker compose(1.25以降)をインストールいただく必要があります。

    IRISの監視APIについてはこちらをご覧ください。

    インストール手順

    1. アプリケーションのインストール

    アプリケーション自体はDockerコンテナにて提供されますので、DockerComposeのファイルやシェルスクリプトを以下のGitHubリポジトリからダウンロードします。
    https://github.com/intersystems-community/sam

    以下のgzipファイルをダウンロードし、展開します。
    sam-1.0.0.XXX-unix.tar.gz

    $ tar zpxvf sam-1.0.0.
    1
    1 364