カスタムビューがStartup SQLからBridge Online OData4(Easyflex)で表示されない

EasyflexのデータベースでStartup SQLを使用しています。

SQL:

create or replace view LjTestW1
as
select * from DataService.Flexwerker.Loonjournaal@efx(jaar => 2026, week => 1)

これを使って、EasyflexからExcelのODataフィードを介して特定の期間の給与ジャーナルを取得しようとしています。Universal SQLエディタではこのクエリは動作しますが、残念ながらODataフィードには表示されません。キャッシュをクリアした後でも表示されません。どなたかアドバイスをお持ちではないでしょうか?

Startup SQLのカスタムビューは、EDMデータモデルとプロセスの両方でキャッシュされます(接続が長期間途切れていない場合)。特にInvantive Bridge OnlineとInvantive App Onlineは非常に積極的にキャッシュしますが、Invantive Cloudサイト自体はそれを制限し、「UniversalSQLエディター」の「接続を切断」ボタンを通じてセッションをより制御できるようにしています。

キャッシュをクリアするとEDMデータモデルが削除され、セッションからカスタムビューディフィニションも削除されるはずです。

同様の問題としては、以下のものがあります:

時折、キャッシュリセットが助けになるようで、最終的にはビューは常に表示されるようになります。

実際のところ、これはバグのように思われます。Bridge OnlineとApp Online用のビューの本番導入は、これほど複雑で手間がかかるべきではありません。

これまでのところ、この問題を再現可能にすることはできず、そのため解決策は見つかっていません。

現在、Invantive UniversalSQL内でBig Data JSONドライバーが利用可能になりました。これは、Parquetと同様に、テラバイトものログファイルのデータセットを迅速にクエリすることを可能にします。

関与したユーザーの長期間にわたる歴史を分析し、原因を特定するためにこれを活用します。もし原因が見つかれば、リリース26.0と次のリリース27.0のバグ修正が行われる予定です。

どのサーバーでキャッシュをクリアしましたか?

クリアは、データを取得するためのURLで指定されたサーバーで行う必要があります。

スタートアップSQLからのビューが、以前保存されていたデータモデルを使用し続けたため、Invantive Bridge OnlineによってOData4フィードに欠けていました。Invantive Cloudのキャッシュをクリアしても、そのデータモデルには影響しません。

AIの助けを借りて編集されました。

トレースの内容

トレースは2026年9月22日から24日までをカバーしています。すべての時間はUTCです。

時刻 (UTC) イベント
9月23日 12:04 Invantive Cloudで、スタートアップSQLなしでデータベースが作成されました。
9月23日 12:05 Power BIからの最初のOData4リクエスト。Bridge Onlineは197個のテーブルでデータモデルを構築し、ディスクに保存します。保存されたモデルは7日間有効です。
9月23日 14:26 スタートアップSQLに給与ジャーナルのビューが追加されます。
9月23日 14:31から14:47まで Power BIからの5つのセッション。各セッションでBridge OnlineはスタートアップSQLをエラーなしで実行しますが、データモデルはディスクキャッシュから来ています: 197個のEasyflexテーブルでビューはありません。
9月24日 08:39 別のセッション、同じ結果。
9月24日 08:46 Invantive Cloudでキャッシュがクリアされます。
9月24日 09:00と09:03 2つのセッション、同じ結果。
9月24日 09:06 スタートアップSQLに DataService.Flexwerker.Journaalposten に関するビューが追加されます。Bridge Onlineは正しくエラーを報告します: そのテーブルはパラメータ jaar と week の値を要求します (itgenboe074)。
9月24日 09:09 スタートアップSQLは問題のビューを追加します。6秒後、Invantive Cloudでキャッシュが再びクリアされます。
9月24日 09:10と09:24 2つのセッション。スタートアップSQLはビューをエラーなしで作成します。データモデルは再びディスクキャッシュから来ており、197個のテーブルです。

スタートアップSQLの最初の変更後、10のセッションが古いデータモデルで作業しました。

原因

各セッションの開始時に、Invantive Bridge OnlineがスタートアップSQLを実行します。そのビューはセッション内で存在します。したがって、Invantive CloudのSQLエディタでビューへのクエリは動作します。

OData4フィードのテーブルリストは、別のキャッシュから供給されます: $metadataの背後にあるデータモデルです。Invantive Bridge Onlineは、そのデータモデルをユーザーおよびデータベースごとに暗号化してディスクに保存します。そのキャッシュのユニークキーには、データベースのみが含まれ、スタートアップSQLは含まれません。したがって、スタートアップSQLが変更されても、古いデータモデルが引き続き使用されており、7日後まで有効です。

この設計は部分的にこれを考慮しました。スタートアップSQLからのビューを持つデータモデルは、Bridge Onlineは意図的に保存しません。なぜなら、それらのビューは変更される可能性があるからです。ただし、ビューが存在する前に保存されたデータモデルは、読み取り時にチェックされませんでした。このような状況がここで発生しました: 9月23日12:05のモデルは最初のカスタムビューよりも古いものです。

キャッシュのクリアが役立ちませんでした

Invantive CloudとBridge Onlineには、それぞれ「キャッシュをリセット」のメニューオプションがあります。それぞれのオプションは、自身の製品のキャッシュのみをクリアし、両方の製品は異なるサーバーで実行されます。トレースでは、2回のInvantive Cloud上でのキャッシュリセットが示されています。このリセットはInvantive Cloudのキャッシュを消去しますが、Bridge Onlineのキャッシュには影響しませんでした。Bridge Online自身でのリセットは、トレースには含まれていません。

メッセージ2では、キャッシュのクリアがデータモデルを削除することを述べています。それはBridge Onlineの「キャッシュをリセット」に対しては正しいですが、同じ選択がInvantive Cloudではそうではありません。

改善点

以下の改善が実施されました:

  • Bridge Onlineは、データモデルとともにデータベース定義のフィンガープリントを保持します。それは複数のスタートアップSQLとデータコンテナ(エイリアス、コネクタ、およびパーティション分割されたテーブルの選択)で構成されます。パスワードとトークンは含まれません。なぜなら、それらはテーブルが変わらずに更新されるからです。
  • フィンガープリントが異なる場合、Invantive Bridge Onlineはデータモデルを再構築します。
  • 同じフィンガープリントが応答キャッシュのキーの一部です。スタートアップSQLは別のパーティションを選択できるため、変更後、応答キャッシュは古い定義の下で計算された回答を返さなくなります。
  • 実行中のセッションは、セッションが開かれたときの定義を保持します。セッションは、最後のリクエストから最大10分後に終了します。このようにして、1つのセッション内の回答が互いに整合します。
  • 災害モードで応答キャッシュのみによって提供されるデータベースは、保存されたデータモデルと保存された回答を保持します。この設定はキャッシュからのみ提供するように特に設計されています。
  • AIのためのInvantive MCPサーバー(例:Claude)は同じデータモデルを使用し、同じ修正を受けます。

利用可能性

改善はリリース26.0.332と次のリリース27.0で利用可能です。

この質問は1週間の非アクティブの後に自動的に閉じられました。最後に与えられた回答が解決策としてマークされています。

問題が再発した場合は、別のトピックで新しい質問をしてください。新しい質問には、このトピックへのリンクを含めるために、そのURLをテキストに貼り付けてください。