#InterSystems IRIS

1 フォロワー · 1.3K 投稿

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

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

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

記事 Toshihiko Minamoto · 12月 30, 2020 5m read

皆さん、こんにちは

前回のつづきとしてESP8266からMQTTブローカーに接続し、データを送信する部分の内容ついて説明したいと思います。

今回は温度湿度センサーのDHT11と気圧センサーのBME180を使って気温、湿度、気圧を計測し、1分に1回、MQTTブローカーに送信しています。

ハードウェア

回路図は以下のようにDHT11のDATAピンはGPIO、BMP180のSDA,SCLピンはそれぞれGPIO2,GPIO5に接続しました。
電源は紆余曲折の末、単純にmicro USBから供給し、NodeMCUのボードから出力されている3.3Vをそれぞれのセンサーで使用しています。

     

今回は外気温を測りたかったので、ケースに入れた方が良いと思いましたが、ブレッドボードだと見合った箱がありませんでした。
そこで、手元にあったユニバーサル基板にESP8266をはんだ付けし、100均で購入した食品保存用の箱に入れてみました。

       

箱からUSB電源の接続やセンサーとリード線を出す必要がありますので、ニッパで適当に欠きとっています。
センサーは各ピンとリード線をはんだ付けし、熱収縮チューブで覆っています。BMP180の表面はそのままですが...

         

ソフトウェア

ESP8266のプログラムはArduino

0
0 2345
お知らせ Mihoko Iijima · 12月 28, 2020

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

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

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

 

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

🥇 1位 - $2,000 は iris-analytics-notebook を開発された @José Roberto Pereira さんに贈られました!

🥈 2位 - $1,000 は website-analyzer を開発された @YURI MARX GOMES さんに贈られました!

🥉 3位 - $500 は iris-analytics-package を開発された @Henrique Dias Gonçalves Dias さんに贈られました!

🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。

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

0
0 117
記事 Mihoko Iijima · 12月 28, 2020 3m read

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

データベース暗号化は、ディスクヘの書き込みまたはディスクからの読み取りで暗号化と復号が実行されるため、アプリケーションのロジックに手を加える必要はありません。

この機能のドキュメントについては、以下ご参照ください。

マネージド・キー暗号化【IRIS】

マネージド・キー暗号化


暗号化データベース作成までの流れは、以下の通りです。

(1) 暗号化キーの作成

  • (a) 管理者 ユーザ名/パスワード
  • (b) 暗号化キーファイル

(2) 暗号化キーの有効化

(3) 暗号化されたデータベースの作成

暗号化データベース作成後の運用のための設定は以下の通りです。

〇 データベース暗号化の起動設定(暗号化キーの有効化をどのように行うか)

暗号化されたデータベースは、"暗号化キーの有効" が行われてアクセスできるようになります。
既定の設定では、"暗号化キーの有効"を行いませんので、以下3種類の方法から選択します。

① キーを有効化しない起動の構成

既定の設定のまま、インスタンス起動時に "暗号化キーの有効" が行われません。
暗号化されたデータベースをマウントする前に管理ポータルなどから "暗号化キーの有効" を行う必要があります。

以下の場合、この運用は適応できません。

0
0 388
記事 Henrique Dias · 12月 25, 2020 2m read

皆さん、こんにちは。

iris-analytics-パッケージには、「企業が自社のソフトウェアで InterSystems Analytics の サポートをいかに簡単、そしてシンプルに利用できるかを示す」意図があります。

新しいシンプルなソリューションを作成したり、OpenExchange を使用して既存のソリューションを改善したりすることもできます。

InterSystems IRISにアップグレードしている企業のほとんどは、ツールが提供するすべての機能を活用しています。

このコンテストでの私のもう一つのターゲットは、インターシステムズを長く利用していても、自分たちがアクセスしている可能性をフルに活用していない企業です。

このプロジェクトは、他のプロジェクトをベースにしてインスピレーションを得て作成しました。ありがとう  @Evgeny Shvarov @Guillaume Rongier @Peter Steiwer 

