検索

クリアフィルター
記事
Toshihiko Minamoto · 2020年7月14日

アカウント作成方法

皆さん、こんにちは。 InterSystems開発者コミュニティではログインなしに記事等見ることはできますが、質問や回答、記事、コメントを投稿するにはログインが必要です。ここでは、InterSystems開発者コミュニティにログインするためのアカウント作成手順について説明します。 弊社サポートセンター(WRC)のアカウントをお持ちの方はそのアカウントでログインすることができますので、新たにアカウントを作成する必要はありません。 アカウントの作成手順は以下の通りです。 1. アカウント作成リンクのクリック 以下のように画面上方にある「アカウントを作成」リンクをクリックします。 2. ユーザ情報の登録 以下の例のようにNew User Registration画面が表示されますので、氏名、会社名、メールアドレス等を入力します。 Firstname: 名 Lastname: 姓 Job Title: 役職 Company: 会社名 Country: 「Japan」を選択 E-mail Address: メールアドレス Confirm Email Address: 確認用メールアドレス ※ メールアドレスと確認用メールアドレスには同じメールアドレスを入力してください。 「私はロボットではありません」の左側にチェックボックスがありますので、そこをクリックしてください。 さらに画面下方に「Terms and Conditions (利用規約)」「Contact Permission(連絡の許可)」がありますので、それぞれチェックいただき、 「Continue (継続)」ボタンをクリックします。 Terms and Conditions: 利用規約に同意いただくかどうかのチェックです。継続するにチェックいただく必要があります。 Contact Permission: 製品やイベントの情報(英語版)を受けるかどうかの選択肢です。不要な場合はNoを選択してください。 3. メールアドレスのチェック ユーザ登録で指定いただいたメールアドレスに以下のメールが届きます。 本文中にあるトークンをコピーいただき、ブラウザ上の以下のテキストボックスにペーストした上で、「Continue」ボタンをクリックします。 4. パスワードの指定 以下の画面が表示されますので、パスワード入力(2か所とも同じ内容を入力)し、「Continue」ボタンをクリックします。 以下の画面が表示され、登録が完了します。
記事
Toshihiko Minamoto · 2021年11月18日

Python 3をHealthShareにバインディングした深層学習デモキット(パート1)  

