記事 Toshihiko Minamoto · 1月 19, 2021 5m read

皆さん、こんにちは。
寒い日が続きますね。
前々回の記事でDHT11とBMP180を使って作成したのですが、実際に外に置いて計測してみると、氷点下の場合、12~13℃となってしまい、正しく計測できませんでした。(先にデータシートを確認しておけばよかったのですが、DHT11、BMP180共に0℃以上になっていました...)
そこで代わりのセンサーが無いか探していたところ、BME280というセンサーが見つかりました。-40℃から85℃まで測れ、BMP180と同じBosch製で値段も数百円。

センサーモジュールはBMP280と共用の基板で、どちらなのか印がなく、湿度が測れるのかどうかちょっと心配していましたが、注文通りBME280だったらしく、湿度も測れました。
 配線図は以下のようになります。BMP180と同様にI2Cで接続しています。また、今回は別のESP8266とユニバーサル基板を使って配線をやり直すついでに電源をUSB給電から3Vの電池にしています。

前回のようにリード線でセンサーとマイコンを離すのが扱いづらかったので、センサーモジュールをユニバーサル基板上にはんだ付けしました。その上でセンサーが保存容器の外に出るようにケースに切り込みを入れてみました。

プログラムは以下の通りです。I2C通信に必要な<Wire.

0
0 865
記事 Toshihiko Minamoto · 1月 19, 2021 7m read

デバッガーは使わないという人はいますか? 最後に使ったのはいつだったか、記憶にないですね。 それは、嫌いだからではなくて、単に必要ないからなんです。 その一番の理由は、ある種の開発手法を使っているおかげで、バグの発生を少なく抑えたり、単体テストのレベルで発見したり、バグをとても簡単に追跡できたりするからです。

以下にいくつかヒントを紹介します...

1. 独自の COS チートシートを作成する。

これは主に COS の初心者が対象になります。 バグを引き起こす大きな原因の一つとして、特定のコマンドや関数の動作を理解していないということがあります。 時間をかけて言語を学び、そのすべてのバリエーションを試すことをおすすめします。 それから独自のチートシートを作成することで、知識が固まり、さっと使えるレビューツールも出来上がります。 生産性アップにつながるほか、避けられるはずのバグをうっかり書いてしまう頻度を確実に減らすことができます。

2. スタジオで「変数の追跡」をオンにする

まだオンにしていない方は、スタジオの 「 ツール 」「 オプション 」メニューにて、「 環境」フォルダの「クラス」と順に移動し、「変数を追跡する」のチェックボックスにチェックを入れてください。 宣言時に初期化されていない変数を使用する場合は、その変数の下に波線が引かれます。

0
0 180
記事 Mihoko Iijima · 1月 15, 2021 2m read

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

$ZSTRIP() 関数を使用します。

この関数を使用すると、指定文字列から、文字のタイプと文字を削除できます。

下記の例のように、第2引数で、"<"、">"、"<>"を指定することにより、SQLのLTRIM、RTRIM、TRIM関数と同等の処理が可能になります。

0
0 1052
記事 Toshihiko Minamoto · 1月 14, 2021 6m read

前回のつづきとして、いよいよIRISのインターオペラビリティ機能を使ってMQTTブローカーからメッセージを受信し、データベースに格納する方法について解説したいと思います。IRISのインターオペラビリティ機能につきましてはこちらをご参照ください。

ネームスペース作成

インストール時に作成されているUSERネームスペースはInteroperabilityに必要なライブラリを参照するためのマッピングができていません。
そのため、新たにネームスペースを作成する必要があります。
作成方法は、以下の通りです。

  1. システム管理ポータルを起動し、「システム管理」「構成」「システム構成」「ネームスペース」をクリックします。
  2. 以下のようなネームスペース一覧画面が表示されますので、上にある「新規ネームスペース作成」ボタンをクリックします。 
  3. 以下のような新規ネームスペース作成画面が表示されますので、「ネームスペース名」欄にネームスペースの名称を入力し、「グローバルのための既存のデータベースを選択」欄、「ルーチンのための既存のデータベースを選択」欄で共にデータベース「USER」を選択します。
    「相互運用プロダクション用にネームスペースを有効化」欄にチェックが付いていることを確認の上、画面上の「保存」ボタンをクリックします。
