記事 Toshihiko Minamoto · 4月 12, 2022 3m read

コミュニティの皆さん、こんにちは。お元気ですか?

皆さんは、創造性をどのようにして発揮していますか? 新しいアイデアはどのようにしてテストしていますか?

数年にもわたって、私はずっと新しいものを作り出し、既存のものを改良し、実験、テスト、破壊(いつも壊れてしまいます)を経て作り直し、そしてこのプロセスを繰り返してきました。

InterSystems が推進するコンテストは、モチベーションを大きく持ち上げてくれます。もちろん、賞品に目が行ってしまうことは否定できませんが。 しかし、賞品や報酬だけでなく、こういったコンテストでは自分の創造性が試されますし、作成、改良、テスト、実験の機会が得られます。 さらに、最も素晴らしいのは、何をやるのも自由であるということです!

私の場合、こういった機会は、独自の ホワット・イフ...?(マーベルが作家に自由にストーリーを改良させるシリーズ)を作成できるチャンスと見なしているため、これらのアイデアを私と一緒に受け入れてくれる人がいたのは幸運でしたlaugh @José.Pereira に感謝です。

前回の相互運用性コンテストでは Message Viewer を作成したのですが、今回の相互運用性コンテストでも Message Viewer をもう一度取り上げました。ただし独自のビジュアルトレース機能

0
0 193
記事 Mihoko Iijima · 4月 8, 2022 4m read

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

システムユーティリティクラス:SYS.Database のクエリ:FreeSpace を利用してディスクの空き容量を任意のタイミングで確認することができます。

IRIS ターミナルで試す方法は以下の通りです(%SYSネームスペースに移動してから実行します)。

zn "%SYS"
set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
set rset=stmt.%Execute()
//全件一括表示
do rset.%Display()

出力結果例は以下の通りです。

※コマンド実行例では、全データベースが同じディスクに置かれているので、ディスクの空き容量(DiskFreeSpace)はすべて同じ値が返っています。

0
0 253
記事 Toshihiko Minamoto · 4月 7, 2022 4m read

皆さん、こんにちは!

@Henrique.GonçalvesDias と私は、MessageViewer の最近のアップデートにおいて、IRIS Interoperability でメッセージを可視化する新しい方法を提案しました。 そのアップデートでは、UML シーケンス図に基づく可視化を提供しようとしました。 詳細は、の記事をご覧ください。

このようなダイアグラムを描画するために必要な困難な幾何学計算を行えるように、素晴らしい mermaid JS オープンソースライブラリを使用しました。 この記事で紹介したいのは、このライブラリの使用方法です。 ここでは、シーケンス図のみに焦点を当てますが、このライブラリでは非常にたくさんのことを行えることを忘れないでください。

mermaid では Markdown に着想を得た構文を使用して、ダイアグラムを定義します。 非常に直感的であるため、退屈な文章を長々と書くのではなく、例を紹介したいと思います。

sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
    John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
0
0 1171
記事 Toshihiko Minamoto · 4月 5, 2022 6m read

freepik- freepik.com まずは、データの匿名化とは何でしょうか?

ウィキペディアによると:

データの匿名化は、情報サニタイゼーションの一種で、プライバシー保護を意図しています。 データセットから個人を特定可能な情報を取り除き、データが説明するユーザーが匿名性を維持できるようにするプロセスです。

言い換えると、データの匿名化は、データを保持しながらソースを匿名に維持するプロセスと言えます。 採用された匿名化手法に応じて、データは編集、マスク、または置換されます。

そして、これが iris-Disguise の目的です。一連の匿名化ツールを提供します。

メソッドの実行、または永続クラスの定義自体で匿名化ストラテジーを指定する、2 つの方法で使用することができます。

iris-Disguise の最新のバージョンには、データを匿名化するためのストラテジーが 6 つ用意されています。

  • 破壊
  • スクランブル
  • シャッフル
  • 部分マスキング
  • ランダム化
  • 偽装

それぞれのストラテジーを説明しましょう。例を使用してメソッドの実行を示し、前述のように、永続クラスの定義内に提供する方法も示します。 この方法で iris-Disguise を使用するには、「変装メガネをかける」必要があります。 永続クラスでは、dc.Disguise.Glasses クラスを拡張し、指定したストラテジーでそのデータ型を持つプロパティを変更できます。

0
1 186
記事 Toshihiko Minamoto · 4月 1, 2022 7m read