それらのプロジェクトが一緒になって、このウィザードになった。
 

インポートウィザード

メインページはシンプルで、そこに至るまでのプロセスがわかりやすい。

ウィザードを適切に使用するためのフィールドがいくつかあります。

  1. CSV ファイルを選択します。
0
0 541
記事 Toshihiko Minamoto · 12月 25, 2020 8m read

InterSystems は自社が提供する InterSystems IRIS の Dockerイメージについて、Linux 環境での使用のみをサポートしています。 Docker for Windows は Linux プラットフォームのようにコンテナをネイティブプロセスとして実行するのではなく、Windows の仮想化機能である Hyper-V で実行される Linux VM を作成してコンテナをホストします。 このような追加レイヤーによって複雑度が増しているため、InterSystems は現時点で Docker for Windows をサポートすることができません。

ただし、テストやその他の特殊な目的のために InterSystems の IRIS ベースのコンテナを Docker for Windows 環境で実行する必要があることは私たちも理解しています。 この記事では、InterSystems が提供するコンテナイメージの使用に関して InterSystems が認識している Docker for Windows と Docker for Linux の違いについて説明します。 その他にも予期しない問題が発生する可能性はあります。

0
0 676
記事 Toshihiko Minamoto · 12月 24, 2020 6m read

皆さんこんにちは。

IRIS 2020.1からMQTTアダプタが新たに追加されました。MQTTはPublish/Subscribe型のシンプルで軽量なメッセージングプロトコルです。帯域が低いネットワーク環境やArduinoやRaspberry PIといったワンボードマイコンやシングルボードコンピュータなどでも動作できます。
今回はクラウド上のUbuntuサーバにIRISをインストールし、MQTTアダプタを使いEsp8266というマイコンで取得した温度、湿度、気圧データをIRIS上のデータベースに登録する方法について説明したいと思います。

アーキテクチャ

今回のアーキテクチャは以下の通りです。

 

 

データを送受信するマイコンやアプリケーションにMQTTクライアントを組み込み、MQTTクライアントがMQTTブローカーというメッセージを転送するソフトウェアに接続します。

同じMQTTブローカーにつながっているMQTTクライアントにてメッセージを送信したい場合はPublishメッセージを使用し、メッセージと共にトピックと呼ばれるメッセージの種類を表す文字列を送信します。情報を受信したい場合はSubscribeメソッドを使用し、受信したいトピックを指定します。

IRISのインストール

今回、Ubuntu版のIRIS 2020.1 community editionをインストールしています。

0
0 1721
記事 Toshihiko Minamoto · 12月 21, 2020 9m read

$LIST のフォーマットと%DynamicArray、%DynamicObject クラス

IRIS には、様々なデータ値を含むシーケンスを作成する方法がいくつかあります (以前は Cache にもありました)。  長年に渡り使用されているデータシーケンスの 1 つに $LIST の文字列があります。  より最近のデータシーケンスには %DynamicArray クラスと %DynamicObject クラスがあり、両者ともに JSON の文字列表現に対応する IRIS サポートの一部となっています。  これら 2 つのシーケンスにはそれぞれ非常に異なるトレードオフがあります。

$LIST の文字列形式

$LIST 形式は、かつてメモリアドレスのスペースが小さいだけでなく、ディスクドライブも小さく、読み取り速度が遅かった時代に考案されました。  $LIST の形式は、複数の異なるデータ型で構成されるシーケンスをバイト数を可能な限り抑えながら 8 ビットの一般的な文字列にパッキングするためにデザインされました。

$LIST のシーケンスは、ObjectScript の $LISTBUILD 関数を使って作成します。 

$LIST の文字列の最も重要な機能は、データを 8 ビットの値で構成される最小のシーケンスにぎっしりパッキングできるという点です。

0
0 1010
お知らせ Mihoko Iijima · 12月 21, 2020

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

