ScalarDB Analytics の設計
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB Analytics は ScalarDB の分析コンポーネントです。ScalarDB と同様に、PostgreSQL や MySQL などの RDBMS から Cassandra や DynamoDB などの NoSQL データベースまで、多様なデータソースを単一の論理データベースに統合します。これにより、複数のデータベースにわたってシームレスに分析クエリを実行することができます。
ScalarDB Analytics は主にユニバーサルデータカタログとクエリエンジンの2つのコンポーネントから構成されています。
- ユニバーサルデータカタログは、複数のカタログを処理する柔軟なメタデータ管理システムです。カタログはデータソースとビューの独立した論理的なグループ化を提供し、多様なデータ環境の体系的な管理を可能にします。
- クエリエンジンはユニバーサルデータカタログに対してクエリを実行します。ScalarDB Analyticsは基盤となるデータソースとのインターフェースを行うための適切なデータコネクタを提供します。
ScalarDB Analyticsはデータカタログとクエリエンジンが分離されたデカップルドアーキテクチャを採用しています。この設計により、拡張可能なアーキテクチャを通じて様々な既存のクエリエンジンとの統合が可能になります。その結果、特定の要件に基づいて異なるクエリエンジンを選択し、同じデータカタログに対してクエリを実行することができます。
ユニバーサルデータカタログ
ユニバーサルデータカタログはいくつかのレベルで設定され、以下のように構造化されています:
これらのレベルの定義は以下の通りです:
- Catalog(カタログ)はすべてのデータソース情報を含むフォルダです。例えば、分析データ用の
analytics_catalogと日常業務用のoperational_catalogという2つのカタログを持つことができます。 - Data source(データソース)は接続する各データソースを表します。各データソースについて、以下のような重要な情報を保存します:
- データソースの種類(PostgreSQL、Cassandra など)
- 接続方法(接続詳細とパスワード)
- データソースがサポートする特別な機能(トランザクションなど)
- Namespace(名前空間)はデータソース内の関連するテーブルをグループ化するサブフォルダのようなものです。PostgreSQL ではスキーマ、Cassandra ではキースペースと呼ばれます。フォルダ内のフォルダのように、複数レベルの名前空間を持つことができます。
- Table(テーブル)は実際のデータが存在する場所です。各テーブルについて、以下を追跡します:
- どのような列があるか
- 各列がどのタイプのデータを格納できるか
- 列が空(null)になれるかどうか
- View namespace(ビュー名前空間)はビュー用の特別なフォルダです。1つのデータソースに紐づく通常の名前空間とは異なり、ビュー名前空間 は複数のデータソースと同時に連携できます。
- View(ビュー)は以下のことができる仮想テーブルのようなものです:
- データをよりシンプルな方法で表示する(ScalarDB テーブルの技術的な列を隠すなど)
- SQLクエリを使用して異なるソースからデータを結合する
- 各ビューはテーブルと同様に、特定のタイプと空の値に関するルールを持つ独自の列を持っています。
サポートされているデータ型
ScalarDB Analytics は様々なデータソースにわたって幅広いデータ型をサポートしています。ユニバーサルデータカタログはこれらのデータ型を共通のタイプセットにマッピングし、ソース間の互換性と一貫性を確保します。以下のリストは ScalarDB Analytics でサポートされているデータ型を示しています:
BYTESMALLINTINTBIGINTFLOATDOUBLEDECIMALTEXTBLOBBOOLEANDATETIMETIMESTAMPTIMESTAMPTZDURATIONINTERVAL