Benjamin De Boe がユニバーサルキャッシュクエリに関する素晴らしい記事を書いていますが、ユニバーサルキャッシュクエリ(UCQ)とは一体何でしょうか。また、昔ながらの埋め込み SQL を書いている場合になぜそれを気にする必要があるのでしょうか。  Caché と Ensemble において、キャッシュクエリは xDBC と動的 SQL を解決するために生成されるでしょうが、  InterSystems IRIS の埋め込み SQL は、キャッシュクエリを使用するように改善されました。そこで、名前に「ユニバーサル」が追加されているのです。  現在では、IRIS で実行されるすべての SQL は、UCQ クラスから実行されるようになっています。

InterSystems はなぜこのように変更したのでしょうか?  良い質問です!  ここでの大きなメリットは、ライブ環境での柔軟性にあります。  以前は、インデックスを追加したり、TuneTable を実行したりすると、キャッシュクエリの SQL はこの新しい情報をすぐに利用していたにもかかわらず、埋め込み SQL はクラスまたはルーチンが手動でコンパイルされるまで変更されないままになっていました。

0
0 420
記事 Megumi Kakechi · 3月 31, 2022 1m read

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


Windowsでは、変更することはできませんが、Unix系プラットフォームでは、iris rename コマンドを使用することで変更できます。

iris rename instname(現インスタンス名) newname(新インスタンス名)


iris rename コマンドの詳細は、以下ドキュメントをご参照ください
iris コマンドについて
 

0
0 257
記事 Mihoko Iijima · 3月 29, 2022 3m read

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

メール送付のコードを記述する前に、管理ポータルで SSL/TLS 構成を作成します。

管理ポータル > システム管理 > セキュリティ > SSL/TLS 構成

メール送付までの流れは以下の通りです。

  1. メールメッセージ用クラス:%Net.MailMessage のインスタンスを作成し、送信元メールアドレス、宛先メールアドレス、件名、本文を設定します。
  2. 認証情報設定用クラス:%Net.Authenticator のインスタンスを作成し、メール送付時に使用する認証情報を設定します。
  3. SMTP用クラス:%Net.SMTP のインスタンスを作成し、SMTP サーバの設定、管理ポータルで作成した SSL/TLS 構成名の指定、2で作成した認証情報と 1で作成したメールメッセージを使用して、メールを送信します。

ターミナルからの実行例は以下の通りです(Gmail を利用しています)。

《メモ》
現在(2022年5月30日以降)、Gmailを利用したメール送付を行う場合 OAuth2.0 の利用が必須となりました。Gmailを利用する場合の手順ついては、「OAuth 2.0 を利用して IRIS から Gmail を送信する」をご参照ください。

0
0 576
記事 Mihoko Iijima · 3月 29, 2022 11m read

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

データベースの空き容量は、システムモニタを使用して監視することができます。

システムモニタは、システム開始時に自動開始され、予め設定された閾値に対してアラートが通知されます。

システムの閾値については以下ドキュメントをご参照ください。
システム・モニタのステータスおよびリソース・メトリック【IRIS】
システム・モニタのステータスおよびリソース・メトリック

データベースの空き容量については、システムデフォルトでは 50 MBを下回る場合にアラートが通知され、メッセージログ(コンソールログ)にアラート(深刻度 2)として記録され、alerts.log ファイルにも出力されます。

データベースの空き容量を任意サイズで監視したい場合、システムモニタに含まれる「アプリケーションモニタ」を利用して設定します。
注意:アプリケーションモニタでは、アラート対象となる情報があってもメッセージログ(コンソールログ)に出力しないため、メール通知/メソッド実行 を使用して通知するように設定します。

例えば、空き容量が 100MB を下回った時にアラートを通知したい場合は、アプリケーションモニタが提供する %Monitor.System.Sample.Freespace(空き容量メトリック)を利用します。

0
0 248
記事 Toshihiko Minamoto · 3月 29, 2022 3m read

Apache Zeppelin は以下を行えるようにする多目的ノートブックです。

  •     データの取り込み
  •    _ データ検出_
  •     データ分析
  •     データの可視化とコラボレーション

Apache Zeppelin インタープリターの概念に基づき、あらゆる言語/データ処理バックエンドを Zeppelin にプラグインすることができます。 現在、Apache Zeppelin は、Apache Spark、Apache Flink、Python、R、JDBC、Markcown、およびシェルなど、多くのインタープリターに対応しています。