2020年最後の IRIS プログラミングコンテストの投票が始まりました!
🔥 これだ!と思う一押し作品に投票お願いします! 🔥

 

投票方法は?

今回から投票方法が新しくなりました!
Expert Nomination または Community Nomination を選択いただき、どの作品がどの順位になるかを指定しながら投票します。

Community Leaderboard:







順位 ポイト
1位 3点
2位 2点
3位 1点

 

そして、エキスパートノミネーションからの投票は以下の通りとなりました。

Experts Leaderboard:







エキスパートレベル

順位
1位 2位 3位
GM、モデレーター、プロダクトマネージャーのVIPレベル 9点 6点 3点
グローバルマスターズのエキスパートレベル 6点 4点 2点
グローバルマスターズのスペシャリストレベル 3点 2点 1点

 

エキスパートリーダーボードの投票はコミュニティリーダーボードにもポイント(1位3点、2位2点、3位1点)が加算されます。

0
0 115
記事 Mihoko Iijima · 12月 20, 2020 1m read

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

ミラーリングが同期の対象とするのはデータベースファイルのみです。

アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、

  1. NASなどを導入して共有ディスク上にそれらのファイルを配置する方法
  2. または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法

などの方法が考えられます。 また、2の方法では Windows 上では RoboCopy、Linuxの場合には rsync という同期ソフトを使った実例があります。

0
0 107
記事 Mihoko Iijima · 12月 20, 2020 3m read

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

揮発性テーブル(多数のINSERT、DELETEが行われるテーブル)では、ビットマップ・インデックス用ストレージは徐々に効率が低下する可能性があります。

例えば、以下の定義からなるデータが数千件あり、一定期間保持した後 TRUNCATE TABLE で一括削除を行うオペレーションが繰り返し行われているとします。

Class MyWork.MonthData Extends (%Persistent, %Populate)
{
/// 満足度
Property Satisfaction As %String(VALUELIST = ",満足,やや満足,やや不満,不満,");
/// 年齢
Property Age As %Integer(MAXVAL = 70, MINVAL = 20);
Index AgeIdx On Age [ Type = bitmap ];
}

 

INSERT によってできたビットマップ・インデックスのストレージのイメージ(一部)は以下の通りです。

