The IVOA Simple Image Access version 2 protocol defines an easy way to provide community access to a collection of data. At the Vera C. Rubin Observatory we currently enable ObsTAP access to our data holdings via an ObsCore export or view of our Data Butler repositories. This approach comes with some deployment constraints, such as requiring pgsphere and compatibility with our CADC TAP implementation, so recently we decided to see whether we could instead provide an SIAv2 service that talks directly to our Data Butler. Here we describe our motivation, implementation strategies, and current deployment status, as well as discussing some metadata mismatches between the Butler data models and SIAv2.
論文ID : 2501.00544タイトル : Implementing SIAv2 Over Rubin Observatory's Data Butler著者 : Tim Jenness, Stelios Voutsinas, Gregory P. Dubois-Felsmann, Andrei Salnikov分類 : astro-ph.IM(天体物理学-機器および方法)発表日 : 2024年12月31日論文リンク : https://arxiv.org/abs/2501.00544 IVOA簡易画像アクセスプロトコルバージョン2(SIAv2)は、コミュニティにデータセットアクセスを提供する簡便な方法を定義しています。Vera C. Rubin天文台では、現在Data ButlerリポジトリのObsCoreエクスポートまたはビューを通じてObsTAPデータアクセスを実装しています。しかし、このアプローチはpgsphereサポートの必要性やCADC TAP実装との互換性など、いくつかの展開制約が存在します。したがって、Data Butlerと直接通信するSIAv2サービスを提供できるかどうかを探索することを決定しました。本論文は、我々の動機、実装戦略、現在の展開状況、およびButlerデータモデルとSIAv2間のいくつかのメタデータ不一致問題について説明しています。
Rubin天文台のData Butlerシステムはメタデータレジストリとファイルデータストレージで構成され、レジストリはObsCoreレコードを構築するための十分な情報を含んでいます。以前にObsCoreテーブルを提供する方法は2つありました:
レコードをCSVまたはParquetファイルにエクスポートし、静的データベースにロードする レジストリバックエンドフックを使用してObsCoreテーブルへのリアルタイム同期を提供する 静的エクスポート方法 :正式なデータリリースに適しており、高性能Qservデータベースに統合できますが、毎夜の高速製品などの動的データセットには適していませんリアルタイムObsCore方法 :pgsphereをサポートする展開環境が必要であり、設定変更時にテーブル全体を再構築する必要がありますこれらの制限により、研究チームはButlerシステムに直接基づいた、より単純ですが標準化されたクエリレイヤーを求めました。IVOAのSIAv2プロトコルは明らかな選択肢となりました。理由は以下の通りです:
Butlerインターフェースへの直接アクセスにより、より大きな柔軟性を提供 設定変更時にはサービスの簡単な再起動のみで対応可能 任意のButlerリポジトリと即座に協働可能 SIAv2からButlerへの直接インターフェースの設計と実装 :従来のObsCoreテーブルの中間層を回避階層型アーキテクチャの開発 :サービス層とSIAv2クエリ処理の分離により、テスト可能性を向上dax_obscore ライブラリの作成 :コマンドラインインターフェースを提供し、ユーザーの学習と実験を容易化本番環境対応サービスの展開 :Rubin科学プラットフォーム上に展開され、デバッグデータに利用可能データモデル不一致問題の特定と分析 :将来の改善のための明確なロードマップを提供IVOA SIAv2プロトコルクエリをRubin Data Butlerクエリシステムに直接マッピングし、標準化された天文データアクセスインターフェースを実装しながら、従来のObsCoreテーブル方法の展開制約を回避します。
HTTP GET → Nginx → SIAv2 Service → dax_obscore → Butler Repo
sia/dp02/query?POS=.. ↓ ↓ ↓
Query Processing Butler Query Results
↓ ↓ ↓
ObsCore VOTable ← Results ← DatasetRefs
SIAv2サービス層 PythonおよびFastAPIを使用して開発 Rubin標準内部開発プラットフォームPhalanxに基づく 標準認証層と展開機能を提供 生のSIAv2パラメータを処理し、結果をカプセル化して返す dax_obscore ライブラリ SIAv2パラメータを解析 パラメータをButlerクエリに変換 クエリを実行し、標準化された結果を返す Astropy VOTable形式に準拠した出力を生成 Felisデータモデルを使用してテーブル構造を定義し、一貫性を保証 Butlerインターフェース互換性 元の「直接」Butlerと新しいクライアント/サーバーリモートButlerの両方を透過的にサポート Butlerネイティブの領域および時間クエリサポートを活用 階層型設計の利点 サービス層とクエリ処理の分離により、テスト可能性を向上 dax_obscoreは独立してインストールおよび使用可能 並行開発と保守をサポート 直接Butlerアクセス ObsCoreテーブルの中間層を回避 展開依存関係を削減(pgsphere不要) 設定変更への応答がより迅速 標準化された出力 Felisデータモデルを使用して結果の一貫性を確保 IVOA標準のVOTable形式に準拠 標準SIAv2パラメータセットをサポート 現在、dax_obscoreパッケージは以下のSIAv2クエリパラメータをサポートしています:
MAXREC : 最大レコード数制限INSTRUMENT : 機器フィルタリングPOS : 位置/領域クエリTIME : 時間範囲クエリBAND : 波長帯フィルタリングEXPTIME : 露出時間CALIB : キャリブレーションタイプID : 識別子クエリTARGET : ターゲットオブジェクトFACILITY : 施設名(「Rubin:Simonyi」および「Rubin:1.2m」の使用を計画)COLLECTION : データセットRubin科学プラットフォーム上に展開 デバッグデータアクセスに利用可能 PyPIインストール可能なコマンドラインツールをサポート サービス可用性 : Rubin科学プラットフォーム上に正常に展開され、使用中機能検証 : コアSIAv2パラメータクエリ機能が正常に動作互換性 : 直接ButlerとリモートButlerアクセスモードの両方をサポートユーザーツール : ローカル実験と学習のためのコマンドラインインターフェースを提供展開の簡素化 : pgsphere依存関係が不要設定の柔軟性 : 変更にはサービス再起動のみが必要即座に利用可能 : 任意のButlerリポジトリと即座に協働可能SIAv2プロトコル : Dowlerら(2015年)により定義されたIVOA推奨標準ObsTAPサービス : ObsCoreに基づくテーブルアクセスプロトコル、Louysら(2017年)により標準化Data Butlerシステム : Jenessら(2022年)により開発されたデータ管理システムQservデータベース : Muellerら(2023年)により開発された高性能分散データベースリモートButler : Jenessら(2024年)により開発されたクライアント/サーバーアーキテクチャ実装の実現可能性 : Data Butler上でのSIAv2実装は比較的単純なプロセスですアーキテクチャの利点 : 階層型開発戦略により並行開発が実現され、追加のコマンドラインツールが提供されます展開の成功 : サービスは正常に展開され、本番環境に利用可能です問題 : Butlerレジストリ内のコアッドに関連する機器情報がない影響 : LATISSとLSSTCamデータを含むリポジトリでデータソースを区別できない解決策 : 将来、完全な系統追跡により元のデータセットの機器を決定問題 : コアッドの中央露出時間は派生量であり、Butlerの座標空間定義時には不明解決策 : 将来の開発ロードマップで派生メタデータストレージのサポートを計画問題 : コアッドは個別観測の日付情報を失う解決策 : 将来のButler系統追跡システム実装後に日付範囲を推導可能問題 : Butlerのデータセットタイプ(visit_imageやdifference_imageなど)はSIAv2で標準化されたクエリ方法がない解決策 : DPSUBTYPEクエリパラメータ拡張の追加を検討、lsst接頭辞の使用の可能性派生メタデータサポート : 計算されたメタデータのクエリサポートの実装完全な系統追跡システム : 系統追跡情報によるコアッドのメタデータ欠落問題の解決拡張パラメータサポート : ID、TARGET、FACILITY、COLLECTIONパラメータの実装完了カスタム拡張 : DPSUBTYPEなどのRubin固有のクエリパラメータの実装優れたアーキテクチャ設計 階層型設計がシステムの保守性とテスト可能性を向上 直接Butlerインターフェースが中間層の複雑性を回避 複数のButler展開モードをサポート 高い実用価値 実際の展開における具体的な問題を解決(pgsphere依存関係、設定柔軟性) 標準化されたデータアクセスインターフェースを提供 コマンドラインツールがシステムの使いやすさを向上 標準互換性 IVOA SIAv2標準に厳密に準拠 標準VOTable形式で出力 既存の天文学データアクセスエコシステムと互換 データモデルの制限 複数の重要なメタデータ不一致問題がまだ未解決 コアッドのクエリ能力が制限される Butlerシステムのさらなる発展を待つ必要がある 機能の完全性 一部のSIAv2パラメータがまだ実装されていない カスタム拡張はまだ計画段階 複雑なクエリへのサポートが限定される可能性 ドキュメントの深さ パフォーマンスベンチマークデータが不足 エラー処理と境界ケースの議論が不十分 他のシステムとの詳細な比較分析が限定的 天文学データ管理への貢献 大規模天文サーベイプロジェクトに標準化データアクセスの実践例を提供 現代的なデータ管理システム上で従来のプロトコルを実装する方法を実証 他の天文台による同様の実装の参考資料を提供 技術推進価値 オープンソース実装(dax_obscoreパッケージ)がコミュニティの採用と改善を容易化 階層型アーキテクチャ設計が他の同様プロジェクトに適用可能 コマンドラインツールがユーザーの学習コストを削減 大規模天文サーベイプロジェクト : 標準化されたデータアクセスインターフェースが必要なプロジェクトデータセンターと天文台 : IVOA互換サービスを提供したい機関研究コミュニティ : 天文データへのプログラム的アクセスが必要な研究者教育用途 : SIAv2プロトコルの学習と実験環境本論文は以下の主要文献を引用しています:
Dowler, P., et al. (2015). IVOA Simple Image Access Version 2.0 - SIAv2標準プロトコルを定義 Jenness, T., et al. (2022). Rubin Data Butlerシステムのコアアーキテクチャ論文 Louys, M., et al. (2017). ObsCoreデータモデルとTAP実装標準 Salnikov, A. (2022). ButlerレジストリビューとしてのObsCoreの技術ノート まとめ : 本論文は、実際の展開問題を解決しながら国際標準への互換性を維持する成功した工学実践例を示しています。いくつかのデータモデル不一致の課題は存在しますが、全体的な実装は天文学データ管理分野に価値のある参考資料とツールを提供しています。