データの洞察を得るための安全な環境を得られます。 Zeppelin のハイライト機能は、JDBC と Spark IRIS のネイティブコネクタを使用して利用することができます。

これは、あなたを軌道に乗せるためのクイックスタートガイドです。

 

1.- 公式 Web サイト(こちら)から Zeppelin をダウンロードして保存します。

2.- ディストリビューションを任意のインストールフォルダに解凍します。

3.- JDK をインストールする必要があります(まだインストールされていない場合)。

4.- JDK のインストールが完了すると、#bash> sudo ./<zeppelin_path>/bin/zeppelin-daemon.

0
0 130
記事 Tomoko Furuzono · 3月 29, 2022 1m read

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

現在実行中のコードの位置は、$STACK関数を使用して $STACK($STACK,"PLACE") で取得できます。

サンプルコードは以下ドキュメントをご参照ください。

現在実行中のコードの位置を取得する方法について【IRIS】
現在実行中のコードの位置を取得する方法について

0
0 148
記事 Tomoko Furuzono · 3月 29, 2022 1m read

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

SQLの場合、NULLデータと空文字列 ('')は区別されます。
それぞれの設定・確認方法は、以下のようになります。

(1) NULLデータ

【SQL】 

insert into test (a) values (NULL)
select * from test where a IS NULL

【InterSystems ObjectScript】

set x=##class(User.test).%New()
set x.a=""

(2) 空文字列 ('')

【SQL】

insert into test (a) values ('')
select * from test where a = ''

【InterSystems ObjectScript】

set x=##class(User.test).%New()
set x.a=$C(0)

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

NULL および空文字列【IRIS】
NULL および空文字列

0
0 364
記事 Hiroshi Sato · 3月 27, 2022 2m read

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

  • まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。
  • そのプロジェクトをコンパイルし、DLLを作成します。
  • 管理ポータルでオブジェクトゲートウェイを作成します。   システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト)  
  • testGateway を開始します。


※管理ポータルから、もしくはコマンドから開始できます。 