0
0 563
記事 Toshihiko Minamoto · 1月 13, 2021 2m read

デベロッパーの皆さん、こんにちは! InterSystems Package Manager (ZPM) は、素晴らしいツールですが、インストールせずにすぐ使用できたら、さらに便利です。

それを実現する方法はいくつかあります。以下に dockerfile を使って ZPM をビルドした IRIS コンテナを用意する方法をご紹介します。

リポジトリを作成し、そのdockerfile に数行のコードを記述しました。これを使えば、最新バージョンの ZPM をダウンロードし、インストールできます。 

IRIS コミュニティエディション用のあなたの dockerfile にこれらのコマンドを追加すれば、ZPM がインストールされ、使用できるようになります。

最新の ZPM クライアントをダウンロードするコマンドは以下の通り。

0
0 258
記事 Toshihiko Minamoto · 1月 11, 2021 4m read

前回の記事では、データの変更を簡単に記録できる方法をお見せしました。 今回は、監査ログが記録されるデータ構造と監査データを記録する「Audit Abstract クラス」を変更しました。

また、データ構造は親構造と子構造に変更し、それぞれに「トランザクション」とそのトランザクションで「その値によって変更されたフィールド」を記録するテーブルが 2 つ設けられます。

新しいデータモデルをご覧ください。

「監査クラス」から変更したコードをご覧ください。

