Python は世界で最も使用されているプログラミング言語になり(出典: https://www.tiobe.com/tiobe-index/)、SQL はデータベース言語としての道をリードし続けています。 Python と SQL が連携して、SQL だけでは不可能であった新しい機能を提供できれば、素晴らしいと思いませんか? 結局のところ、Python には 380,000 を超える公開ライブラリがあり(出典: https://pypi.org/)、Python 内で SQL クエリを拡張できる興味深い機能が提供されています。 この記事では、Embedded Python を使用して、InterSystems IRIS データベースに新しい SQL ストアドプロシージャを作成する方法を詳しく説明します。

サンプルとして使用する Python ライブラリ

この記事では、IRIS で SQL を扱う人にとって非常に便利な GeoPy と Chronyk という 2 つのライブラリを使用します。

1 0
0 261

我々には、Redditユーザーが書いた、おいしいレシピデータセット がありますが, 情報のほとんどは投稿されたタイトルや説明といったフリーテキストです。埋め込みPythonLangchainフレームワークにあるOpenAIの大規模言語モデルの機能を使い、このデータセットを簡単にロードし、特徴を抽出、分析する方法を紹介しましょう。

データセットのロード

まず最初に、データセットをロードするかデータセットに接続する必要があります。

1 0
0 254

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

キーワード: IRIS、IntegratedML、機械学習、Covid-19、Kaggle

目的

最近、Covid-19患者がICU(集中治療室)に入室するかどうかを予測するKaggleデータセットがあることに気づきました。 231列のバイタルサインや観測で構成される1925件の遭遇記録が含まれる表計算シートで、最後の「ICU」列では「Yes」を示す1と「No」を示す0が使用されています。 既知のデータに基づいて、患者がICUに入室するかどうかを予測することがタスクです。

このデータセットは、「従来型ML」タスクと呼ばれるものの良い例のようです。 データ量は適切で、品質も比較的適切なようです。 IntegratedMLデモキットに直接適用できる可能性が高いようなのですが、通常のMLパイプラインと潜在的なIntegratedMLアプローチに基づいて簡易テストを行うには、どのようなアプローチが最も単純なのでしょうか。

範囲

次のような通常のMLステップを簡単に実行します。

0 0
0 245

対象バージョン
InterSystems IRIS および IRIS for Health: 2019.1.0 以降

対象プラットフォーム すべて

InterSystemsは、間違ったクエリ結果が返る問題を修正しました。この問題は上記の InterSystems 製品のバージョンで発生する可能性があります。

問題の詳細
以下のすべての条件をみたした場合、クエリ結果が不正確な可能性があります。

0 0
0 237

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

開発者向け情報を集めた「Developer Hub」ページが新たに登場しました!

このページには、4種類のチュートリアルが用意されています。チュートリアはブラウザ上で動作し、VSCodeやIRISターミナル、管理ポータルなどチュートリアルで使用するすべての画面が1つのタブ内で開くようになっています。

チュートリアルを試すための事前準備は不要で、クリック1回ですぐにお試しいただけます!(ユーザ登録も不要です)(チュートリアル開始方法は、ページ末尾をご覧ください。)

2 0
0 236

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

0 0
0 234

一意のインデックスにまつわる興味深いパターンが最近持ちあがったので(isc.rest に関する内部ディスカッション)、コミュニティ向けに強調したいと思います。

動機付けのユースケースとして: ツリーを表すクラスがあるとします。各ノードには名前があるため、名前と親ノードでノードを一意にしたいと考えています。 各ルートノードにも一意の名前を持たせます。 この場合の自然な実装は以下のようになります。

0 0
0 232

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

INFORMATION_SCHEMA スキーマを使用して取得できます。

INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。

表示させる方法は以下の通りです。

  1. 管理ポータル→システムエクスプローラ→SQL メニューを開きます。
  2. スキーマのプルダウン左にある「システム」をチェックします。
  3. スキーマのプルダウンから INFORMATION_SCHEMA を選択します。

0 0
0 226

古くなった MUMPS アプリケーションの新たな生命を吹き込みたいとお考えでしたら、以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。

今回ご紹介する例には、パート 1 ではカバーしなかった内容を 4 つないし 5 つ程度盛り込んでいます。

その後は親子マッピングの例を紹介して完結となります。それを修得したらマッピングはもう完璧でしょう。

前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。

グローバルをクラスにマッピングするステップ。

1 0
0 225

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

クエリパフォーマンスを最適化するための方法の一つとして、クエリ単位またはシステム全体でクエリの並列処理を使用することができます(標準機能)。

こちらは、特定のクエリに対しマルチプロセッサシステムでクエリの実行をプロセッサ間で分割して行うものです。
並列処理の効果が得られる可能性がある場合のみ、クエリオプティマイザは並列処理を実行します。
並列処理の対象はSELECT文のみとなります。

なお、並列プロセスの数は、CPUの数に応じて自動で調整するため、数の指定は行えません。
現在のシステムのプロセッサ数は以下のコマンドで確認することができます。

1 0
0 224

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

バージョン2017.2以降から、CREATE TABLE文で作成したテーブル定義のデータを格納するグローバル変数の命名ルールが変わり ^EPgS.D8T6.1 のようなハッシュ化したグローバル変数名が設定されます。(この変更はパフォーマンス向上のために追加されました。)

※ バージョン2017.1以前については、永続クラス定義のルールと同一です。詳細は関連記事「永続クラス定義のデータが格納されるグローバル変数名について」をご参照ください。

以下のテーブル定義を作成すると、同名の永続クラス定義が作成されます。

0 0
0 221

IRISTEMPというデータベースをご存じでしょうか?

特定の処理に対してデータを無期限に保存する必要がなく、「同一プロセス内でのみ使用したい場合」や「IRISが起動中のみ使用したい場合」に、IRISTEMPデータベースに保存されるグローバルを使用できます。
IRISTEMPデータベースに保存されるグローバルに対する操作は ”一切ジャーナルされない” ため、効率性を最大限にしたい作業に使用できます。

IRISTEMPデータベースに保存されるグローバル(データ)には、以下の種類があります。

1 0
1 218

その昔、クラス/テーブルのデータ、ストリーム、インデックスのサイズを判断するのは簡単なことでした。%GSIZE を実行して、D、S、I グローバルをそれぞれ確認するだけで済みました。

ところが最近では、シャーディングや、最適化されたグローバル名、分離されたグローバルのインデックスでは以下のような %GSIZE 出力が生成されます。

1 0
0 218

弊社サポートセンターに、「IRIS SQLに Oracle の RANK() 関数のようものはありませんか?」というお問い合わせいただくことがあります。

IRIS2021.1以降のバージョンであれば、RANK() や ROW_NUMBER() などの ウィンドウ関数 がサポートされるようになりましたので、以下のように使用することができます。

1 0
0 208

こちら の記事では、LinuxでJDBC接続を行う方法 をご紹介しました。

今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、JDBCで SSL/TLS 接続をする方法をご紹介します。

LinuxでJDBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでJDBC接続できる環境を用意していることを前提にご説明します。

手順は以下のようになります。手順の詳細は、この後で説明します。

2 0
0 202
記事
· 2020年12月16日 2m read
SQLインジェクションに対する対策

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

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

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

0 0
0 193
記事
· 2020年12月23日 3m read
動的SQLの新旧対照表

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

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

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

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

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

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

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

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

    SQLクエリーの文字列を監査ログに残すことができます。

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

    システム監査イベントについて

    ※%SQLで始まるイベントをご覧ください。

    InterSystems SQL の使用法

    ※監査関連ページをご覧ください。

    0 0
    0 179

    この記事では、InterSystems IRIS の学習に関連したトピックについて、開発者コミュニティでの厳選された記事にアクセスすることができます。機械学習や Embedded Python、JSON、API と REST アプリ、InterSystems環境の構築と管理、DockerとCloud、VSCode、SQL、Analytics/BI、グローバル、セキュリティ、DevOps、インターオペラビリティNative API、それぞれでランク付けされたトップの記事を見ることができます。ぜひ、楽しみながら学んでください!

    機械学習

    機械学習は、高度なデータ分析を構築し、優れた効率で手動活動を自動化するための必須技術です。既存のデータから学習する認知モデルを作成し、自己調整されたアルゴリズムに基づいて予測、確率計算、分類、識別、「非創造的」な人間の活動の自動化を実行します。

    0 0
    1 175

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

    テーブル名/カラム名/インデックス名を変更したい場合、以下のケース別に変更方法をご案内します。

    A. テーブル名・カラム名の変更
    B. インデックス名の変更

    -------------------------------------------------------------------------
    A. テーブル名・カラム名の変更する方法
    -------------------------------------------------------------------------

    0 0
    1 175

    グローバルをクラスにマッピングする技術 (4/3)

    三連載のはずが 4 記事目に突入してしまいました。『銀河ヒッチハイク・ガイド』のファンという方はいませんか?

    古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。

    上の内容に馴染みが無い方は、以下の記事を初めからお読みください。

    グローバルをクラスにマッピングする技術 (1/3)

    グローバルをクラスにマッピングする技術 (2/3)

    グローバルをクラスにマッピングする技術 (3/3)

    0 0
    0 168

    Global Summit 2022 または 2022.2 ローンチウェビナーの内容からよく覚えていると思いますが、InterSystems IRIS の分析ソリューションに組み込むための目覚ましい新機能をリリースしようとしています。 分析クエリを桁違いに高速化する、代替の SQL テーブルデータ格納手法であるカラムナー(列指向)ストレージです。 もともと 2022.2 の実験的機能としてリリースされましたが、最新の 2022.3 開発者プレビューには多数の更新が含まれているため、別途ここで簡単に説明したいと思います。

    0 0
    0 168

    古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。

    上の内容に馴染みが無い方は、以下の記事を初めからお読みください。

    グローバルをマッピングする技術 1

    グローバルをマッピングする技術 2

    この記事の例では、典型的な親子構造をマッピングする方法をお見せします。

    前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。

    1 0
    0 161

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

    InterSystems デベロッパーツールコンテスト2023が開催され、21の応募作品の中から勝者が発表されました🏆

    この記事では、世界のIRIS開発者の皆さんから注目を集めた作品をご紹介します。

    最初は、Experts Nomination 第1位に輝いた @Dmitry Maslennikov さんの作品をご紹介します!

    0 0
    0 159

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

    2022年3月9日開催「InterSystems Japan Virtual Summit 2022」のセッション「FHIR SQL Builder」のアーカイブを YouTube に公開いたしました。

    (プレイリストはこちら


    日本でも徐々に広がりを見せている HL7 FHIR。FHIR を活用したプロジェクトも着実に増えてきています。

    取得した FHIR データをどのように利用するのか。その中で、FHIR データを使用して分析したいというニーズは必ず出てくるかと思います。

    InterSystems では、FHIR データ分析を容易に可能にする新機能「FHIR SQL Builder」を発表いたしました。

    この機能を利用することにより、FHIR リポジトリに格納したデータを通常の SQL で取り出し利用することが可能になります。

    この機能の概要と使用方法をデモをまじえてご紹介いたします。

    0 0
    0 158

    こんにちは、皆さま。
    業務でIRISを用いて開発を行っている者です。

    IRISにSQLを投げるときの動作について教えてください。

    ■適当なテーブルを作成
    CREATE TABLE Mst.Test (id int, name varchar(10))

    ■データをINSERT
    INSERT INTO Mst.Test VALUES (2, 'bbb ')
    ※文字列の末尾にスペースを追加。

    ■SELECT
    SELECT * FROM Mst.Test WHERE name = 'bbb'
    ※whereの条件には末尾のスペースを入れない。

    ⇒上記の結果、INSERTされたデータがヒットしている。

    [疑問点]
    SQLの実行において、=を使って完全一致検索をしているつもりなのですが、
    末尾のスペースはその条件を無視してヒットしてしまうものなのでしょうか?

    何か情報をお持ちの方がいらっしゃれば、フォローいただけますと幸いです。

    0 3
    0 153