do ##class(%Net.Remote.Service).StartGateway(gateway.Name)
  •  以下のいずれかの方法でDLLを呼び出すプロキシクラスを作成します。

       a. コマンドで作成する場合 

     set dllPath="C:\temp\TestDll.dll
     do ##class(%Net.Remote.Gateway).%ExpressImport(dllPath, 55000, "127.0.0.1")

       b. スタジオで作成する場合


 [ツール] - [アドイン] - [.

0
0 472
記事 Toshihiko Minamoto · 3月 24, 2022 5m read

この記事では、CSP Web アプリケーションを使用して、コードで認証、承認、および監査を行う方法と、Web アプリケーションを有効化/無効化および認証/認証解除する方法について説明します。

  • オンラインデモは、クラウド(https://dappsecurity.demo.community.intersystems.com/csp/user/index.csp)にあります(SuperUser | SYS)。
  • 先に進む前に、動画をご覧になることをお勧めします(https://www.youtube.com/watch?v=qFRa3njqDcA)。

アプリケーションのレイアウト

0
0 290
記事 Megumi Kakechi · 3月 23, 2022 3m read

これは、InterSystems FAQサイトの記事です。
ジャーナル・ファイルの処理でジャーナルファイルに記録されるタイプが、それぞれどのような状況下で記録されるのかについて説明します。

処理 (管理ポータルの)タイプ 説明 具体的にどのような処理で記録?
0
0 289
記事 Hiroshi Sato · 3月 23, 2022 2m read

もし現在ご使用のデータベース技術で壁に突き当たっていると感じておられるならば、是非InterSystems IRIS Data Platformへの移行をご検討ください。

(以下IRIS)

IRISに移行するに際して、現行のプログラム資産を全て書き換える必要はありません。

IRISに移行する際には、以下の手順で進めることを推奨しております。

アプリケーションコードをそのまま流用し、動作させるために、現在のデータベースからIRISへの移行を行います。

既存のRDBMSのデータ定義(DDL文で記述されたもの)をIRISに取り込むことで、リレーショナルとオブジェクトの両モデルからアクセスが可能となるため、必要に応じてオブジェクト・アクセスが妥当である処理に対しては、アプリケーションプログラムの修正など、対応策が選択できます。

さらにXMLやJSONなどのドキュメント形式のデータの取り扱いも容易ですので、RestFullなアプリケーション構築にも向いています。

また、IRISには習得が容易でデータベースエンジンと一体化したスクリプト言語「InterSystems ObjectScript」が用意されているので、処理の一部をサーバ側ロジックとしてストアドプロシージャ化することによってデータベース処理を効率化するなど、様々な対応策を検討することができます。

バージョン2021.

0
0 227
記事 Hiroshi Sato · 3月 23, 2022 2m read

質問

現在使っているリレーショナルデータベースからInterSystems IRIS Data Platformに移行することは可能ですか?

答え

InterSystems IRIS Data Platform(以下IRISと表記)は、SQLをサポートしていますので、多くの場合リレーショナルデータベースで構築されたアプリケーションは、大部分のコードを変更することなくIRISに移行することができます。

ただしSQLの各実装毎にSQL標準を拡張した仕様等があり、それにIRISが全て対応していませんので、コードの書き換えが必要なケースもあります。

また各実装が独自に用意した標準でない通信系API等にも対応していませんので、その場合にはJDBC、ODBCなどの標準的な通信APIに置き換える必要があり、かなり書き換えが必要になります。
(使用されているSQL文等はそのまま流用可能な場合が多いです。)

さらにそのままコードを移行できるケースであっても動作保証はできませんので、必ず動作確認のためのテスト作業は必要になります。

以上のことから他データベースシステムからIRISシステムへの移行には相応の移行コストがかかるため、移行は必ずしも容易とは言えませんが、それでも移行を決断されたお客様はたくさんおられます。

そしてほとんどのお客様は移行したシステムの性能、開発生産性、保守性、運用の容易さ等に満足されております。

0
0 150
記事 Hiroshi Sato · 3月 23, 2022 1m read

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

以下のコードは、https://www.intersystems.com/assets/intersystems-logo.png をダウンロードし、c:\temp\test.pngとしてファイルを保存する例になります。

以下のコードを動作させるためには、SSLTESTという名前のSSL定義を作成しておく必要があります。

ClassMethod download() As %Status
{
    Set sc = $$$OK
    Set httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.Port = 443
    set httprequest.Https = 1
    set httprequest.SSLConfiguration = "SSLTEST"
    Set httprequest.Server="www.intersystems.com"
    Do httprequest.Get("/assets/intersystems-logo.png")
    Set httpresponse=httprequest.HttpResponse
    Set file=##class(%File).
0
0 216
記事 Toshihiko Minamoto · 3月 21, 2022 2m read

少し前に GitHub が導入されてから、そこにホストされているあらゆるリポジトリの VSCode をブラウザで非常に素早く実行できるようになりました。 リポジトリで . キーかプルリクエストを押すか、URL で .com.dev に置き換えることで、ブラウザ内で VSCode 環境に直接移動することができます。

GitHub 開発

この VSCode はデスクトップバージョンのライトバージョンではありますが、完全にブラウザ内で動作します。 このため、このような動作を可能にする拡張機能には制限があります。 そこで、VSCode-ObjectScript 拡張機能の新しい 1.2.1 バージョンをご紹介します。ブラウザモードでの実行がサポートされています。

0
0 251
記事 Toshihiko Minamoto · 3月 15, 2022 14m read

これまでの記事では、メールサーバーのメールボックスからのメッセージを処理する IMAP プロトコルの基本的な使用方法を学習しました。 とても興味深いものではありましたが、他の人が作成してすぐに利用できるようにライブラリに提供されている実装を利用することも可能です。

IRIS データプラットフォームの改善の 1 つに、同じ IRIS プロセスで ObjectScript に並行して Python コードを記述できる機能があります。 この新機能は、組み込み Python と呼ばれます。 組み込み Python を使用すると、ObjectScript コードに巨大な Python エコシステムのライブラリの力を取り込むことができます。

この記事では、imaplib というライブラリを使用して IMAP クライアントを実装し、それを IRIS Email フレームワーク に統合することにします。 また、Python エコシステムの力を借りて、組み込み Python を使用して、IRIS プラットフォームでの実際の課題を解決する方法を示す実用的な例も確認します。

ここで実装されているすべてのコードは、こちらの GitHub リポジトリpython ディレクトリにあります。

Python コードは最近の IRIS バージョンでのみ機能することに注意してください。

0
0 448
記事 Toshihiko Minamoto · 3月 10, 2022 4m read

背景

先日、ObjectScript の永続(Persistent)クラスのプロパティを編集していたところ、ストレージ定義が最後の変更を反映するように更新されていないことに気づきました。

この場合、クラス定義に不要となったプロパティを削除した上で保存し、再コンパイルしましたが、それでもストレージ定義に残ったままになっていました。

それでも焦ることはありませんでした。 ストレージ定義がコンパイル時に自動生成されるのであれば、それを_削除_して、クラスを再コンパイルすればよいからです。 もちろん、この後、削除されたプロパティはストレージ定義に表示されなくなりました。

問題解決... ですよね?

(ブブー、間違いです)

後になって、このアプローチはクラスにデータが保存されていないときに機能することがわかりました。 ただし、既存のデータがあるのであれば、重大なデータ参照の問題が発生する可能性があります。

 

そもそもストレージ定義とは?

ストレージ定義はクラスプロパティとデータベース内のその物理ストレージ場所をリンクするマップとして機能します。

複数のスロットのある本棚とどのスロットに本が収まっているかを追跡するためのリストがあるとします。

0
0 146
記事 Toshihiko Minamoto · 3月 8, 2022 12m read

InterSystemsを使用してExcelファイルを生成する方法はたくさんあります。ZENレポートやIRISレポート(Logiレポートまたは正式にはJReportsと呼ばれるレポート)のほか、サードパーティのJavaライブラリを使用するなど、可能性はほぼ無限です。

しかし、Caché ObjectScriptだけで単純なスプレッドシートを作成したい場合はどうでしょうか。 (サードパーティアプリケーションを使用せずに、です)

私の場合、大量の生データを含むレポート(金融関係の人たちが好むレポート)を生成する必要がありますが、私のZEN/IRISでは対応できません。私が呼ぶところの「ゼロバイトファイル」が生成され、基本的にJavaのメモリ不足となり、レポーティングサーバーに大きな負荷を生じてしまいます。

これは、Office Open XML(OOXML)を使って実現できます。 Office Open XML形式は、多数のXMLファイルで構成されるZIPパケージです。 つまり基本的には、これらのXMLファイルを生成してZIP圧縮し、.xslxに名前を変更すればよいのです。 それくらい単純です。

ファイルは、Open Packaging Conventionsという単純な命名規則に従っています。

0
0 486
記事 Megumi Kakechi · 3月 3, 2022 3m read

これは、InterSystems FAQサイトの記事です。
ある処理において、データを無期限に保存する必要がなくグローバルの強力な性能が必要になる場合に、IRISTEMP/CACHETEMP データベースに保存される一時グローバルが使用されます。
IRISTEMP/CACHETEMPデータベースはジャーナルされないので、一時グローバルの使用ではジャーナルファイルは作成されません。

IRISTEMP/CACHETEMP データベースは、システムで一時ストレージ用に使用され、ユーザも同じ用途で使用することができます。

一時グローバルとIRISTEMPデータベースの詳細については、以下のドキュメントをご覧ください。
一時グローバルと IRISTEMP データベース


一時グローバルとして使用されるグローバルには以下のようなものがあります。

1. システムテンポラリグローバル(^IRIS.Temp*、^%cspSession、^CacheTemp*、^mtemp* など)
2. ユーザが設定したIRISTEMP/CACHETEMPへのマッピングによる一時グローバル
3. プロセスプライベートグローバル (^||name、^|"^"|name、^["^"]name、^["^",""]name など

4.

0
1 478
記事 Toshihiko Minamoto · 3月 2, 2022 5m read

これは、IRIS でリレーショナルデータをクエリするアナリストとアプリケーションに、さらに優れた適応性とパフォーマンスによるエクスペリエンスを提供する IRIS SQL のイノベーションをトピックとした短い連載の 3 つ目の記事です。 2021.2 では連載の最後の記事になるかもしれませんが、この分野ではさらにいくつかの機能強化が行われています。 この記事では、このリリースで収集し始めたヒストグラムという追加のテーブル統計について、もう少し詳しく説明します。

0
0 131
記事 Tomoko Furuzono · 3月 1, 2022 2m read

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

オブジェクトに対する一般的な処理をサポートする各種関数を提供しています。
詳細は以下ドキュメントをご参照ください。
オブジェクトへの動的アクセス【IRIS】
オブジェクトへの動的アクセス


サンプルクラス(Sample.Person)を使用して、利用例をご紹介します。

【InterSystems IRIS でご確認いただく場合】
InterSystems IRISでは、サンプル定義の一部を GitHub 上に公開しています。
ダウンロード情報やインポート、データ作成手順については、下記の記事をご参照ください 。
サンプル(Sample.Person)のクラス定義ダウンロードとサンプルデータの作成について

【Caché/Ensemble/HealthShare でご確認いただく場合】
SAMPLES ネームスペースへ移動してご確認ください。

(1) クラス名の取得:$CLASSNAME(インスタンス

SAMPLES>set p=##class(Sample.Person).%OpenId(1)
SAMPLES>write $CLASSNAME(p)
Sample.Person
SAMPLES>write $CLASSNAME(p.Home)  // オブジェクト参照のプロパティ
Sample.
0
0 540
記事 Tomoko Furuzono · 3月 1, 2022 1m read

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

マップされたクラス・ルーチンも含めてコンパイルする場合は、コンパイラ修飾子に "/mapped=1" もしくは "/mapped" を指定します。 例えば、以下のように行います。

【例1】クラスリストを取得してコンパイル 

 do $System.OBJ.GetClassList(.list,"/mapped")
 // build your list starting from .list
 do $System.OBJ.Compile(.list)

【例2】全てのクラスをコンパイル 

 do $system.OBJ.CompileAll("/mapped")
0
0 190
記事 Tomoko Furuzono · 3月 1, 2022 2m read

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

ミラー構成削除時に、ミラー・データベースのミラー属性を削除するオプションを指定しないと、通常データベースに戻すことができず、次回マウント時に読み取り専用でデータベースがマウントされます。 読み書き可能なデータベースに戻すためには、システムルーチン ^MIRROR を使用してミラー属性を削除する必要があります。
手順は以下のとおりです。(%SYSネームスペースで実行します。)

%SYS>do ^MIRROR
 
This instance is not initialized as a mirror member
 
1) List mirrored databases
2) Remove one or more mirrored databases
3) Create a Mirror
4) Join Mirror as Failover Member
5) Join Mirror as Async Member
 
Option? 2     ※ 2 を入力します。
There is one mirrored database on this system
Remove it? y      ※ yes または y を入力します。
Removing c:\intersystems\ensemble\mgr\mtest\ .
0
0 301
記事 Toshihiko Minamoto · 3月 1, 2022 5m read

これは、適応性とパフォーマンスに優れた SQL エクスペリエンスを提供する 2021.2 SQL 強化機能に関する連載第 2 回目の記事です。 この記事では、前の記事で説明したランタイムプランの選択機能の主要な入力であるテーブル統計の収集におけるイノベーションに焦点を当てます。

0
1 211
記事 Mihoko Iijima · 2月 28, 2022 7m read

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

今回は、スーパーやコンビニでもらうレシートを写真で撮り、OCR を使ってレシートの画像から文字列を切り出して IRIS に登録する流れを試してみました。

サンプルでは、Google の Vision API を利用してレシートの JPG 画像から購入物品をテキストで抽出しています。

サンプルコード一式 👉 https://github.com/Intersystems-jp/iris-embeddedpython-OCR
 

最初、オンラインラーニングで使っている 「tesseract-OCR」を使ってみようと思ったのですが、レシートには半角カナが混在していたりで、半カナがなかなかうまく切り出せず、あきらめました・・(半角カナがなかったら日本語もばっちり読めていたのですが・・)

もし、tesseract-OCR で半カナを切り出す良い方法をご存知の方いらっしゃいましたら、ぜひ教えてください!

今回試すにあたり、Vision API の使い方を詳しく書いているページがありましたのでコードなど参考させていただきました。ありがとうございました。

0
1 1469
記事 Toshihiko Minamoto · 2月 24, 2022 5m read

InterSystems IRIS Data Platform の 2021.2 リリースには、ミッションクリティカルなアプリケーションを高速で柔軟性に優れ、セキュアに開発するための刺激的な新機能が多数含まれています。 Embedded Python は間違いなく脚光を浴びています(正当な理由で!)が、SQL の分野でも、テーブルデータに関する詳細な統計情報を収集し、それを最適なクエリプランに提供する、より適応性の高いエンジンに向けて大きな一歩を踏み出しました。 この短い連載記事では、2021.2 で新しく追加された 3 つの要素について詳しく説明し、ランタイムプランの選択(RTPC)を手始めに、この目標に向かって進みます。

これらについて適切な順序で話していくのは困難です(この記事を書く上で、私がどれだけ順序を入れ替えたか想像できないほどです!) というのも、これらが相互に非常にうまく機能するためです。 そのため、ご自由に順序を変えてお読みくださいsmiley

0
1 240