Class Sample.AuditBase [ Abstract ]
{
Trigger SaveAuditAfter [ CodeMode = objectgenerator, Event = INSERT/UPDATE, Foreach = row/object, Order = 99999, Time = AFTER ]
{
          #dim %compiledclass As %Dictionary.CompiledClass
          #dim tProperty As %Dictionary.CompiledProperty
          #dim tAudit As Sample.Audit
          Do %code.
0
0 187
お知らせ Mihoko Iijima · 1月 11, 2021

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

第9回のマルチモデルコンテストの 続報 📣 の「テクノロジーボーナス」についてご紹介します。

  • InterSystems Globals (key-value)
  • InterSystems SQL
  • InterSystems Objects 
  • Your data model
  • ZPM Package deployment
  • Docker container usage

詳細は以下ご参照ください。<--break->

InterSystems Globals (key-value) - 2 points

InterSystems グローバルは、InterSystems IRIS に任意のデータを格納するために使用される多次元スパース配列です。
各グローバル・ノードはキーとみなされ、値(バリュー)を設定することができます。InterSystems IRIS は、グローバルを管理するための ObjectScript のコマンドや Native API を含む一連の API を提供しています。

ObjectScript または Native API を介してグローバルを使用すると、2 ポイント獲得できます。

0
0 134
記事 Toshihiko Minamoto · 1月 6, 2021 25m read

データ分析のためにInterSystemsで何ができるかを確認したいとしましょう。 理論を学んだので今度は実践したいと考えた時、InterSystems には、役に立つ実例をいくつか取り入れた Samples BI というプロジェクトが用意されています。 まずは、README ファイルを開き、Docker に関する内容はすべてスキップして、手順に従ってインストールしてゆきます。 仮想インスタンスを起動し、そこに IRIS をインストールしたら、手順に従って Samples BI をインストールします。そして綺麗なチャートやテーブルを見せて上司に感心してもらいましょう。 ここまでは順調ですね。 

必然的に、ここで変更を加えることになります。

0
0 454
記事 Megumi Kakechi · 1月 6, 2021 1m read

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

Web サービス(SOAP)またはREST で IIS を経由してクライアントにエラー応答する際、既定では IISが生成するデフォルトのエラーページ( HTTP 500 エラー)が返されます。

SoapFaultなど、サーバ側で出力したエラーの詳細情報は返されません。

IIS7 以降、WebクライアントがWeb サービスの障害の詳細情報を取得するための設定オプションが追加されました。

HTTP ステータスコードがエラーの場合に、既存の応答をどうするかを existingResponse 属性で指定することができます。

こちらの値を、既定の Auto から PassThrough に変更することで、エラーの詳細情報が返されるように変更できます。
※設定変更後、IISの再起動が必要です。

詳細や設定手順については、以下ドキュメントをご参照ください。
Microsoft IIS 7 以降の設定手順について【IRIS】

Microsoft IIS 7 以降の設定手順について

※web.config ファイルの手動編集よりも、IIS マネージャに組み込まれている構成エディタ を使用する方法がエラーが少なく安全です。

HTTP エラー について
 

0
0 1923
お知らせ Toshihiko Minamoto · 1月 6, 2021

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

Open Exchange にアプリケーションが掲載されるたびに、グローバルマスターズのポイントを獲得できるのはご存知でしたでしょうか。 つい最近、ZPM アプリケーションに対するボーナスポイントを導入いたしました。 これで各 ZPM アプリケーションにつき 400 ポイントをゲットできるようになりました! ポイントは自動的に調整されます。** **
ポイントと利用可能なリワードについては、グローバルマスターズでご確認ください。今すぐアクセスしましょう!

0
0 125
記事 Toshihiko Minamoto · 1月 5, 2021 9m read

はじめに

多くのアプリケーションに共通する要件は、データベース内のデータ変更のログ記録です。どのデータが変更されたか、誰がいつ変更したかをログに記録する必要があります(監査ログ)。 このような質問について書かれた記事は多く存在し、Caché で行う方法の切り口もさまざまです。

そこで、データ変更を追跡して記録するためのフレームワークを実装しやすくする仕組みを説明することにします。 これは、永続クラスが「監査抽象クラス」(Sample.AuditBase)から継承すると「objectgenarator」メソッドを介してトリガーを作成する仕組みです。 永続クラスは Sample.AuditBase から継承されるため、永続クラスをコンパイルすると、変更を監査するためのトリガーが自動的に生成されます。


監査クラス  

次は、変更が記録されるクラスです。

  Class Sample.
0
0 298
お知らせ Mihoko Iijima · 1月 4, 2021

開発者の皆様 🎍あけましておめでとうございます🎍 今年もどうぞよろしくお願いいたします!

2021年最初の IRIS プログラミングコンテストの開催が発表されました👏👏

今回のお題は ⚡️ InterSystems Multi-Model Contest ⚡️ です!

応募期間は 2021年1月11日~24日 です!

(投票期間は 2021年1月25日~31日、勝者発表は 2月1日を予定しています)

優勝特典

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

🥇 1位 - $2,000 

🥈 2位 - $1,000 

🥉 3位 - $500

2、開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。

🥇 1位 - $1,000 

🥈 2位 - $500 

🥉 3位 - $250

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

参加資格

どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)

コンテストのスケジュール

1月11日~24日 応募期間Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。

0
0 280
記事 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の表面はそのままですが...

 

ソフトウェア

0
0 2358
お知らせ 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 120
記事 Mihoko Iijima · 12月 28, 2020 3m read

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

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

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

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

マネージド・キー暗号化


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

(1) 暗号化キーの作成

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

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

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

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

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

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

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

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

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

0
0 399
お知らせ Toshihiko Minamoto · 12月 27, 2020

コミュニティの皆さん、こんにちは!  
もうご存知かと思いますが、グローバルマスターズでは、InterSystems IRIS、IRIS for Health、Interoperability (Ensemble)、IRIS Analytics (DeepSee)、Caché、HealthShare など、InterSystems のどの製品に関しても InterSystems のエキスパートによるコンサルテーションをご利用いただけます

そして、皆さまに嬉しいお知らせがあります。このコンサルテーションが 英語、ポルトガル語、ロシア語、ドイツ語、フランス語、イタリア語、スペイン語、日本語、中国語でご利用いただけるようになりました。  さらに、 時間も 1 時間半に拡大され、お好きなトピックについて細かくご相談いただけるようになりました。

 

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

皆さん、こんにちは。

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

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

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

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

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

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

インポートウィザード

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

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

  1. CSV ファイルを選択します。
0
0 549
記事 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 682
記事 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 1733
記事 Toshihiko Minamoto · 12月 23, 2020 3m read

新しい動的 SQL クラス(%SQL.Statement および %StatementResult)のパフォーマンスは %ResultSet より優れてはいますが、%ResultSet の使用方法をせっかく学習したので、しばらくの間新しい方を使用せずにいましたが、 やっとチートシートを作ったので、新しいコードを書いたり古いコードを書き直す際に役立てています。 皆さんのお役に立てればいいなと思っています。

次に示すのは、私のチートシートの詳細版です。

1 %ResultSet::%New() %SQL.Statement::%New()
2    Prepare() インスタンスメソッドを呼び出す    %Prepare() インスタンスメソッドを呼び出す
3    前のステップがステータスを返すので、それを確認    前のステップがステータスを返すので、それを確認
4    Execute() インスタンスメソッドを呼び出す    %Execute() インスタンスメソッドを呼び出す
5    前のステップがステータスを返すので、それを確認    前のステップが %SQL.
0
0 248
記事 Toshihiko Minamoto · 12月 22, 2020 13m read

HealthShare の理想的な Apache HTTPD Web サーバー構成に関するお問い合わせをよくいただいています。 この記事では、真っ先に推奨される HealthShare 製品の Web サーバー構成について概要を説明します。

何よりもまず第一に、Apache HTTPD バージョン 2.4.x(64ビット)を使用することをお勧めします。 2.2.x のような旧バージョンも使用できますが、HealthShare のパフォーマンスとスケーラビリティを確保するにはバージョン 2.2 はお勧めできません。

0
0 1340
記事 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 1020
お知らせ 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 117
お知らせ Toshihiko Minamoto · 12月 21, 2020

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

グローバルマスターズビジネスサービスリワードを導入したことにより、お客様のアプリケーション、ソリューション、サービスの概要を開発者コミュニティや当社のソーシャルメディアに掲載していただけるようになったほか、OEX アプリケーションの宣伝に Google AdWords のキャンペーンをご利用いただけるようになりました!

0
0 110
お知らせ Toshihiko Minamoto · 12月 21, 2020

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

この記事では、開発者コミュニティと InterSystems Global Mastersアドボケート・ハブのレベルに関する情報を掲載しています。

お知らせ:現在、これらのバッジの多くは変更中です。この表も近日中に更新される予定です。

すべての Global Masters メンバー(アドボケイト)は、開発者コミュニティへの貢献と Global Masters での活動に応じてさまざまなレベルのアドボカシーを達成できます。

新しいレベルに移行するたびに、新しいタイプのチャレンジ/タスクと新しいタイプの報酬が開始されます。

レベルアップするには、次のレベルからいくつかのバッジを獲得する必要があります。 バッジは Global Master でさまざまなチャレンジを完了すると獲得できます。

現在は 6 つのレベルがあります。

  1. インサイダー
  2. アドボケイト
  3. スペシャリスト
  4. エキスパート
  5. アンバサダー
  6. VIP

バッジの上にマウスカーソルを移動すると、獲得方法を確認できます。

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

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

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

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

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

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

0
0 110
記事 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 322
記事 Megumi Kakechi · 12月 17, 2020 1m read

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

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

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

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

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

テーブルの最適化【IRIS】

テーブルの最適化

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

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

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

0
0 408
記事 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 357
記事 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 323