【INSERT時】
^MyWork.MonthDataI("AgeIdx",20,1) = $zwc(401,120,4,75,102,10,<省略> 958)/*$bit(5,76,103,107・・・
^MyWork.
0
0 318
記事 Megumi Kakechi · 12月 17, 2020 1m read

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

選択性(または Selectivity)の数値とは、カラムに対するユニークデータの割合を示す数値です。

例) Person テーブルの個別値である PID カラム、住所のうち都道府県名が入る Pref カラム
 Pref カラムの選択性 = 約 2%
 PID カラム(ユニーク属性のカラム)の選択性 = 1

InterSystems製品のクエリオプティマイザは、クエリ実行経路(プラン)とインデックスの選択を決定するため、エクステントサイズ(テーブル内のレコード数)と選択性の数値を使用します。

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

テーブルの最適化【IRIS】

テーブルの最適化

なお、選択性の数値は、テーブル単位に計算するまで設定されていません。

計算方法については関連トピックをご参照ください。

 

【関連情報】(コミュニティ/FAQトピックをリンクしています)

0
0 403
記事 Mihoko Iijima · 12月 17, 2020 4m read

みなさん、こんにちは。 昨日、Apache Spark、Apache Zeppelin、そして InterSystems IRIS を接続しようとしたときに問題が発生したのですが、有用なガイドが見つからなかったので、自分で書くことにしました。

はじめに

Apache Spark と Apache Zeppelin とは何か、そしてどのように連携するのかを理解しましょう。

Apache Spark はオープンソースのクラスタコンピューティングフレームワークです。暗黙的なデータ並列化と耐障害性を備えるようにクラスタ全体をプログラミングするためのインターフェースを提供しています。そのため、ビッグデータを扱う必要のある場合に非常に役立ちます。 一方の Apache Zeppelin はノートブックです。分析や機械学習に役立つ UI を提供しています。組み合わせて使う場合、IRIS がデータを提供し、提供されたデータを Spark が読み取って、ノートブックでデータを処理する、というように機能します。

注意: 以下の内容は、Windows 10 で行っています。

Apache Zeppelin

では、必要なすべてのプログラムをインストールしましょう。

まず、Apache Zeppelin の公式サイトから Apache Zeppelin をダウンロードします。私は zeppelin-0.8.

0
0 352
記事 Toshihiko Minamoto · 12月 16, 2020 1m read

Windows と Mac で InterSystems IRIS 2019.1 (および 2018.1.2) の SSL/TLS 設定に認証局 (CA) の証明書を簡単に追加する新しい方法ができました。  IRIS にオペレーティングシステムの証明書ストアを使用することを要求するために、

%OSCertificateStore

を "信頼された証明書機関 X.509 証明書を含むファイル" のフィールドに入力します。   以下はポータルでそれを実行する方法を示した画像です。

また、これについて説明したドキュメントへのリンクはこちらです。  "信頼された証明書機関の証明書を含むファイル" のオプションの中を探してください。

必要な操作はこれだけです!  これで、OS 証明書ストアに載っているすべての CA の証明書をこの設定に使用することができます。

0
0 312
記事 Toshihiko Minamoto · 12月 16, 2020 17m read

今回は、InterSystems IRIS に特有のことではなく、職場で Windows 10 Pro または Enterprise を搭載した PC またはノートパソコンがサーバーとして使用されている環境で Docker を使用する場合に重要と思われる点について触れたいと思います。

ご存知かと思いますが、コンテナテクノロジーは基本的に Linux の世界で生まれ、最近では Linux のホストで使用されており、その最大のポテンシャルを伺わせています。 Windows を普段から使用するユーザーの間では、Microsoft と Docker 両社によるここ数年の重大な試みにより、Windows のシステムで Linux イメージを基にコンテナを実行することがとても簡単になったと理解されています。しかし、生産システムでの使用がサポートされておらず、それが大きな問題となっています。特に、Windows と Linux のファイルシステムに大きな違いがあるため、安心してホストシステム内でコンテナの外に持続データを保管するということができないのです。 ついには、コンテナを実行するために、_Docker for Windows _自体で Linux の小さな仮想マシン (MobiLinux) が使用されるようになり、Windows ユーザーに対しては透過的に実行されます。また、先ほど述べたように、データベースの存続がコンテナよりも短くて構わないのであれば、パーフェクトに動作します。

では、何が言いたいかというと、問題を回避して処理を単純化するには、完全な Linux システムが必要になるが、Windows ベースのサーバーを使用していると、仮想マシンを使用する以外に方法がない場合が多い、ということです。 少なくとも、Windows の WSL2 がリリースされるまでの話ですが、それはまた別の機会に触れたいと思います。もちろん、十分堅牢に動作するまでは時間がかかるでしょう。

この記事では、必要に応じて、Windows サーバーの Ubuntu システムで Docker コンテナを使用できる環境をインストールする方法について分かりやすく説明します。 それでは、始めましょう。

0
0 2778
記事 Hiroshi Sato · 12月 16, 2020 4m read

この文書では、インターシステムズの製品の中で、InterSystems CachéおよびIRIS data platformに関するライセンスポリシーを説明します。


インターシステムズのライセンスポリシーは、パートナー(ソリューションおよびインプリメンテーション)契約の際の契約書一式あるいはエンドユーザーに直接販売する際の契約書一式に含まれる製品に関する条件(この文書は製品別に存在します)という文書で規定されています。

 

なおこの文書は一般には公開していません。

 

ここでは、CachéおよびIRIS data platformのライセンスポリシーについてこの文書に書かれていることを要約および補足して説明します。

 

まずCachéシステムおよびIRIS data platformはこの文書で規定されているライセンスポリシーにでき得る限り忠実にそうようにライセンスチェック機構を実装しています。

 

しかしながら様々な技術的な制約によりライセンスポリシーとこれら製品のライセンスシステムを完全に一致させることはできません。

 

そしてもしシステム上のライセンスチェック機構の動作とライセンスポリシー上に不一致が発生した場合には、いかなる場合でもライセンスポリシーが優先されます。

0
1 1501
記事 Hiroshi Sato · 12月 16, 2020 2m read

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

SQLインジェクションに関しては、様々なWebサイトで対策等が公開されていますが、InterSystems SQLを使ったアプリケーションでも、他のRDBMSと同様にそれらの対策を適切に実施することで、SQLインジェクションは防げると考えられます。

さらに、InterSystems Data Platform(以下IRIS)の場合、一般的なRDBMSに比較して、SQLインジェクションを実行しづらい、幾つかの施策が組み込まれています。

  1. InterSystems SQLでは、一度のリクエストで複数個のSQL文は実行できませんので、セミコロン(;)の後ろに悪意のあるコマンドを入力時に追加するというテクニックが使えません。  
  2. IRISは、SQLアクセスだけではなく、オブジェクトアクセスも提供しています。 更新処理を、オブジェクトアクセスで実装することで、一般ユーザに対するSQL文による更新処理を禁止することにより、SQL文のインジェクションによるアプリケーションが予期していないデータベースの改竄を防ぐことができます。  
  3. IRISのWeb技術であるCSPでは、urlのクエリ文字列は、全て暗号化できるので、クエリ文字列から、インジェクションの手がかりを得るなどのテクニックが使用しづらいです。
0
0 257
記事 Hiroshi Sato · 12月 15, 2020 3m read

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

InterSystems OpenExchangeのVS Code用のプラグインを利用することでVS Code上でクラス定義の編集が可能です。

(今後は、AtelierではなくVS Codeの使用を推奨しています。)


詳細は、以下ページをご参照ください。


vscode-objectscript

 

また、逆にテーブル定義からクラス定義を生成することも可能です。

方法①として、他社RDBMS用に作成したDDL文をインターシステムズ製品上で実行、またはインポートする方法があります。


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


DDL文の実行について【IRIS】
DDL文の実行について

 

方法②として、クラス定義クラス・%Dictionary.ClassDefinitionで定義されているAPIを利用し、プログラミングにより操作する方法があります。

クラス定義クラスは、システムクラスであり、スタジオや他のエディターで作成されたクラスは全てこのシステムクラスを使いクラスディクショナリに定義情報が格納されています。

このクラス詳細については、以下ドキュメントをご参照ください。


0
0 349
記事 Megumi Kakechi · 12月 15, 2020 1m read

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

%SYSTEM.SQL クラスの Purge* メソッドを使用して削除することが可能です。

※各メソッドの詳細は、以下ドキュメントをご参照ください。

%SYSTEM.SQLクラスについて【IRIS】

%SYSTEM.SQLクラスについて

 

①システム内のすべてのクエリキャッシュを削除する場合

Do $SYSTEM.SQL.PurgeAllNamespaces()


②ネームスペース内のクエリキャッシュを削除する場合

// ネームスペース内のすべてのクエリキャッシュを削除する
Do $SYSTEM.SQL.Purge()
// 日付指定してクエリキャッシュを削除する場合
// 以下は、過去30日間に使用されていないクエリキャッシュを削除

Do $SYSTEM.SQL.Purge(30) 

③クエリキャッシュを指定して削除する場合

Do $SYSTEM.SQL.PurgeCQClass("%sqlcq.USER.cls13")


④特定テーブルのクエリキャッシュを削除する場合

Do $SYSTEM.SQL.PurgeForTable("MedLab.Patient")
0
0 557
記事 Mihoko Iijima · 12月 15, 2020 2m read

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

REST のベース URL を /rest とした場合の IIS と Webゲートウェイの設定内容は以下の通りです。

 

IIS の設定内容

アプリケーション /rest を作成し、ハンドラーマッピングで * = CSPms を定義します。

ハンドラーマッピングの設定手順は以下の通りです。

IIS > Default Website > アプリケーション /rest > "ハンドラーマッピング" をダブルクリック > モジュールマップの追加

  • 要求パス :     *
  • モジュール:   CSPms
  • 名前   :   CSPGW    (任意の名前) 

要求の制限 > [要求のマップ先が次の場合のみハンドラーを呼び出す] のチェックはオフにします。
※こちらの設定はデフォルトでは「チェックあり」になっていますのでご注意ください。

この構成により、IIS は /rest アプリケーションを Web ゲートウェイに転送します。

 

 

Webゲートウェイの構成

Web Gateway のアプリケーションアクセス から /rest を追加します。
→既存アプリケーションをクリックしてコピーし、アプリケーションパスを /rest に設定しIRISサーバを指定します。

0
0 3892
記事 Mihoko Iijima · 12月 15, 2020 1m read

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

デフォルトでは、セキュリティ脆弱性対応の観点でウェブサービス用テストページの実行を許可していません。

テスト目的等で利用する場合は、テストページへのアクセスを有効にする必要があり、以下グローバル変数のセットを %SYS ネームスペースで実行する必要があります。

set ^SYS("Security","CSP","AllowClass",0,"%SOAP.WebServiceInvoke")=1
set ^SYS("Security","CSP","AllowClass",0,"%SOAP.WebServiceInfo")=1

※この設定はウェブサービス用テストページのために必要な設定です。SOAPクライアントから通常のリクエストを実行する場合は設定不要です。

詳細については、以下のドキュメントもご参照下さい。

カタログおよびテスト・ページについて【IRIS】

カタログおよびテスト・ページについて 

0
0 183
記事 Minoru Horita · 12月 14, 2020 14m read

優れた執筆者は、題名で読者を引き込み、答えを記事のどこかに隠すべきだと考えられています。  だとすると、私は出来の悪い執筆者ということになってしまいます。私の自尊心は見知らぬインターネットユーザーの皆さんのご意見にかかっていますので、お手柔らかにお願いします。

0
0 343
記事 Megumi Kakechi · 12月 13, 2020 1m read

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

%ZSTARTルーチンを インスタンス開始時に起動しないように構成設定用ファイルを手動で変更します。

【注意】
インスタンスの起動環境の変更は、通常管理ポータルで行うものなので、以下に説明する方法は、%ZSTART の SYSTEM ラベルの動作を無効化する方法以外では利用しないようにしてください(別のパラメータを誤って修正してしまった場合、起動できなくなる可能性がありますのでご注意ください)。

1. インスタンス のインストールディレクトリ以下にある構成設定用ファイル(cache.cpf/iris.cpf)をテキストエディタで開きます。
 ※構成ファイルは、事前にバックアップ(コピー)していただくことを推奨します。

2. [Startup]セクションにあるSystemStartの値を0に変更し、保存します。

3. ファイル変更後、一旦 インスタンスを通常の方法で停止し、再度開始してください。

SystemStart パラメータの詳細については、下記ドキュメントについてもご参照ください。
パラメータ・ファイル・リファレンス_SystemStart【IRIS】
 

0
0 232
記事 Tomohiro Iwamoto · 12月 10, 2020 17m read

この記事は、GitHub Actions を使って GKE に InterSystems IRIS Solution をデプロイするの継続記事で、そこではGitHub Actions パイプラインを使って、 Terraform で作成された Google Kubernetes クラスタにzpm-registry をデプロイしています。 繰り返しにならないよう、次の項目を満たしたものを開始点とします。

訳者注) 上記の記事を読まれてから、本記事に進まれることをお勧めしますが、GKE上のサービスにドメイン名を紐づける方法を解説した単独記事としてもお読みいただけます。

0
0 406
記事 Shintaro Kaminaka · 12月 10, 2020 20m read

以前紹介した記事 (お読みいただいたでしょうか) では、GitHub とパーフェクトに統合する CircleCI のデプロイシステムについてカバーしました。 なのにどうしてさらに掘り下げる必要があるのか? それは、GitHub には GitHub Actions という独自の CI/CD プラットフォームがあり、詳しく見ておく価値があるからです。 GitHub Actions を使えば、外部のサービスを使用する必要はありません。

この記事では、GitHub Actions を使って InterSystems Package Manager のサーバー部分である ZPM-registry を Google Kubernetes Engine (GKE) にデプロイする、ということを試したいと思います。

0
0 519
記事 Hiroshi Sato · 12月 8, 2020 1m read

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

連番を生成する関数($INCREMENT)を使用してユニークな番号を自動付番することができます。

 

SQLのSELECT文で使用する場合には OracleのSequence相当の機能を実装したクラスを利用する方法があります。

 

サンプルを以下のGitHubリポジトリより取得することができます。

 

OracleのSequence機能を実装するサンプル

0
0 501
記事 Mihoko Iijima · 12月 8, 2020 1m read

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

$SYSTEM.Process.TerminalPrompt() を使用してターミナルのプロンプトを変更できます。

プロンプトの表示形式は、以下情報の組み合わせで指定できます。

  1.  ホスト名
  2. 現在のネームスペース
  3. 構成名
  4. 現在の時刻
  5. PID: オペレーティングシステム上でのプロセスID
  6. ユーザーネーム
  7. 最後のコマンドを実行してからの経過時間

例えば、Do $SYSTEM.Process.TerminalPrompt(1,3) ではホスト名と構成名をターミナルのプロンプトとして表示します。 

*実行例は、ホスト名="HOST1"、構成名="IRIS"*

USER>Do $SYSTEM.Process.TerminalPrompt(1,3)
HOST1:IRIS>
0
0 240
記事 Mihoko Iijima · 12月 7, 2020 2m read

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

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

 

上記のようなSQL文は、下記のSQL文で代替可能です。

※下記2行目のUPDATE文の実行により対象行に対して排他ロックがかかるため、他DBの動作と異なる点ご注

0
0 507
お知らせ Mihoko Iijima · 12月 4, 2020

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

第8回 Analytics コンテスト続報 📣 の「テクノロジーボーナス」について紹介します。

  • InterSystems IRIS BI(旧DeepSee)
  • InterSystems IRIS NLP
  • IntegratedML
  • 実データの利用
  • ZPM を利用したパッケージの開発
  • Docker コンテナの利用

ボーナス詳細は以下ご参照ください。

InterSystems IRIS BI - 1 point 

InterSystems IRIS BI(旧DeepSee)は、IRIS の分析機能で、IRIS に格納されたデータに対して BI キューブやピボットを作成し、インタラクティブなダッシュボードを使用してユーザーに情報を提供することができます。

InterSystems IRIS BI のドキュメントはこちらからご参照いただけます。

開発環境のテンプレート(IRIS-Analytics-template)には、IRIS BI のキューブ、ピボット、ダッシュボードの例が含まれています。
使い方の日本語解説ビデオ付き記事もあります。ぜひご活用ください!

0
0 133
記事 Toshihiko Minamoto · 12月 4, 2020 5m read

みなさん、こんにちは。

 

数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。

Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。

0
0 856
記事 Mihoko Iijima · 12月 3, 2020 3m read

これまでさまざまなストレージ技術とそのパフォーマンス特性の例を紹介してきましたが、今回は新しい HPE Cloudline 3150 Gen10(AMD プロセッサベースのシングルソケットサーバーで 3.2TB の Samsung PM1725a NVMe ドライブを 2 台搭載)など、内部コモディティベースのサーバーストレージの活用が増加傾向にあることを確認しました。  

0
0 330