Python 3をHealthShareにバインディングした深層学習デモキット(パート1) **キーワード**:  Anaconda、Jupyterノートブック、TensorFlow GPU、ディープラーニング、Python 3、HealthShare     ## 1. 目的 この「パート1」では、Python 3をHealthShare 2017.2.1インスタンスにバインドして、「単純」かつ一般的なディープラーニングデモ環境をセットアップする方法を段階的に簡単に説明します。  私は手元にあるWin10ノートパソコンを使用しましたが、このアプローチはMacOSとLinuxでも同じように実装できます。 先週、[PYPL Index](https://pypl.github.io/PYPL.html)において、Pythonが最も人気のある言語としてJavaを超えたことが示されました。  TensorFlowも研究や学術の分野において非常に人気のある強力な計算エンジンです。 HealthShareは、ケア提供者に患者の統一介護記録を提供するデータプラットフォームです。 これらを1つのキットにまとめることはできるでしょうか。また、これを実現する上での最も単純なアプローチは何でしょうか。  ここでは、このトピックの最初のステップを一緒に試してから、[次に試すことのできるデモ](https://community.intersystems.com/post/run-deep-learning-demo-python3-binding-healthshare-part-ii)について検討しましょう。   ## 2. 範囲と免責事項 ここで構築しようとしているデモキットには、次のコンポーネントが含まれます。 *  [Anaconda](https://www.anaconda.com/) - 十分に構造化されたパッケージ管理で人気のあるデータサイエンスプラットフォーム。  * [TensorFlow](https://www.tensorflow.org/) - 強力な計算エンジンを備えた機械学習プラットフォーム。 * [Theano](https://pypi.org/project/Theano/) - ML用計算エンジンのPythonライブラリ。 オプションで、TensorFlowの代替として利用できます。 * [Keras](https://keras.io/) - TensorFlowまたはTheanoエンジン上に配備されるPython Deep Learningライブラリ。  * [Jupyterノートブック](https://jupyter.org/) - Anacondaパッケージに含まれます。 * Python 3 - Anacondaパッケージに含まれます。 * [HealthShare](https://www.intersystems.com/products/healthshare/) - HealthShare 2017.2.1インスタンスを使用します。 ... ... そして、Win10ノートパソコンです。    私のDellノートパソコンにはたまたまローエンドのGPU GeForce 840Mが搭載されています。強力ではありませんが、それでもデモのトレーニング速度は3倍高められます。 それ以外は、以下のすべてのステップはMacOS(私のはMac Miniです)かLinux環境(たとえばAWSでUbuntuも試しました)で十分に機能します。   HealthShare 2017インスタンスは、便宜上、デモDBとして使用されていますが、ここで始めようとしている基本的な実験は、CacheまたはEnsembleのインスタンスにおいても機能し、最終的にはIRISにおいても機能すると思っています。   免責事項: これは、PoCデモキットを一緒に使用することで、コミュニティの関心を引くことを狙いとした記事です。 何らかの手段または合法的なブランドによる公式リリースまたは正式発表では決してありません。 内容や範囲は、いずれ空きのある時間に、必要に応じて変更されることがあります。  ## 3. 前提条件 ここでは、ANN、AI、ディープラーニング、またはTensorFlowなどの知識や使用経験は必要ありません。 Python初心者でも十分に使用できます。 ノートパソコンやサーバーに[GPUは必要ありません](https://nvidia.custhelp.com/app/answers/detail/a_id/2040/~/identifying-the-graphics-card-model-and-device-id-in-a-pc)。 ただし、搭載されているのであれば、そのドライブを更新する必要があるかもしれません。 私の場合は[ここからドライバーをダウンロード](https://www.geforce.com/hardware/notebook-gpus/geforce-840m)しました。 ちょっとした注意: 最後の警告7.1を参照してください。 ## 4. デモ環境のセットアップ - 手順 ### 4.1 Anaconda環境のインストール #### 4.1.1 ダウンロードとインストール  次のリンクからAnacondaリリースをダウンロードします。この記事を書いた2019年3月時点での[ダウンロード最新バージョン](https://www.anaconda.com/distribution/#windows)は、Anaconda 2018.12(Python 3.7)です。 このリンクにある[簡単な画面ごとの段階的な指示](https://docs.anaconda.com/anaconda/install/windows/)に従って、Anacondaベース環境をインストールします。  _注意: 同じリンクから、**MacOS**または**Linux**ホスト用のリリースをダウンロードできます。 _ #### 4.1.2 Anacondaインストールのテスト このリンクに従って[インストールを段階的にテスト](https://docs.anaconda.com/anaconda/user-guide/getting-started/)し、PythonとJupyterノートブックが正しく動作することを確認します。ただし、Spyder IDEは必要ありません。  リンク先の指示にあるように、WindowsスタートまたはWindowsコマンドラインからJupyterノートブックを起動できることを確認します。   ### 4.2 TensorFlow環境のインストール  Anaconda PromptウィンドウでCondaコマンドを使用して、TensorFlowエンジンをAnacondaパッケージとしてインストールします。 手順は次のとおりです。             1. Anaconda Promptウィンドウを起動します。CondaバージョンとPythonバージョンを確認してください。 (base) C:\>conda -V conda 4.5.12 (base) C:\>python -VPython 3.7.1            2. 「tensorflow」という新しい環境を作成して、アクティブ化します。 (base) C:\>conda create -n tensorflowSolving environment: done .... ... ... ...(base) C:\>conda activate tensorflow (tensorflow) C:\>            3. 指定されたCondaチャンネルを介して、TensorFlowパッケージをインストールします。 (tensorflow) C:\>conda install -c conda-forge tensorflow このステップでは、非常に大量の具体的なパッケージをダウンロード、解決、アップグレード/ダウングレードするため、かなりの時間が掛かります。           4. TensorFlowが正常にインストールされたことをテストします。  tensorflow) C:\>pythonPython 3.6.7 (default, Feb 28 2019, 07:28:18) ... .... ... ... >>> import tensorflow as tf>>> se=tf.Session()>>> print(se.run(tf.constant('Hello Tensorflow')))b'hello TensorFlow!' >>> print(tf.__version__)1.10.0 >>> quit() (tensorflow) C:\> ###   ### 4.3 GPU環境のインストール TensorFlow GPU環境と同様の手順でインストールします。 1. 「Tensorflow」という新しい環境を作成して、アクティブ化します。 (base) C:\>conda create -n tensorflow-gpuSolving environment: done ... ... (base) C:\>conda activate tensorflow-gpu (tensorflow-gpu) C:\> 2. チャンネルを指定せずに(「tensorflow」ではなく)「tensorflow-gpu」パッケージをインストールします。  (tensorflow-gpu) C:\>conda install tensorflow-gpu  この手順では、すべてのパッケージのダウンロード、解決、インストールに時間が掛かります。 3. インストールを検証します。  >>> import tensorflow as tf>>> se = tf.Session()2019-03-14 14:02:52.423895: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX22019-03-14 14:02:53.081332: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] Found device 0 with properties:name: GeForce 840M major: 5 minor: 0 memoryClockRate(GHz): 1.124pciBusID: 0000:03:00.0totalMemory: 2.00GiB freeMemory: 1.65GiB2019-03-14 14:02:53.087514: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu devices: 02019-03-14 14:08:18.789761: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] Device interconnect StreamExecutor with strength 1 edge matrix:2019-03-14 14:08:18.794278: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990]      02019-03-14 14:08:18.796348: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0:   N2019-03-14 14:08:18.804907: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1395 MB memory) -> physical GPU (device: 0, name: GeForce 840M, pci bus id: 0000:03:00.0, compute capability: 5.0)注意: この手順ではCUDA gpuライブラリが再構築されているため、かなりの時間が掛かることがあります。 問題がある場合は、Anaconda Promptを「管理者として実行」で再起動し、この手順を再試行してください。 私の問題は、2回ほど再起動して解決されました。  >>> print(se.run(tf.constant('Hello')))b'Hello'>>> print(tf.__version__)1.13.1 では、このAnacondaの環境をリスト表示しましょう。  (base) c:\>conda env list# conda environments:#base                  *  C:\ProgramData\Anaconda3tensorflow               C:\Users\zhongli\AppData\Local\conda\conda\envs\tensorflowtensorflow-gpu           C:\Users\zhongli\AppData\Local\conda\conda\envs\tensorflow-gpu ###   ### 4.4 Theano環境のインストール(オプション) Keras構成を試す予定がなく、常にTensorFlowを基盤のエンジンとして使用するのであれば、この手順を省略できます。 そうでない場合は、新しい環境を作成してアクティブ化し、次のコマンドを実行してください: conda install -c conda-forge theano ### 4.5 Kerasのインストール Kerasは、このディープラーニングデモスタックの最上位のレイヤーモジュールです。  今作成した「tensorflow-gpu」環境にインストールしましょう。  注意: ここでは「keras」ではなく「keras-gpu」をインストールしています。 (tensorflow-gpu) c:\>conda install -c anaconda keras-gpu 関連するパッケージがインストールされます。 では、簡単な検証を行いましょう。 (tensorflow-gpu) c:\>pythonPython 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import keras as kUsing TensorFlow backend. 「パート2」では、ディープラーニングモデルの実行にJupyterノートブックを使用して、上記でインストールしたすべてのコンポーネントを検証しますが、 その前に、HealthShareインスタンスのインストールとPython 3バインディングを完了しましょう。   ### 4.6. HealthShareインスタンスのインストール 私は[Intersystems WRCのダウンロードページ](https://wrc.intersystems.com/wrc/coDistHS.csp)から標準のHealthShareインストールファイルをダウンロードしました。    hscore15.032_hsaa15.032_hspi15.032_hsviewer15.032_linkage15.032  Windows 64 Bit EXE また、いつものように一時ライセンスが必要となりますが、これはInterSystemsの営業部またはサポートに連絡すると取得できます。 インストールが完了すると、バージョン文字列は次のようになります: **Cache for Windows (x86-64) 2017.2.1 (Build 801_3_18095U) Mon May 7 2018 14:28:58 EDT [HealthShare Modules:Core:16.0.7669 + Linkage Engine:16.0.7669 + Patient Index:16.0.7669 + Clinical Viewer:16.0.7669 + Active Analytics:16.0.7669]**   ### 4.7 HealthShareへのPythonバインディングをTensorFlow環境にインストール   ### 4.7.1 HealthShareインスタンスパスの特定 製品の公式ドキュメント[『Python Binding to Intersystems Cache』はこちら](https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GBPY_intro)にあります。 たとえば、私のHSインスタンスは次のローカルの場所にインストールされています: **C:\InterSystems\HS20181** そのため、まず、このISC Python DLLパスをWindowsの「環境パス」に追加しました: **C:\InterSystems\HS20181\bin** ### 4.7.2 VC++コンパイラのセットアップ  次に、「**vcvarsall.bat**」コマンドを実行して、パスがMS VC++コンパイラ用にセットアップされていることを確認しました。  私の場合は、**[Visual Studio 2017]->[Tools]->[Get Tools and Features]**メニューに移動し、以下のように「Desktop Development with C++」がインストールされている(選択済み)ことを再確認しています。この選択済みのチェックがない場合は、インストールする必要があります。  すると、デフォルトのディレクトリ(例: **C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build **)に「**vcvarsall.bat**」が表示されるようになります。 ![](/sites/default/files/inline/images/images/image(61).png)   ### 4.7.3 HealthShareインスタンスへのPython 3バインディングのインストール 次に、前のセクションでインストールした「tensorflow-gpu」環境に直接「HealthShareへのPython 3バインディング」をセットアップします。 注意: 私は「...setup.py ...」の代わりに「python setup3.py install」を実行しました。 (tensorflow-gpu) c:\>cd c:\InterSystems\HS20181\dev\python (tensorflow-gpu) c:\InterSystems\HS20181\dev\python>python setup3.py installenter directory where you installed Cache'c:\InterSystems\HS20181libdir=c:\InterSystems\HS20181/dev/cpp/libinclude dir=c:\InterSystems\HS20181/dev/cpp/includelibs=['cbind']running installrunning bdist_eggrunning egg_info... ...installing library code to build\bdist.win-amd64\eggrunning install_librunning build_pyrunning build_extcreating build\bdist.win-amd64\eggcreating build\bdist.win-amd64\egg\intersyscopying build\lib.win-amd64-3.6\intersys\pythonbind.py -> build\bdist.win-amd64\egg\intersys... ... creating stub loader for intersys\pythonbind31.cp36-win_amd64.pydbyte-compiling build\bdist.win-amd64\egg\intersys\pythonbind31.py to pythonbind31.cpython-36.pyccreating build\bdist.win-amd64\egg\EGG-INFO... ... Processing pythonbind3-1.0-py3.6-win-amd64.eggcreating c:\users\zhongli\appdata\local\conda\conda\envs\tensorflow-gpu\lib\site-packages\pythonbind3-1.0-py3.6-win-amd64.eggExtracting pythonbind3-1.0-py3.6-win-amd64.egg to c:\users\zhongli\appdata\local\conda\conda\envs\tensorflow-gpu\lib\site-packagesAdding pythonbind3 1.0 to easy-install.pth file Installed c:\users\zhongli\appdata\local\conda\conda\envs\tensorflow-gpu\lib\site-packages\pythonbind3-1.0-py3.6-win-amd64.eggProcessing dependencies for pythonbind3==1.0Finished processing dependencies for pythonbind3==1.0 ### 4.7.4 バインディングがHealthShareデータベースインスタンスで機能していることを確認 では、「**samples3**」パス内の「**test.py**」を実行しましょう。 (tensorflow-gpu) c:\InterSystems\HS20181\dev\python\samples3>python test.pySimple Python binding sampleCache server port (default 1972)? 56778Connection string: localhost[56778]:SAMPLESConnecting to Cache serverConnected successfullyCreating databaseOpening Sample.Person instance with ID 1 with default concurrency and timeoutGetting the value of the Name propertyValue: Zevon,Mary M.Test completed successfully 上記により、特定のHealthShareデータベース(SAMPLESネームスペース: Sample.Person テーブル)へのPython 3バインディングがtensorflow-gpu環境内で機能していることが確認されました。    ## 5. 次の内容 これで、実際のディープラーニングデモを試すための一般的なツールを使用した基本環境を用意できました。 [次の「パート2」では、Jupyterノートブックを使用してサンプルコードを実行し、ほとんどの人が最初に使用する最も古典的なモデルを手始めに、さまざまなモデルや機能の重要な概念を探っていきましょう](https://community.intersystems.com/post/run-deep-learning-demo-python3-binding-healthshare-part-ii)。 最終的に実際のケースを想像したり収集したりする前に、一般的なサンプルデータをトレーニングまたは予測する上で、最も単純なアプローチや近道を探ります。     ### 6. 謝辞   ここに記載したほとんどの作業は、静かなクリスマスと年末年始の休暇中にやり直されたものです。 ここに記載されているデモキットについては、HealthShareインスタンスへのPythonバインディングを実行することだけが追加作業として必要でした。   ### 7. 警告 **7.1 GPU ドライバーの更新**: GPUドライバーを直接更新すると、Matlabや一般的なゲーミングプラットフォームなどのほかのアプリケーションに問題が発生することがあると言われました。そこで、修正をいじることに慣れている必要があります。 **7.2 簡単なショートカット**: 可能な限り、単純なコードやショートカットを使用しようとしています。  考えられる実際のケースや問題については、モデルパラメーターの最適化やデータ正規化に関する正式な方法は常に大変なタスクであるため、ここでのデモデータセットにおいて考慮する必要はありません。     
記事
Megumi Kakechi · 2021年3月2日

