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

バックアップには、以下4種類の方法があります。

  1. 外部バックアップ
  2. オンラインバックアップ(コンカレントバックアップ)
  3. コールドバックアップ
  4. レガシー並行外部バックアップ

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

バックアップの方法について【IRIS】
バックアップの方法について

00
0 0 33

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

サーバ側ロジックの記載に使用する ObjectScript でのエラー処理方法(TRY-CATCH)については、エラー処理方法解説ガイド
に掲載しています。

ぜひご参照ください!
 

00
0 0 33
記事
Toshihiko Minamoto · 2020年10月19日 5m read
SQL パフォーマンスリソース

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

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

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

  • 利用可能なインデックスの種類
  • あるインデックスの種類を他の種類の代わりに使用する
  • TuneTable がテーブルに集める情報とそれが Optimizer に対して意味する内容
  • Show Plan を読んでクエリの善し悪しを深く理解する方法
  • 00
    0 0 32

    みなさん、こんにちは。 今回は ML モデルを IRIS Manager にアップロードしてテストしようと思います。

    注意: Ubuntu 18.04、Apache Zeppelin 0.8.0、Python 3.6.5 で以下を実行しました。

    はじめに

    最近では実にさまざまなデータマイニングツールを使用して予測モデルを開発し、これまでにないほど簡単にデータを分析できるようになっています。 InterSystems IRIS Data Platform はビッグデータおよび高速データアプリケーション向けに安定した基盤を提供し、最新のデータマイニングツールとの相互運用性を実現します。

    00
    0 0 32

    本件、すでに改修済みである場合にはご容赦願います。

    IRIS2020.1のテストをしています。

    新規ネームスペース画面に「相互運用プロダクション用にネームスペースを有効化」というチェックボックスがあります。デフォルトでチェックされていましたので、試しにチェックを外してみました。下記のようなメッセージが表示されるのですが、日本語のメッセージになると有り難いなぁ、と感じました。

    (メッセージ)

    Are you sure you do not want this to be 運用相互プロダクションのために有効?

    00
    0 2 32

    ここで紹介するサンプルは、以下の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を使用していると言うこともできます。

    00
    0 0 32

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


    LAST_IDENTITY() SQL関数を使用すると取得できます。
    ※ この関数は、埋め込み SQL または ODBC 利用時に使用できます。ダイナミック SQL、SQL シェル、または管理ポータルの SQL インタフェースによる値には設定されません。

    簡単な埋め込み SQL での例をご紹介します。

    00
    0 0 32

    ​​​​​​この連載記事では、InterSystemsの技術とGitLabを使用したソフトウェア開発に向けていくつかの可能性のあるアプローチを紹介し、説明したいと思います。以下のようなトピックについて取り上げます。

    00
    0 0 32

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

    Windows共有しているリモートサーバに出力されたファイルでデータ連携する際、セキュリティ上、資格情報が必要となるケースが良くあるかと思います。いままでCachéで連携していた時には%ZSTARTルーチンや常駐プロセスのルーチンにて「net useコマンド」を実行されていたかと思いますが、IRISではInteroperability機能が使用できますので、前回の記事で作成したビジネスサービスクラスを元に、資格情報を使ってWindows共有フォルダにアクセスできる機能を追加したいと思います。

    仕組み

    ビジネスサービスが起動、停止する際に呼び出されるOnInit()、OnTearDown()メソッドにnet useコマンドを埋め込み、指定されている資格情報を使ってnet useコマンドで共有フォルダへの接続、切断を行います。

    00
    0 0 31

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

    XMLファイルの内容を格納する永続クラス定義を作成し、%XML.Adaptor を追加で継承します。

    例は以下の通りです(右端の %XML.Adaptorクラスを追加で継承します)。

    Class ISJ.Class1 Extends (%Persistent, %Populate, %XML.Adaptor)

     

    10
    0 0 31

    2019年 10月 17日

    Anton Umnikov
    InterSystems シニアクラウドソリューションアーキテクト
    AWS CSAA、GCP CACE

     

    AWS Glue は、完全に管理された ETL (抽出、変換、読み込み) サービスです。データの分類、クリーンアップ、強化、そして様々なデータストア間でデータを確実に移動させるという作業を簡単にかつコスト効率の良いかたちで行えるようにするものです。

    00
    0 0 31

    jQuery($.getJSON と $.ajax)を使用した InterSystems IRIS データのJSON形式での取得方法をご紹介します。

    以下にサンプルをご用意しました。

    https://github.com/Intersystems-jp/REST_JSON_sample


    サンプルには、次の内容が含まれます。

    ・REST + JSON
    ・REST + CORS

    ※それぞれ、$.getJSON と $.ajax で取得する方法を記載しています。

    10
    0 0 31

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

    ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。

    コード例は以下の通りです。

    USER>set temp=##class(%Stream.TmpCharacter).%New()
    
    USER>set jsonobj={}
    
    USER>set jsonobj.pro1=["a","b","c","d"]
    
    USER>set jsonobj.pro2=["あ","い","う","え"]
    
    USER>do jsonobj.%ToJSON(temp)
    
    USER>write temp.Size
    51
    USER>write temp.Read()
    {"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

     

    詳細はドキュメントもご参照下さい。

    10
    0 3 30

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

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

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

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

    Set a="  全角・半角スペースを含む文字列  "
    Set b=$ZSTRIP(a,"<>W",$C($ZHEX("3000")))

    ※上記実行例の、$ZHEX("3000")は16進数の3000のことで、Unicodeでの全角スペースの文字コードです。

    00
    0 0 30

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

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

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

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

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

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

    00
    0 0 30

    この記事では、従来のIRISミラーリング構成の代わりに、Kubernetesの Deploymentと分散永続ストレージを使って高可用性IRIS構成を構築します。 このデプロイでは、ノード、ストレージ、アベイラビリティーゾーンといったインフラストラクチャ関連の障害に耐えることが可能です。 以下に説明する方法を使用することで、RTOがわずかに延長されますが、デプロイの複雑さが大幅に軽減されます。

    00
    0 0 29

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

    第 7 回 IRIS プログラミングコンテストの Interoperability コンテストの投票が始まりました!

    これだ!と思う応募作品にぜひ投票お願いします!

    投票は、Expert Nomination または Community Nomination のどちらかで行っていただきます。

    Experts Nomination

    00
    0 0 29

    みなさん、こんにちは!

    Visual Studio Code 用のエクステンション、 InterSystems Server Manager のバージョン2.0がリリースされました。

     

    このバージョンでは、弊社製品に同梱されているコードエディタ Studio と同じように、「サーバ上にあるクラス定義やルーチンを、サーバに接続して、直接編集&コンパイル」することが簡単にできます。この記事では、「Visual Studio Code を、Studio と同じように、気軽に使う」ための設定をご紹介いたします。

     

    20
    0 0 29

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

    %OSCertificateStore

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

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

    00
    0 0 29

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

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

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

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

    00
    0 0 29

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

    IRIS プログラミングコンテストでは、💨すぐに💨開発を開始いただけるようにコンテナ版 IRIS を利用した「開発環境テンプレート」をご提供してしていました。

    終了したコンテストにはご応募いただけませんが、テンプレートは「ちょっと試したい」「加工して自分オリジナル環境を作りたい」の目的にぴったりの内容です。

    また、全て Open Exchange で公開されていて、Docker、Git、VSCode をインストールした環境があればすぐにご利用いただけます。

    テンプレートの使用方法については、各コンテストの紹介ページでご案内しています(日本語解説ビデオ付きもあります)。

    基本は以下 3 行だけで開始できます。(とっても簡単!)

    git clone <ここにテンプレートのURL>
    
    cd <作成されたディレクトリ>
    
    docker-compose up -d --build

     

    ご興味ある内容ありましたら、ぜひお手元で試してみてください!

    00
    0 0 28
    記事
    Hiroshi Sato · 2021年2月24日 3m read
    ECPはどのように使うのが正しい?

    以下のドキュメントでご紹介しています通り、ECPは分散キャッシュ用のアプリケーションサーバーを並列に増設することで、処理量に応じてスケールアウトすることを主目的として設計されています。

     

    ECP機能紹介

     

    従ってインターシステムズデータプラットフォーム上で稼働する複数のアプリケーション間の簡便なデータ交換手段としてECPをご使用いただくことは推奨していません。

    以下その理由についてご説明します。

    データ量の増加、処理量の増加に伴いスケーラビリティに関する要件も今後益々厳しくなる中、将来にわたってより良いスケーラビリティ性能を得られるようインターシステムズの開発部門は、より良いアルゴリズムの開発や処理のチューニングをECPに対して継続的に行っております。


    その成果は順次最新バージョンに反映していきます。

    00
    0 0 28
    記事
    Megumi Kakechi · 2020年12月17日 1m read
    選択性の数値について

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

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

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

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

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

    テーブルの最適化【IRIS】

    00
    0 0 27

    これは 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 ];
    }

     

    00
    0 0 27

    皆さんこんにちは。

    以下のメソッドでは日付の入った配列を受け取り、すべてのYYYY-MM-DD形式の
    日付を$horologに変換しているのですが、たまに日付が古すぎるものが入っており
    <VALUE OUT OF RANGE>エラーが発生して途中で止まってしまいます。
    エラー時にエラーメッセージを代入してそのまま継続できる方法はないでしょうか?

     

    プログラムは以下の通りです。

    00
    0 2 27

    これは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を使用することをお勧めします。 

     

    $IsObject($Get(v))
    00
    0 0 27

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

    Java ゲートウェイを使用することで、Java クラスのモジュールを InterSystems IRIS から実行できます。

    【メモ】Java ゲートウェイは、外部 Java オブジェクトを InterSystems IRIS 内のネイティブ・オブジェクトと同じようにインスタンス化し、Javaオブジェクトを操作するための方法です。

    詳細は以下ドキュメントをご参照ください。
    Java ゲートウェイについて

     

    Java ゲートウェイを使用する手順は以下の通りです。

    1) Java ゲートウェイサーバを開始する

    00
    0 0 26

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

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

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

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

    00
    0 0 26
    記事
    Hiroshi Sato · 2020年11月23日 1m read
    変数等命名規約について

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

    変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。

    しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。

    一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。

    名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。

    また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。
    しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。

    さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。
    (例: tSC,pLengthなど)

    00
    0 0 26