記事 Toshihiko Minamoto · 2021年3月22日 5m read Outlier Selectivity (外れ値の選択性) について Caché 2013.1 より、InterSystems は特殊な値を持つフィールドが使われるクエリプランのセレクションを改善する目的で Outlier Selectivity (外れ値の選択性) を導入しました。 この記事では、「Project」テーブルを例に使い、Outlier Selectivity の概要やそれが SQL のパフォーマンスを向上させる仕組み、またクエリを書く際の注意点などについて解説したいと思います。 Selectivity (選択性) まずは、Selectivity についてさっと説明します。 Selectivity とは、テーブル内の 1 つの列の中にある値に関するメタ情報のことです。 データが典型的なかたちで分布されていると想定した場合、「このテーブル内のこの列に特定の値を持つすべての行を要求するとしたら、通常取得できるのはテーブル内のどの程度の割合であろうか?」という疑問の答えとなる情報です。 #SQL #Caché 0 0 0 93
記事 Toshihiko Minamoto · 2021年1月19日 6m read 2個のBME280で気象データを取得する みなさん、こんにちは。 前回の記事では1個のBME280で気象データを取得したのですが、気温のブレが大きかったので基板からただ、基板につけたBME280のはんだを外すのが大変なので、別のBME280を外付けすることにしました。当初、ESP8266の別のIO端子と接続することを考えていたのですが、Wire.hが複数のバスに対応していないため、以下の配線図のようにカスケード接続することにしました。 #IoT #InterSystems IRIS 0 0 0 713
記事 Mihoko Iijima · 2021年3月9日 3m read アプリケーションエラー(^ERRORS)をコマンドで取得する方法 これは InterSystems FAQ サイトの記事です。 SYS.ApplicationError クラスの ErrorList クエリを使用します。 注意1:%SYS ネームスペースで実行します。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 95
記事 Hiroshi Sato · 2021年10月20日 1m read IRISに含まれるアダプタについて これは、InterSystems FAQサイトの記事です。 InterSystems IRIS Data Platformにはシステム接続に良く使われる一般的な電子メール、ファイル、FTP、HTTP、ウェブサービス、REST、SQL、TCPアダプタなどが標準で含まれています。 特定アプリケーション向けに IBM WebSphere MQ アダプタや SAP Java Connector アダプタも提供します。 そしてJavaアプリケーションを呼び出すためや .Net アプリケーションを呼び出すための PEX(Production EXtension)というフレームワーク もあります。 そのほか、IRIS for HealthにはHL7 FHIR、HL7 V2、HL7 V3、CDA、DICOM、X12、ASTM,EDIFACT などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 246
記事 Mihoko Iijima · 2021年3月28日 4m read FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介 皆さんこんにちは! この記事でご紹介する「開発環境テンプレート」は、最近 医療 IT で注目を集めている 医療情報交換標準規格 FHIR を体験できるコンテナです。 一式は、こちら(https://github.com/Intersystems-jp/IRIS-FHIR-Oximeter-Template)で公開しています。 コンテナビルド時、InterSystems IRIS for Health コミュニティエディションを使用した FHIR R4 リソースリポジトリの用意と、REST 用エンドポイントが用意されます。 #Docker #FHIR #Git #コンテナ化 #初心者 #InterSystems IRIS for Health 0 2 1 1.4K
記事 Shintaro Kaminaka · 2021年4月15日 9m read IRIS for Health上でFHIRリポジトリ+OAuth2認可サーバ/リソースサーバ構成を構築するパート4(代行認証編) 開発者の皆さん、こんにちは。 以前の記事でIRIS for Health上でFHIRリポジトリを構築し、OAuth2認証を構成する方法をご紹介しました。 この代行認証編では、IRIS for HealthのFHIRリポジトリに組み込まれた認証機能ではなく、IRISの代行認証機能+ZAUTHENTICATEルーチンを使用して認証を行う方法をご紹介します。 前回記事でご紹介したように、標準のFHIRリポジトリの認証機構では、アクセストークンの発行先を追加するためのAudienceの指定(aud=https://~) や、アクセストークンだけではなくベーシック認証の情報を送付するなどの対応が必要でした。 スクラッチでFHIRクライアントを開発するのではなく、既成の製品やアプリケーションからアクセスする場合、上記のような処理の実装ができないことがあるかもしれません。 そのような場合には、この代行認証+ZAUTHENTICATEルーチンを使用して、カスタマイズした認証の仕組みを構築することができます。 #FHIR #OAuth2 #セキュリティ #InterSystems IRIS for Health 0 0 0 370
記事 Toshihiko Minamoto · 2021年6月9日 4m read GIS でのコンペに勝つには GIS は Geographic Information System(地理情報システム)の略です。 これは、Caché の典型的な分野ではありませんが、 データ量の多い環境に違いありません。 主要分野には、次の 3 つがあります。 ビジュアルフロントエンド: 多数の商用およびオープンソース製品がカバーする成熟した分野です。 ここには Caché は必要ありません。 GIS の数学: JTS(Java Topology Suite)は、すべての要件を網羅した固定標準です。Java Gateway によって、または Caché Call Out Gateway を使ったこの標準ライブラリの C++ インカーネーションの C によって Caché にリンク付けることができます。 これまでのところ、Caché による付加価値はありません。 すべての地理オブジェクトとその属性、特に、道路地図、高速道路、会社、個人宅、鉄道、人口統計データなどの地理座標を保持しているデータベース #Caché 0 0 0 99
記事 Mihoko Iijima · 2021年6月17日 6m read 【GettingStarted with IRIS】チュートリアルページのご紹介 開発者のみなさん、こんにちは! 2023/2/20追記 チュートリアルページが新しくなり「Developer Hub」に変わりました! チュートリアルの種類や使い方については、「InterSystems Developer Hub:クリック1回で開始できるチュートリアル(4種)のご紹介」をご参照ください。 以下にご紹介しているチュートリアルページは、現在非公開となりますので、Developer Hub をご利用ください! #初心者 #InterSystems IRIS 0 0 0 803
記事 Mihoko Iijima · 2021年6月22日 1m read 複数のバージョンをインストールした環境で ODBC ドライバを切り替える方法 これは InterSystems FAQ サイトの記事です。 同一システムに InterSystems 製品を複数インストールした場合、ドライバマネージャに登録される InterSystems 用の ODBCドライバは、インストールされた製品の中で最新バージョンのドライバが登録されたままとなります。 以下のレジストリエントリを変更することで、任意のドライバへ変更できます。 なお、RegFiles.bat 実行では ODBCドライバは切り替わらないのでご注意ください。 レジストリエントリは、以下の通りです。 #ODBC #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 581
記事 Toshihiko Minamoto · 2021年7月1日 3m read インターシステムズ開発者コミュニティで学習する方法 パート1 開発者の皆さん こんにちは。 ここでは、開発者コミュニティを最大限活用し、専門家からできる限り多くのことを学ぶ方法についてお伝えしたいと思います。 開発者コミュニティの上級ユーザになるためのこれらのステップをご確認ください。 #開発者コミュニティ公式 0 0 0 63
記事 Toshihiko Minamoto · 2021年8月31日 12m read Webをデバッグする - パート2 最初の記事では、Caché Webアプリケーションのテストとデバッグを外部ツールを用いて行うことについて説明しました。 2回目となるこの記事では、Cachéツールの使用について説明します。 以下について説明します。 CSP GatewayとWebappの構成 CSP Gatewayのロギング CSP Gatewayのトレース ISCLOG カスタムロギング セッションイベント デバイスへの出力 #デバッグ #フロントエンド #Caché 0 0 0 317
記事 Mihoko Iijima · 2021年8月16日 9m read コンテナで InterSystems Reports を動かしてみる InterSystems Reports は Logi Analytics 社の製品である Logi Report(旧名:JReport)使用しています。InterSystems Reports は、InterSystems IRIS、InterSystems IRIS for Health で動作し、以下に示すように堅牢でモダンなレポートソリューションを提供します。 レポート開発者とエンドユーザーの両方がカスタマイズ可能な、組み込み型のオペレーショナルレポート。 請求書、文書、フォームなどの特殊なレイアウト要素や、特定のフォームグリッドを開発することができるピクセルパーフェクトなフォーマット。 集約されたデータと詳細なデータの構造を提供する帯状のレイアウト。 ヘッダー、フッター、アグリゲーション、詳細データ、画像、サブレポートを正確に配置。 多彩なページレポートタイプ。 PDF、XLS、HTML、XMLなどのファイルフォーマットへのエクスポート、印刷、法規制遵守のためのアーカイブを含む、大規模なダイナミックレポートのスケジューリングと配布。 InterSystems Reports は、以下の内容で構成されています。: レポートデザイナーには「デザイン」タブと「プレビュー」タブがあり、レポート開発者はライブデータを使ったレポートの作成とプレビューができます。 エンドユーザーにブラウザベースのアクセスを提供し、レポートの実行、スケジューリング、フィルタリング、修正を可能にするレポートサーバーを用意します。 以上、InterSystems ドキュメント から抜粋。 この記事では、InterSystems Reports の サーバー部分に焦点を当て、すべてのデータを永続化しながらコンテナでレポートサーバーを実行するためのガイドをご提供しています。 #Docker #システム管理 #InterSystems IRIS Open Exchange app 0 0 0 117
記事 Mihoko Iijima · 2021年9月24日 3m read 任意のSQL文の実行結果をプログラムでCSVに出力する方法 これは InterSystems FAQ サイトの記事です。 システムユーティリティクラスを利用したプログラムを作成することで出力できます。 【注意1】出力データの区切り文字がカンマではなくタブで出力されます点、ご注意ください。 【注意2】エクセルでタブ区切りのファイルを開くため、エクセルの開くメニューから出力したファイルを開いてください。 処理概要は以下の通りです。 1) %SYSTEM.SQL クラス(※)の Execute() メソッドを使用します。 第1引数:SQL文を指定します。 第2引数:内部日付が格納されている場合 yyyy-mm-dd で出力されるように表示モードを切り替えます。(1:odbcモード) 詳細は下記ドキュメントページおよびクラスリファレンスをご参照ください。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 684
記事 Toshihiko Minamoto · 2021年10月26日 10m read InterSystems IRIS DBMSのセキュリティ強化 InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。 InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。 ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。 #システム管理 #セキュリティ #初心者 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 203
記事 Hiroshi Sato · 2021年2月1日 1m read ローカル変数の値がOREFであるかどうかの判定法 これは InterSystems FAQ サイトの記事です。 $IsObject()を使用して判別できます。 調べたい変数をvとすると、 $IsObject(v)=1 // vはOREF$IsObject(v)=0 // vはOREFではない$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない となります。 vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。 UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 152
記事 Mihoko Iijima · 2021年2月1日 3m read 開発環境テンプレート(IRIS プログラミングコンテストで使用していたテンプレート)の一覧 開発者のみなさん、こんにちは! IRIS プログラミングコンテストでは、💨すぐに💨開発を開始いただけるようにコンテナ版 IRIS を利用した「開発環境テンプレート」をご提供してしていました。 終了したコンテストにはご応募いただけませんが、テンプレートは「ちょっと試したい」「加工して自分オリジナル環境を作りたい」の目的にぴったりの内容です。 また、全て Open Exchange で公開されていて、Docker、Git、VSCode をインストールした環境があればすぐにご利用いただけます。 テンプレートの使用方法については、各コンテストの紹介ページでご案内しています(日本語解説ビデオ付きもあります)。 基本は以下 3 行だけで開始できます。(とっても簡単!) git clone <ここにテンプレートのURL> cd <作成されたディレクトリ> docker-compose up -d --build ご興味ある内容ありましたら、ぜひお手元で試してみてください! #Docker #コンテスト #コンテナ化 #InterSystems IRIS #InterSystems IRIS for Health #VSCode 0 0 0 298
記事 Hiroshi Sato · 2021年10月7日 2m read ジャーナルファイルの内容を管理ポータル以外で参照する方法 これは InterSystems FAQ サイトの記事です。ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。 ① ^JRNDUMP ユーティリティを使用する方法② プログラムで参照する方法 ============================================================ ① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。 ※以下、すべてのコマンドは %SYS ネームスペースで実行してください。 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1) #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 275
記事 Toshihiko Minamoto · 2021年6月15日 11m read MonCaché - MongoDB としての Caché MonCaché — InterSystems Caché での MongoDB API 実装 免責事項:この記事は筆者の私見を反映したものであり、InterSystemsの公式見解とは関係ありません。 構想 プロジェクトの構想は、クライアント側のコードを変更せずに MongoDB の代わりに InterSystems Caché を使用できるように、ドキュメントを検索、保存、更新、および削除するための基本的な MongoDB(v2.4.9) API 機能を実装するところにあります。 #API #JSON #Node.js #オブジェクトデータモデル #データベース #データモデル #ドキュメントデータモデル(NoSQL) #Caché 0 0 0 84
記事 Megumi Kakechi · 2021年5月13日 1m read InterSystems IRIS Data Platform がWeb開発に適している理由 これは InterSystems FAQ サイトの記事です。 Webアプリケーションの開発・運用には、高性能・高スケーラビリティ・開発生産性の良さが求められます。 IRIS Data Platformには、高性能で軽量なデータベースエンジンとそのエンジンの性能を最大限活用するアプリケーションサーバ機能、および、Webアプリケーションを迅速に開発するためのREST/JSON対応、API管理機能が用意されています。 さらに、マルチコア・マルチCPUシステムに最適化したアーキテクチャや、複数サーバでのスケールアウト手法による高スケーラビリティを提供するECP、シャーディングと呼ばれる技術を提供します。 #ヒントとコツ #初心者 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 129
記事 Hiroshi Sato · 2021年9月9日 2m read RESTでクロスドメイン制約を回避する方法 これは InterSystems FAQ サイトの記事です。 #REST API #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 435
記事 Toshihiko Minamoto · 2021年7月15日 16m read InterSystems IRIS および Intel Optane DC パーシステントメモリ InterSystems および Intel は先日、InterSystems IRIS を「Cascade Late」としても知られる第 2 世代 Intel® Xeon® スケーラブルプロセッサおよび Intel® Optane™ DC パーシステントメモリ(DCPMM)と組み合わせて一連のベンチマークを実施しました。 さまざまなワークロード設定とサーバー構成で、Intel の最新のサーバーテクノロジーを使用した InterSystems IRIS のパフォーマンスとスケーラビリティ機能を実証するのがこのベンチマークの目的です。 このレポートには、さまざまなベンチマークの結果とともに、Intel DCPMM と InterSystems IRIS のユースケースが 3 つ示されています。 #HL7 #インターシステムズビジネスソリューションとアーキテクチャ #シャーディング #テスト #パフォーマンス #ビッグデータ #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #TrakCare 0 0 0 146
記事 Makiko Kokubun · 2021年6月22日 1m read 動画:IRISシステムを簡単に可視化 ー InterSystems SAMのご紹介 *この動画は、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といったオープンソースの監視用ツールを組み合わせて簡単にインストールや設定ができるようにしています。 #SAM - System Alerting and Monitoring #Webセミナー #InterSystems IRIS 0 0 0 76
記事 Mihoko Iijima · 2021年7月13日 1m read 管理ポータルにログインできない場合の確認項目 これは InterSystems FAQ サイトの記事です。 管理ポータル接続時に指定しているWeb サーバポートが正しい番号を指定しているかご確認ください。 Windows にクライアントツールのインストールを行っている場合は、ランチャーに登録している接続サーバの設定に問題がある場合が考えられます。 ランチャー > 優先接続サーバ > 追加/編集 で、接続先の Webサーバポートが正しく設定されているかご確認ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 315
記事 Toshihiko Minamoto · 2021年9月14日 10m read リレーショナルデータベースにおけるEntity-Attribute-Valueモデル。 グローバル変数はテーブルでエミュレートする必要がありますか? パート2. より産業向けのグローバルストレージスキーム この連載の第1回では、リレーショナルデータベースにおけるEAV(Entity-Attribute-Value)モデルを取り上げ、テーブルにエンティティ、属性、および値を保存することのメリットとデメリットについて確認しました。 このアプローチには柔軟性という点でメリットがあるにもかかわらず、特にデータの論理構造と物理ストレージの基本的な不一致などによりさまざまな問題が引き起こされるという深刻なデメリットがあります。 こういった問題を解決するために、階層情報の保存向けに最適化されたグローバル変数を、EAVアプローチが通常処理するタスクに使用できるかどうかを確認することにしました。 パート1では、オンラインストア向けのカタログをテーブルを使って作成し、その後で1つのグローバル変数のみで作成しました。 それでは、複数のグローバル変数で同じ構造を実装してみることにしましょう。 #SQL #グローバル #データベース #パフォーマンス #ヒントとコツ #リレーショナルテーブル #非構造化データ #Caché #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 286
記事 Toshihiko Minamoto · 2021年9月28日 3m read DSTIMEでデータを同期する Cachéでのデータ同期については、オブジェクトとテーブルを同期させるさまざまな方法があります。 データベースレベルでは、シャドーイングまたはミラーリングを使用できます。 これは非常によく機能し、データの一部分だけを同期する必要がある場合には、 グローバルマッピングを使用してより小さなピースにデータを分割することができます。 または、クラス/テーブルレベルで双方向の同期が必要な場合には、オブジェクト同期機能を使用することができます。 これらすべての優れた機能には次のような制限があります。Caché/IRISからCaché/IRISにしか機能しません。 #データベース #分散データ管理 #相互運用性 #Caché #Ensemble #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 173
記事 Toshihiko Minamoto · 2021年11月16日 4m read ODataとInterSystems IRIS ODataとは? #コンテスト #InterSystems IRIS #InterSystems IRIS for Health #Open Exchange Open Exchange app 0 0 0 126