$ZF(-100) で実行したコマンドの出力を取得する方法

これは InterSystems FAQ サイトの記事です。 $ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。 詳細は、以下ドキュメントをご参照ください。 コマンド・パイプ デバイスを使用する方法について こちらを %File クラスで使用した例が以下になります。 USER>killUSER>set cmd=##class(%File).%New("netstat -anp tcp")USER>write cmd.Open("rq")1USER>while 'cmd.AtEnd { write !,cmd.ReadLine() }アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:23 0.0.0.0:0 LISTENING TCP 0.0.0.0:80 0.0.0.0:0 LISTENING(中略) TCP 192.168.172.1:139 0.0.0.0:0 LISTENINGUSER> ※注意※$ZF(-1)および$ZF(-2)には、セキュリティ上の脆弱性があり、その使用が推奨されておりません。代替の機能として$ZF(-100)が用意されておりますので、そちらをご使用ください。$ZF(-100)の詳細は、以下の関連トピックをご参照下さい。 $ZF(-100)の戻り値に -1 が返って実行できません。なぜですか? $ZF(-100)の使用方法を教えてください
お知らせ
Toshihiko Minamoto · 2021年1月6日

グローバルマスターズ: Open Exchange に ZPM アプリケーションが掲載される度にボーナスポイントを贈呈

コミュニティの皆さん、こんにちは!  Open Exchange にアプリケーションが掲載されるたびに、[グローバルマスターズ](https://intersystems.influitive.com/)のポイントを獲得できるのはご存知でしたでしょうか。 つい最近、[ZPM](https://openexchange.intersystems.com/package/ObjectScript-Package-Manager) アプリケーションに対するボーナスポイントを導入いたしました。 **これで各 ZPM アプリケーションにつき 400 ポイントをゲットできるようになりました!** ポイントは自動的に調整されます。** ** ポイントと利用可能なリワードについては、グローバルマスターズでご確認ください。今すぐアクセスしましょう! グローバルマスターズについてご質問がある方は、以下のコメント欄からお気軽にお問い合わせください。  * * * グローバルマスターズに関する追加情報  グローバルマスターズ・アドボケート・ハブ - ここからスタート!InterSystems のグローバルマスターズでポイントを獲得する方法  
記事
Hiroshi Sato · 2021年10月18日

テーブル名(クラス名)やカラム名(プロパティ名)の命名規約について

これはInterSystems FAQ サイトの記事です。命名規約については、それぞれ下記のドキュメントページをご確認ください。 テーブル名(クラス名)について 識別子のルールとガイドライン - クラス カラム名(プロパティ名)について 識別子のルールとガイドライン - クラス・メンバ こちらに記載しておりますように、カラム名(プロパティ名)には英数文字およびASCII 128 よりUnicodeコードポイントの大きな文字のみ使用可能です。 名前は、英字、ASCII 128 よりUnicodeコードポイントの大きな文字かパーセント記号 (%) で始まる必要があります。 残りの文字は、英字、ASCII 128 よりUnicodeコードポイントの大きな文字または数字にする必要があります。 また、「リリース2012.2以降〜」の部分にありますように、 Property "My Property" As %String; のように " で囲むことで、使用できない記号等も使用できるようになります。 これとは別に、プロパティ名は英数字のみを使用して、SQLフィールド名のみ、別途指定することもできます。 Property iscname As %String [ SqlFieldName = isc_name ];
記事
Megumi Kakechi · 2021年4月9日

使用中のデータベースキャッシュ(グローバルバッファ)のサイズを知る方法

これは InterSystems FAQ サイトの記事です。 グローバル変数毎のデータベースキャッシュ使用量を確認するツール(^GLOBUFFユーティリティ)が用意されています。 %SYSネームスペースにて、ユーティリティを直接実行する方法と、プログラムで実行する方法があります。 ユーティリティを直接実行する方法は以下のようになります。 USER>zn "%SYS" %SYS>do ^GLOBUFF Find which globals are using the most buffers. Display the top <25>: → Enter押下 // デフォルトは上位25グローバルを表示 Total buffers: 102400 Buffers in use: 6926 PPG buffers: 77 (1.112%) // グローバル名とデータベース名、バッファに占める割合が出力されます Item Global Database Percentage (Count)1 oddDEF IRISLIB 34.551 (2393)2 rOBJ IRISLIB 15.261 (1057)3 rOBJ IRISSYS 13.630 (944): プログラムで実行する方法は以下のようになります。 set log="C:\temp\g.log" open log:"WNS" use log do display^GLOBUFF(200) ;; 200個まで計測 close log 実行結果は以下のようになります。 Total buffers: 102400 Buffers in use: 6926 PPG buffers: 77 (1.112%) Item Global Database Percentage (Count)1 oddDEF IRISLIB 34.551 (2393)2 rOBJ IRISLIB 15.261 (1057)3 rOBJ IRISSYS 13.630 (944):
記事
Tomoko Furuzono · 2021年5月26日

オンラインバックアップをコマンドから実行する方法

これは、InterSystems FAQサイトの記事です。 オンラインバックアップの API である BACKUP^DBACK ルーチンを使用して実行できます。フルバックアップを実行する例は以下の通りです。 set status=$$BACKUP^DBACK("","F","full backup","c:\backup\full.cbk","Y","c:\backup\full-log.log","NOINPUT","Y","Y","","") バックアップ成功時は戻り値に 1 が返り、失敗時は 0 が返ります。失敗時の詳細は、ログファイルをご参照ください。 また、第2引数の TYPE に C を指定すると累積バックアップ、I を指定すると差分バックアップを指定できます。ルーチン例は以下の通りです。 FULL() public { set cbk="c:\kit\InterSystemsFull"_$ZDATE($Horolog,8)_".cbk" set log="c:\kit\InterSystemsFullLog"_$ZDATE($Horolog,8)_".log" set status=$$BACKUP^DBACK("","F","full backup",cbk,"Y",log,"NOINPUT","Y","Y","","")}COMULATIVE() public { set cbk="c:\kit\InterSystemsComupative"_$ZDATE($Horolog,8)_".cbk" set log="c:\kit\InterSystemsComulativeLog"_$ZDATE($Horolog,8)_".log" set status=$$BACKUP^DBACK("","C","Comulative backup",cbk,"Y",log,"NOINPUT","Y","Y","","")}INCREMENTAL() public { set cbk="c:\kit\InterSystemsIncremental"_$ZDATE($Horolog,8)_".cbk" set log="c:\kit\InterSystemsIncrementalLog"_$ZDATE($Horolog,8)_".log" set status=$$BACKUP^DBACK("","I","Incremental backup",cbk,"Y",log,"NOINPUT","Y","Y","","")} DBACKルーチンの引数、戻り値について詳細はドキュメントをご参照ください。 BACKUP^DBACKルーチンについて
記事
Megumi Kakechi · 2021年7月12日

CSV形式のファイルからクラスインスタンスにデータをロードする方法

これは InterSystems FAQ サイトの記事です。 %SQL.Util.Procedures クラスの CSVTOCLASS() メソッドを使ってCSVファイルからデータをロードすることができます。 サンプルコードに合わせて使用方法を解説します。 以下のコードでは、c:\temp\test.csv の内容を変数 rowtype で指定した列の形式で csv.test というクラスにデータをインポートしています。 クラス csv.test が存在しなければ、実行時にそのクラスも自動的に生成されます。 クラスが存在する場合は、定義済プロパティに合わせて変数 rowtype に列の形式を指定する必要があります。 Set rowtype="Name VARCHAR(50),UID VARCHAR(50), PHONE VARCHAR(50)" Set filename="c:\temp\test.csv" Set classname = "csv.test" Do ##class(%SQL.Util.Procedures).CSVTOCLASS(,rowtype,filename,,,1,classname) 以下の関連トピックもあわせてご参照ください。 プログラムでCSVファイルをテーブルにインポート/テーブルからCSVファイルにエクスポートする方法 プログラムでCSVファイルを1行ずつ読み込む方法 大量データのロードを高速化する方法
記事
Megumi Kakechi · 2021年10月8日

ターミナルでプログラム実行中にエラーが発生した際、プロンプトを元に戻す方法

これは InterSystems FAQ サイトの記事です。 ターミナルでルーチンを実行し、プログラム上でエラーが発生した時に、エラートラップを適切に設定していない場合、以下のようなデバッグモードになります。 USER>do ^error1 write A^a+2^error1 *AUSER 2d0> この状態から、ルーチン起動の前の状態に戻るにはQuitコマンドを入力します。 USER 2d0>Quit またエラーが発生したルーチン内でトランザクション処理を行なっている場合には、以下のような表示のプロンプトになります。 USER>do ^error1 write A^a+3^error1 *ATL1:USER 2d0>qTL1:USER> このようにプロンプトの先頭にTL+数字が表示されている場合には完了していないトランザクションがあることを示しています。 この状態ではQuitコマンドを入力しても元のプロンプトには戻りません。 最初にTrollbackコマンドを入力し、その後でQuitコマンドを実行することで元のプロンプトに戻ります。 TL1:USER>Trollback
記事
Megumi Kakechi · 2021年9月27日

Windows Serverのリリースの違いは、サポートバージョンに影響しますか?

これは InterSystems FAQ サイトの記事です。 インターシステムズは、特定のオペレーティングシステムのバージョンの特定リリースに対して、製品の検証は実施しておりません。 特定リリースとは、例えば、Windows Server 2003 R2やWindows Server 2008 R2などを指します。 これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。 特別な状況の詳細は、下記弊社ホームページのサポート情報に明記しています。 最新プラットフォーム情報とリリースノート 明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、特定リリースもサポート対象となります。 以下の関連トピックもあわせてご覧ください。 【FAQ】どんなプラットフォームで動作するのですか? 【FAQ】Windowsのサービスパックの適用は、製品サポートバージョンに影響しますか?
記事
Mihoko Iijima · 2020年10月15日

サーバ側ロジック(ObjectScript)で SQL を実行するときの DATE 型や TIME 型カラムの操作方法

これは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をご利用ください。 (1) 埋め込みSQLを利用する場合 埋め込みSQLを利用して表示形式を切り替えるには、#sqlcomple select を使用します。指定できる値は以下の通りです。 Logical(デフォルト) Display ODBC Runtime ドキュメント(IRIS):埋め込み SQL のコンパイルとマクロ・プリプロセッサ【IRIS】ドキュメント:埋め込み SQL のコンパイルとマクロ・プリプロセッサ #sqlcompile select=ODBC&sql(declare C1 Cursor for select ID,Name,DOB into :pid,:name,:dob from Sample.Person where ID<=5)&sql(open C1)for { &sql(fetch C1) if SQLCODE'=0 { quit }  //表示例)1-Mastrolito,Susan T.-2013-01-01 write pid,"-",name,"-",dob,!}&sql(close C1) (2) ダイナミックSQLを利用する場合 %SQL.Statement を利用したダイナミックSQLで表示形式を切り替えるには、%SelectModeプロパティを利用します。※このプロパティは%Execute()の実行前に設定している必要があります。 設定できる値は以下の通りです。 0 :論理モード 1 :ODBCモード 2 :表示モード SAMPLES>set sql="select ID,Name,DOB from Sample.Person where ID <= 5" SAMPLES>set stmt=##class(%SQL.Statement).%New() SAMPLES>set st=stmt.%Prepare(sql) SAMPLES>set rset=stmt.%Execute() SAMPLES>do rset.%Display()ID Name DOB1 Gallant,Yan N. 421462 Waal,Umberto G. 453593 Jenkins,Sam A. 374044 Marks,Milhouse B. 520435 Hernandez,Phyllis W. 64590 5 Rows(s) AffectedSAMPLES> (3) クラスクエリを使用する場合 クラスクエリで表示形式を切り替えるには、Query定義のパラメータ:SELECTMODE を利用します。指定できる値は以下の通りです。 RUNTIME(デフォルト) LOGICAL DISPLAY ODBC 定義例は以下の通りです。 Query NewQuery1() As %SQLQuery(SELECTMODE = "ODBC"){select ID,Name,DOB from Sample.Person where ID<=5} (4) 実行中プロセスに対して表示形式を切り替える方法 システムオブジェクト $SYSTEM.SQL.SetSelectMode() を利用して、カレントプロセスの表示形式を変更できます。引数、戻り値は以下の通りです。 第1引数に 0(Logical)、1(ODBC)、2(Display)を指定します。 第2引数は、実行結果が%Statusで設定される参照渡しの引数です。 戻り値には、現在の表示モードの番号が返ります。 詳細は下記ドキュメントページをご参照ください。 InterSystems SQL の基礎 - データ表示オプション【IRIS】CachéSQLの基礎_データ表示オプション // デフォルトからODBC形式に変更SAMPLES>set cm=$system.SQL.SetSelectMode(1,.st)SAMPLES>set sql="select ID,Name,DOB from Sample.Person where ID <= 5"SAMPLES>set stmt=##class(%SQL.Statement).%New()SAMPLES>set st=stmt.%Prepare(sql)SAMPLES>set rset=stmt.%Execute()SAMPLES>do rset.%Display()ID Name DOB1 Gallant,Yan N. 1956-05-232 Waal,Umberto G. 1965-03-103 Jenkins,Sam A. 1943-05-304 Marks,Milhouse B. 1983-06-285 Hernandez,Phyllis W. 2017-11-03 5 Rows(s) AffectedSAMPLES> ※プロセスに対して表示形式を切り替えた後、各SQL実行方法で表示形式を変更した場合は、最後に指定した表示形式が採用されます。 (5) ObjectScript 関数を使用して、表示形式を変換する方法 ObjectScript の表示変換用関数を利用して、内部形式⇔表示形式の変換を行う方法もあります。 日付用関数では 表示→内部形式 $ZDATEH(yyyymmdd,8) または、$ZDATE(yyyy-mm-dd,3) 内部→表示形式 YYYYMMDDの結果を取得する場合:$ZDATE(+$Horolog,8)YYYY-MM-DDの結果を取得する場合:$ZDATEH(+$H,3) 時間用関数では 表示→内部形式 $ZTIMEH("HH:MM:SS") 内部→表示形式 HH:MM:SS の結果を取得する場合:$ZTIMEH($piece($Horolog,",",2)) 日付時刻を取り扱う $ZDATETIME()と$ZDATETIMEH()関数もあります。 日付用関数の詳細は下記ドキュメントページをご参照下さい。ObjectScript関数【IRIS】ObjectScript関数 SAMPLES>write $horolog63895,34979SAMPLES>write $ZDATE(+$horolog,8) // yyyymmddの形式へ変換20151209SAMPLES>write $ZDATE(+$horolog,3) // yyyy-mm-ddの形式へ変換2015-12-09SAMPLES>write $ZDATEH(20151209,8) // yyyymmddから内部形式へ変換63895SAMPLES>write $ZDATEH("2015-12-09",3) // yyyy-mm-ddから内部形式へ変換63895SAMPLES>write $ZTIME($piece($horolog,",",2)) // 内部形式から時刻への変換09:44:16SAMPLES>write $ZTIMEH("10:01:11") // 表示時刻から内部形式への変換36071SAMPLES>write $ZDATETIME($horolog,8) // $horologを利用した日付時刻の変換20151209 09:45:15SAMPLES>write $ZDATETIME($horolog,3)2015-12-09 09:45:16SAMPLES>
記事
Mihoko Iijima · 2021年3月28日

FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介

皆さんこんにちは! この記事でご紹介する「開発環境テンプレート」は、最近 医療 IT で注目を集めている 医療情報交換標準規格 FHIR を体験できるコンテナです。 一式は、こちら(https://github.com/Intersystems-jp/IRIS-FHIR-Oximeter-Template)で公開しています。 コンテナビルド時、InterSystems IRIS for Health コミュニティエディションを使用した FHIR R4 リソースリポジトリの用意と、REST 用エンドポイントが用意されます。 作成されるエンドポイントに対して、REST クライアントから直接 FHIR R4 リソースリポジトリへアクセスすることもできますし(使用例はこちら/ビデオの解説はこちら)、Patient リソースと Observation リソースの操作体験が行えるサンプル Web アプリケーション(使用例はこちら/ビデオの解説はこちら)もコンテナに含まれていますので、お好みの方法で操作を体験できます。 この開発環境テンプレートでは、さらに! FHIR サーバーサイドアプリケーション(=プロダクション)のサンプルも用意しています(図例はこちら)。 プロダクションは、新生児につけたパルスオキシメーターの測定値が定期的に送信されてくることを仮定して作られています。 測定値が低い場合、先天性心疾患の兆候である可能性もあるため、血中酸素飽和度が 90% を下回った場合、即時対応を依頼するための通知用メッセージ(HL7 の 2.5:SIU_S12 メッセージ)を作成しファイル出力する流れを用意しています。 コンテナ開始方法、サンプル Web アプリケーションの使用方法、プロダクションを流れるメッセージのトレース方法などは、ページ下にあるビデオでも解説しています。ぜひご覧ください。 解説ビデオ 1(開発環境テンプレートの使い方) 【目次】 00:00 ~ 00:57 提供内容概要説明 00:57 ~ 02:42 開発環境テンプレートの開始方法 02:42 ~ 04:38 VSCode からサンプルWebアプリケーション/管理ポータルの開き方 (VSCode では、ObjectScript エクステンションを使用します。インストール方法/接続先設定方法についてはこちらの記事をご参照ください。) 04:38 ~ 06:37 サンプルのWebアプリケーションでできることと使い方 06:37 ~ 07:43 サンプルで行っているデータ追跡の内容説明 07:43 ~ 09:57 FHIRサーバサイドアプリケーション:プロダクションの実行内容紹介(Interoperabilityメニューの紹介) 09:57 ~ 11:52 ビジネスプロセス(処理の調整を担当するコンポーネント)の処理概要 11:52 ~ 13:00 パルスオキシメーターの値が 90% 未満の場合にデータ変換でHL7を作成する流れ 13:00 ~ パルスオキシメーターのデータ登録後のメッセージの流れ確認(トレース画面) 解説ビデオ 2(REST クライアントから FHIR R4 リソースリポジトリにアクセスする方法) 【目次】 00:00 ~ 00:20 提供内容概要説明 00:20 ~ 01:40 RESTクライアントからのアクセス:サンプルファイルについて 01:40 ~ 04:35 Patient リソースの POST と入力内容確認のためのGETの例 04:35 ~ 06:15 Observation リソースの POST(Patient リソースに関連付けて POST) 06:15 ~ Bundle リソースの POST(Patient リソースの PUT と Observation リソースの POST を Bundle リソースを利用して更新) 参考にしたサイト コンテナに含まれるサンプル Web アプリケーションは、Henrique Goncalves Dias さんにより開発された iris-fhir-portal をインストール(zpmコマンドを利用)し、日本語表示への変更や Bundle リソース POST の処理を追加しています。 Henrique Goncalves Dias さんの iris-fhir-portal は、開発者コミュニティの OpenExchange に公開されていてどなたでもご利用いただけます。 また、iris-fhir-portal については、Henrique Goncalves Dias による日本語解説ページもご用意いただいています(エンリケさん!ありがとうございます!)。 ぜひご参照ください。 関連情報 FHIR サーバサイドアプリケーションの中で使用していた「プロダクション」について詳しくは、【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!をご参照ください。 InterSystems IRIS for Health での、FHIR R4 リソースリポジトリを GUI で作成する手順については、Azure上でIRIS for Healthをデプロイし、FHIR リポジトリを構築する方法をご参照ください。 REST クライアントから FHIR R4 リソースリポジトリにアクセスする方法については、こちらのビデオをご参照ください。 お世話になっております。 gitに公開されている資材より、IISを利用しての環境構築を行いました。 IISは下記の設定を行っております。 @Kosaku.Ikeda さん IISから接続をお試しいただきありがとうございます。また設定画面の共有もありがとうございます!
記事
Toshihiko Minamoto · 2022年2月1日

DockerマイクロサーバーとしてIRIS Native APIを使用したWebSocketクライアントJS 

これはIRIS 2020.2で動作するコーディングの例です 最新バージョンとは同期していません。 また、InterSystemsのサポートによるサービスはありません 動作中のデモを確認できるデモビデオを以下で公開しています。https://youtu.be/dSV-0RJ5Olg   皆さんこんにちは 完全に新しいIRISイメージと**たった4行**のDockerコマンドを使って実行するイメージを使ってマイクロサービスのデモを行いましょう。  2020年6月1日 - rcc すべてのパーツを1つのコンテナイメージにまとめたコンパクトなオールインワンバージョンが公開されました。 詳細はこちら: [IRIS-NativeAPI-Nodejs-compact](https://openexchange.intersystems.com/package/IRIS-NativeAPI-Node-js-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](https://docs.intersystems.com/iris20201/csp/docbookj/DocBook.UI.Page.cls?KEY=BJSNAT)の使用。特に[グローバル配列を操作](https://docs.intersystems.com/iris20201/csp/docbookj/DocBook.UI.Page.cls?KEY=BJSNAT_globals)する場合 * 直接トリガーされたクライアントからサーバー設計への変更 * マイクロサービス/マイクロサーバーの例として、結果を別のdockerイメージに配置 * マイクロサービスの実行を制御するための単純なインターフェースをIRISに追加 ユーティリティをIRISホストで直接呼び出す代わりに、System Interoperability(別名 ENSEMBLE)で通常行うようにして、work-packagesをMicroServiceに送信します。 もちろん、2つ以上のWebSocketサーバーオプションがあります。 WebSocketクライアントサービスがジョブを完了したら、その結果を取得します。 組み込みのWebSocketクライアントに対するメリットは、すべてのネットワーク、セキュリティ、ファイアウォールの問題を主要なデータサーバーに寄せ付けないことです。 Node.js がこの分野で持っている経験と品質については言うまでもありません。 デモは デフォルトのechoサーバーとして使用します。 次に、テキストを数行入力します。 独自のテキストの任意の場所に「Lorem Ipsum」を追加して、コンテンツを長くすると良いでしょう。 そして、それをサービスに送信して、エコーを待ちます。 また、制御プログラムをExitまたはサービスをStopする前に、 テキストを変更するオプションもあります。 この処理はすべて非同期で実行されます。 完了を待たずに、それまでにechoサーバーから受信した内容を、リスナーが 定期的に表示します。 **インストール**するには、以下が必要です。 * IRISのdocker イメージ(intersystems/iris-community:2020.2.0.199.0) * WebSocketマイクロサーバーのdockerイメージ(docker pull rcemper/rcc:demoJS) * 簡略化されたinit: **init**に次のdockerコマンドを実行してください。 docker run --name ini1 --init -it --rm \ -privileged -v $(pwd):/external \ rcemper/rcc:demoJS bash /rcc/init.sh ### 元のアプローチは有効ではありますが、必須ではありません。 ### * [IRIS-Docker-micro-Durability](https://openexchange.intersystems.com/package/IRIS-Docker-micro-Durability)を利用するためにOpen Exchangeまたはここから入手したWSockClientMicroSV.tar.gz * demoディレクトリの確認: Dockerイメージはnobodyであるため、保護をrwx (chmod 777) に設定します。### これを**実行**するには、まず**demoディレクトリ**からIRISを起動します(-dまたは-itを実行して動作を観察します)。(!) docker run --name iris1 --init --rm -d \ -p 52773:52773 -p 51773:51773 \ -v $(pwd):/external \ intersystems/iris-community:2020.2.0.199.0 \ -b /external/pre.copy 次にMicroServerを起動します。 docker run --name rcc1 --init -it --rm \ rcemper/rcc:demoJS /usr/bin/node /rcc/nodejs/WSockIris.js $(hostname -I) . **-it**を使って起動したため、以下が表示されます。 platform = linux: ubuntu ***************************** Connect to IRIS on: 192.168.0.23 Successfully connected to InterSystems IRIS. *** wait 3sec for request *** ******* Startup done ******** *** wait 3sec for request *** *** wait 3sec for request *** 次に、新しいLinuxターミナルで制御アプリケーションを実行します。 docker exec -it iris1 iris session iris ZSocket 以下が表示されます。 *** Welcome to WebSocket Micoservice demo *** Known Hosts (*=Exit) [1]: 1 wss://echo.websocket.org/ 2 --- server 2 ---- 3 --- server 3 ---- select (1): ==> wss://echo.websocket.org/ # Enter text to get echoed from WebSocketClient Service Terminate with * at first position or get generated text by % or append new text with @ 1 hello socket microServer 2 now you got 2 lines 3 * Select action for WebClient Service New EchoServer (E), Send+Listen(S),New Text(N),Exit(X), Exit+Stop Client(Z) [S]s %%%%%%%%%%%%%%%%%%%%%%%%%% ******* 0 Replies ******* ******* 2 Replies ******* 1 hello socket microServer 2 now you got 2 lines Select action for WebClient Service マイクロサービスでは以下が表示されます。 *** wait 3sec for request *** echoserver: wss://echo.websocket.org/ ** Lines to process: 1 ** ********* next turn ********* * WebSocket Client connected * ****** Client is ready ****** Line: 1 text> 'hello socket microServer ' Received: 1 > 'hello socket microServer ' Line: 2 text> 'now you got 2 lines ' Received: 2 > 'now you got 2 lines ' ******* lines sent: 2 ****** *** replies received: 2 **** *** wait 3sec for request *** 事後警告。 イメージのバージョンを必ず確認してください!私はntersystems/iris-community:2020.2.0.204にハマってしまいました。 注意: すべてのスクリプトはLinuxでのみテストされています! ![](/sites/default/files/inline/images/images/image(531).png)
質問
Kota Torikai · 2021年3月5日

Ubuntu 20.04.2でのDocker, IRIS(DL製品版)導入-起動までのメモ

<Ubuntu-Docker> https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d 手順を参照 手順2.1-2.5までを実行→Docker環境ができる <Docker-IRIS> 1. 端末などでディレクトリ /home/usr/docker/iris2020.3 を作成(ディレクトリ名は任意) 2. 上記ディレクトリに、インターシステムズから送られるDLサイトからダウンロードしたirishealth_ml-2020.3.0.304.0-docker.tar.gz を置く 2.1 上記ディレクトリに、データベース・設定を保存するディレクトリを作成(/home/usr/docker/iris2020.3/mgr とする) 3. 上記ディレクトリに、ライセンスされたキーであるiris.keyを置き、端末コマンドcdで上記ディレクトリに移動 4. コマンド実行(tar.gzのままimageのload) sudo docker load -i /home/usr/docker/iris2020.3/irishealth_ml-2020.3.0.304.0-docker.tar.gz 5. コマンドdocker imagesでREPOSITORY:TAG名称を確認 sudo docker images intersystems/irishealth-ml:2020.3.0.304.0 runで使用する名称はREPOSITORYとTAGの間を : で繋いだものになる 6. コマンド実行(run) ポート、ディレクトリ、image名称を正確に入力する --env ISC_DATA_DIRECTORY で2.1で作成したディレクトリを指定 sudo docker run --name iris --detach --publish 52773:52773 --volume /home/usr/docker/iris2020.3:/external --env ISC_DATA_DIRECTORY=/external/mgr intersystems/irishealth-ml:2020.3.0.304.0 --key /external/iris.key --name iris の"iris"は起動名(任意) 7.コマンド実行(start) 起動名を合わせる sudo docker start iris 8. docker psコマンドで起動したかを確認 sudo docker ps 9.Webブラウザ(UbuntuデフォルトはFireFox)のURLに以下を入力して初期起動 http://localhost:52773/csp/sys/UtilHome.csp デフォルトログインは login: _SYSTEM, pass: SYS で、起動時に変更を求められるため、これを変更すると管理ポータルが表示される (52773 ポートはデフォルト、もし変更していれば適宜合わせる) 10.docker exec によるIRISターミナル接続方法sudo docker exec -ti iris iris terminal iris (最初のirisは起動名、後ろ2つのirisは指定されたプログラム名であることに注意) 鳥飼先生、 貴重なご投稿ありがとうございます。これからDockerに取り組もうとしているコミュニティの方々に大変役に立つ記事だと思います。 さて、すでにご存知かもしれませんが、1点念のためにお伝えした方が良いと思い、返信します。 docker環境でのシステムデータベースや設定ファイルは、コンテナの内部に作成されますので、docker rm コマンドでコンテナを削除すれば、コンテナstartから更新された設定などもなくなってしまいます。また、dockerコンテナ内のファイルとして作成したデータベースも同様です。 システムデータベースをコンテナの外部に構築し、コンテナのライフサイクルを越えてシステムデータベースや各種設定を維持するには、"Durable %SYS"と呼ばれる仕組みを使います。 具体的には、 sudo docker run --name iris --detach --publish 52773:52773 --volume /home/usr/docker/iris2020.3:/external --env ISC_DATA_DIRECTORY=/external/iris intersystems/irishealth-ml:2020.3.0.304.0 --key /external/iris.key と ISC_DATA_DIRECTORY環境変数に外部ファイルシステムのディレクトリを指定します。そうすると、コンテナをrmした場合や、イメージを更新して新たにコンテナを作成した場合も、システムデータベースや設定ファイルの内容はが引き継がれます。 自分でデーターベースを作成する際に、/externalファイルシステムに作成すると、そのデータベースもコンテナのライフサイクルを越えて保持されます。 以上、念のためご確認ください。 堀田様、 お忙しい所フォローありがとうございます。実はご指摘の(データベース等をdockerサイクルによらず保存する方法)について質問をしようとしていたところで、大変助かります。 利用法のデフォルトで記載されているとよい内容と思いますので、編集して追記させていただきます。
記事
Mihoko Iijima · 2021年6月17日

【GettingStarted with IRIS】チュートリアルページのご紹介

開発者のみなさん、こんにちは! 2023/2/20追記 チュートリアルページが新しくなり「Developer Hub」に変わりました! チュートリアルの種類や使い方については、「InterSystems Developer Hub:クリック1回で開始できるチュートリアル(4種)のご紹介」をご参照ください。 以下にご紹介しているチュートリアルページは、現在非公開となりますので、Developer Hub をご利用ください! この記事では、ちょっと IRIS を使ってみたい・・と思う方にピッタリのチュートリアルやビデオをまとめたページ「Getting Started with InterSystems IRIS Data Platform」についてご紹介します。 Getting Started with InterSystems IRIS Data Platform (以下、GettingStarted ページと略します)では、ユーザ登録後からすぐに操作できる無料の体験環境(以降、Sandbox)をご利用いただけます。 Sandbox では、GettingStarted ページの各種チュートリアルをブラウザ上で操作できる Sandbox 専用 IDE からお試しいただけ、お手元環境の準備不要!すぐに体験を開始できます!💨 以下の順序で GettingStarted ページについての紹介記事を掲載します。 GettingStarted ページですが、翻訳機能が含まれていないページであるため(ブラウザの翻訳機能はご利用いただけます)英語による解説が中心となりますが、このシリーズ記事では、画面の使い方などを日本語でご紹介していきます。 オリジナルの英語ページに変更があった場合、このシリーズ記事でご紹介している日本語例と異なる内容が出てくる場合もありますので、その際は、ぜひコミュニティの返信欄でお知らせいただけると助かります。 チュートリアルには順番はありませんので、気になる項目から読み始めていただき、ぜひ Sandbox で操作をご体験ください! (1) GettingStarted ページでできることについて ≪👈この記事でご紹介します≫ (2) 無料体験環境:Sandbox 開始手順について (3) チュートリアルを始めよう! その1:Full Stack チュートリアル その2:マルチモデルチュートリアル その3:Interoperability(相互運用性)チュートリアル その4:各言語からのアクセスを試すチュートリアル その5:MQTT を使った遠隔モニタリング(IRIS の MQTT アダプタを試してみよう!) ※ その2、その4 のチュートリアルの使い方解説は、近日公開予定です。 (1) GettingStarted ページでできることについて GettingStarted ページでは、これから IRIS の操作を開始する方を対象に、ご興味の内容に合わせて操作をご体験いただけるチュートリアルと、チュートリアルに沿った解説ビデオをご用意しています(日本語字幕への表示切替があるビデオもあります)。 チュートリアルは、サンプルコードが用意されていますので、コード解説を読みながら実行を試したり、コードの一部がコメント化されていたり、貼り付けながら完成させていく流れになっていますので、ざっくりとどんな流れで開発が進んでいくのか?を確認されたい場合にもピッタリな内容です。 コードを実行する環境は、GettingStarted ページで作成いただける無料体験環境(Sandbox)をご利用いただけます。 GettingStarted ページの Sandbox には利用期限があり、3日(72時間)を経過すると自動消去されます。 体験メニューについて GettingStarted ページを開くと、画面左に目的別体験メニューが表示されます。上から順番にご紹介していきます。 フルスタックチュートリアル フルスタックチュートリアルでは、小さな製造会社(焙煎したてのコーヒーを販売する会社)の基本的な情報管理インフラを作成していくテーマを用意しています。 チュートリアルでは、在庫管理を行うためのテーブルを作成し、SQL でデータを登録する流れや在庫調整、販売情報表示など行えるように RESTful サービスを作成していきます。 チュートリアルの最終ステップでは JavaScript フレームワークを利用して、職人が焙煎したコーヒー豆を販売するオンラインストアを構築していきます。 チュートリアルを試す手順については [その1:Full Stack チュートリアル] の記事でご紹介しています。ぜひご参照ください。 サンプル:https://github.com/intersystems/quickstarts-full-stack パフォーマンスの向上(ビデオとPDFのみ) InterSystems IRIS を利用して大量データをリアルタイムに取り込むスピードとパワーについてをご紹介するデモを含めたビデオをご用意しています。 チュートリアルは含まれていませんが、パフォーマンステストのサンプルは Open Exchangeで公開されています。お手元の環境でお試しいただくこともできます。 あらゆるデータモデルに対応(マルチモデルのチュートリアル) IRIS のマルチモデルに対応できるデータモデルを利用することで、アプリケーションの各タスクに合わせて最適なアクセス方法をご選択いただけます。 一般的によく利用される SQL はもちろん、オブジェクトやキーバリューでのアクセスをご選択いただけます。 マルチモデルのアクセスは、各言語(Python/Node.js/Java/.Net)から利用でき、このメニューの中では、お好みの言語からのアクセス方法をご体験いただけるチュートリアルをご用意しています。 各言語ごとにサンプルは用意されています。詳しくは、Multi-Model QuickStart 言語別の説明をご参照ください。 システム間の接続(Interoperability) 異なるシステム同士でデータ共有したり、処理を連携させる仕組みを作成することができる IRIS の Interoperability(相互運用性)メニューの利用例の解説ビデオや、システム連携をご体験いただけるチュートリアルをご用意しています。 チュートリアルでは「信号無視の違反を自動検出する仕組み」をテーマとして違反者が緊急車両かどうかを判断し、緊急車両以外に違反チケットを発行する流れを体験できます。 簡単に流れを体験いただくため、ファイル入力による情報入力を利用し、違反チケットの発行にはファイル出力を利用しています。 チュートリアルを試す手順については [その3:Interoperability(相互運用性)チュートリアル] の記事でご紹介しています。ぜひご参照ください。 サンプル:https://github.com/intersystems/Samples-Integration-RedLights 機械学習の活用(ビデオ中心) IRIS の AutoML である Integrated ML を利用することで、SQL に似た構文を利用して機械学習を開始することができます。 このメニューの中では、Integrated ML 概要をご紹介するビデオと、Integrated ML を活用した再入院を予測するデモをご紹介するビデオをご用意しています。 再入院予測のサンプルも公開されています。Docker / docker-compose / Git がインストールされた環境であれば、お試しいただけます。 詳細は、オンラインラーニングページをご参照ください。 IRISにアクセスできる言語の確認 このメニューでは、各言語(Java、C#/.NET、Node.js、Python、ObjectScript)から IRIS へアクセスする方法を体験できるチュートリアルをご用意しています。 各種設定について IRIS を利用して開発を開始するために必要な開発環境セットアップのための情報をまとめたページです。 チュートリアルには順番はありません!気になる項目からぜひ開始してください! GettingStarted ページの Sandbox を開始する手順については、次の記事をご参照ください。